diff --git a/Dockerfile b/Dockerfile index 3fcd42a78..5f8c9c625 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,7 +4,7 @@ ENV ANDROID_SDK_URL https://dl.google.com/android/repository/sdk-tools-linux-385 ENV ANDROID_API_LEVEL android-29 ENV ANDROID_BUILD_TOOLS_VERSION 29.0.3 ENV ANDROID_HOME /usr/local/android-sdk-linux -ENV ANDROID_NDK_VERSION 20.0.5594570 +ENV ANDROID_NDK_VERSION 21.1.6352462 ENV ANDROID_VERSION 29 ENV ANDROID_NDK_HOME ${ANDROID_HOME}/ndk/${ANDROID_NDK_VERSION}/ ENV PATH ${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools diff --git a/TMessagesProj/build.gradle b/TMessagesProj/build.gradle index 9a355bdda..c2815100c 100644 --- a/TMessagesProj/build.gradle +++ b/TMessagesProj/build.gradle @@ -25,15 +25,15 @@ dependencies { compileOnly 'org.checkerframework:checker-qual:2.5.2' compileOnly 'org.checkerframework:checker-compat-qual:2.5.0' - implementation 'com.google.firebase:firebase-messaging:20.1.6' + implementation 'com.google.firebase:firebase-messaging:20.2.0' implementation 'com.google.firebase:firebase-config:19.1.4' implementation 'com.google.android.gms:play-services-maps:17.0.0' - implementation 'com.google.android.gms:play-services-auth:17.0.0' + implementation 'com.google.android.gms:play-services-auth:18.0.0' implementation 'com.google.android.gms:play-services-vision:16.2.0' implementation 'com.google.android.gms:play-services-wearable:17.0.0' implementation 'com.google.android.gms:play-services-location:17.0.0' - implementation "com.microsoft.appcenter:appcenter-distribute:3.1.0" - implementation "com.microsoft.appcenter:appcenter-crashes:3.1.0" + implementation "com.microsoft.appcenter:appcenter-distribute:3.2.1" + implementation "com.microsoft.appcenter:appcenter-crashes:3.2.1" implementation 'com.googlecode.mp4parser:isoparser:1.0.6' implementation 'com.stripe:stripe-android:2.0.2' implementation files('libs/libgsaverification-client.aar') @@ -42,7 +42,7 @@ dependencies { android { compileSdkVersion 29 buildToolsVersion '29.0.3' - ndkVersion "20.0.5594570" + ndkVersion "21.1.6352462" defaultConfig.applicationId = "org.telegram.messenger" @@ -102,6 +102,7 @@ android { signingConfig signingConfigs.debug applicationIdSuffix ".beta" minifyEnabled true + multiDexEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' packagingOptions { @@ -124,12 +125,6 @@ android { } }*/ - debugMultidex { - initWith debug - minifyEnabled false - multiDexEnabled true - } - HA { debuggable false jniDebuggable false @@ -159,11 +154,6 @@ android { manifest.srcFile 'config/debug/AndroidManifest.xml' }*/ - sourceSets.debugMultidex { - manifest.srcFile 'config/debug/AndroidManifest.xml' - java.srcDirs = ['src/multidex/java'] - } - sourceSets.HA { manifest.srcFile 'config/debug/AndroidManifest.xml' } @@ -286,7 +276,7 @@ android { } } - defaultConfig.versionCode = 1947 + defaultConfig.versionCode = 1984 def tgVoipDexFileName = "libtgvoip.dex" def tgVoipDexClasses = ["AudioRecordJNI", "AudioTrackJNI", "NativeTgVoipDelegate", "NativeTgVoipInstance", "TgVoipNativeLoader", "Resampler", "VLog"] @@ -381,13 +371,13 @@ android { defaultConfig { minSdkVersion 16 targetSdkVersion 28 - versionName "6.1.1" + versionName "6.2.0" vectorDrawables.generatedDensities = ['mdpi', 'hdpi', 'xhdpi', 'xxhdpi'] externalNativeBuild { ndkBuild { - arguments "NDK_APPLICATION_MK:=jni/Application.mk", "APP_PLATFORM:=android-16", "--jobs=8" + arguments "NDK_APPLICATION_MK:=jni/Application.mk", "APP_PLATFORM:=android-16", "--jobs=8", "LOCAL_ARM_NEON:=false" abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86_64" } } diff --git a/TMessagesProj/jni/Android.mk b/TMessagesProj/jni/Android.mk index ca4b76b6c..dea885799 100755 --- a/TMessagesProj/jni/Android.mk +++ b/TMessagesProj/jni/Android.mk @@ -624,7 +624,7 @@ endif LOCAL_SRC_FILES += \ ./jni.c \ ./audio.c \ -./image.c \ +./image.cpp \ ./video.c \ ./intro/IntroRenderer.c \ ./utilities.cpp \ diff --git a/TMessagesProj/jni/gifvideo.cpp b/TMessagesProj/jni/gifvideo.cpp index 90bfbb2d3..49a900cc7 100644 --- a/TMessagesProj/jni/gifvideo.cpp +++ b/TMessagesProj/jni/gifvideo.cpp @@ -30,6 +30,8 @@ static const std::string av_make_error_str(int errnum) { jclass jclass_AnimatedFileDrawableStream; jmethodID jclass_AnimatedFileDrawableStream_read; jmethodID jclass_AnimatedFileDrawableStream_cancel; +jmethodID jclass_AnimatedFileDrawableStream_isFinishedLoadingFile; +jmethodID jclass_AnimatedFileDrawableStream_getFinishedFilePath; typedef struct VideoInfo { @@ -189,6 +191,20 @@ void requestFd(VideoInfo *info) { attached = false; } jniEnv->CallIntMethod(info->stream, jclass_AnimatedFileDrawableStream_read, (jint) 0, (jint) 1); + jboolean loaded = jniEnv->CallBooleanMethod(info->stream, jclass_AnimatedFileDrawableStream_isFinishedLoadingFile); + if (loaded) { + delete[] info->src; + jstring src = (jstring) jniEnv->CallObjectMethod(info->stream, jclass_AnimatedFileDrawableStream_getFinishedFilePath); + char const *srcString = jniEnv->GetStringUTFChars(src, 0); + size_t len = strlen(srcString); + info->src = new char[len + 1]; + memcpy(info->src, srcString, len); + info->src[len] = '\0'; + if (srcString != 0) { + jniEnv->ReleaseStringUTFChars(src, srcString); + } + } + if (attached) { javaVm->DetachCurrentThread(); } @@ -579,7 +595,7 @@ void Java_org_telegram_ui_Components_AnimatedFileDrawable_seekToMs(JNIEnv *env, } } -jint Java_org_telegram_ui_Components_AnimatedFileDrawable_getVideoFrame(JNIEnv *env, jclass clazz, jlong ptr, jobject bitmap, jintArray data, jint stride, jboolean preview) { +jint Java_org_telegram_ui_Components_AnimatedFileDrawable_getVideoFrame(JNIEnv *env, jclass clazz, jlong ptr, jobject bitmap, jintArray data, jint stride, jboolean preview, jfloat start_time, jfloat end_time) { if (ptr == NULL || bitmap == nullptr) { return 0; } @@ -592,9 +608,16 @@ jint Java_org_telegram_ui_Components_AnimatedFileDrawable_getVideoFrame(JNIEnv * while (!info->stopped && triesCount != 0) { if (info->pkt.size == 0) { ret = av_read_frame(info->fmt_ctx, &info->pkt); - //LOGD("got packet with size %d", info->pkt.size); if (ret >= 0) { - info->orig_pkt = info->pkt; + double pts = info->pkt.pts * av_q2d(info->video_stream->time_base); + if (end_time > 0 && info->pkt.stream_index == info->video_stream_idx && pts > end_time) { + av_packet_unref(&info->pkt); + info->pkt.data = NULL; + info->pkt.size = 0; + } else { + info->orig_pkt = info->pkt; + } + } } @@ -624,7 +647,11 @@ jint Java_org_telegram_ui_Components_AnimatedFileDrawable_getVideoFrame(JNIEnv * } if (!preview && got_frame == 0) { if (info->has_decoded_frames) { - if ((ret = av_seek_frame(info->fmt_ctx, info->video_stream_idx, 0, AVSEEK_FLAG_BACKWARD | AVSEEK_FLAG_FRAME)) < 0) { + int64_t start_from = 0; + if (start_time > 0) { + start_from = (int64_t)(start_time / av_q2d(info->video_stream->time_base)); + } + if ((ret = av_seek_frame(info->fmt_ctx, info->video_stream_idx, start_from, AVSEEK_FLAG_BACKWARD | AVSEEK_FLAG_FRAME)) < 0) { LOGE("can't seek to begin of file %s, %s", info->src, av_err2str(ret)); return 0; } else { @@ -710,6 +737,14 @@ jint videoOnJNILoad(JavaVM *vm, JNIEnv *env) { if (jclass_AnimatedFileDrawableStream_cancel == 0) { return JNI_FALSE; } + jclass_AnimatedFileDrawableStream_isFinishedLoadingFile = env->GetMethodID(jclass_AnimatedFileDrawableStream, "isFinishedLoadingFile", "()Z"); + if (jclass_AnimatedFileDrawableStream_isFinishedLoadingFile == 0) { + return JNI_FALSE; + } + jclass_AnimatedFileDrawableStream_getFinishedFilePath = env->GetMethodID(jclass_AnimatedFileDrawableStream, "getFinishedFilePath", "()Ljava/lang/String;"); + if (jclass_AnimatedFileDrawableStream_getFinishedFilePath == 0) { + return JNI_FALSE; + } return JNI_TRUE; } diff --git a/TMessagesProj/jni/image.c b/TMessagesProj/jni/image.cpp similarity index 74% rename from TMessagesProj/jni/image.c rename to TMessagesProj/jni/image.cpp index f4d31e3de..83255245e 100644 --- a/TMessagesProj/jni/image.c +++ b/TMessagesProj/jni/image.cpp @@ -7,10 +7,9 @@ #include #include #include -#include #include "c_utils.h" -#include "image.h" +extern "C" { jclass jclass_NullPointerException; jclass jclass_RuntimeException; @@ -19,43 +18,32 @@ jfieldID jclass_Options_inJustDecodeBounds; jfieldID jclass_Options_outHeight; jfieldID jclass_Options_outWidth; -const uint32_t PGPhotoEnhanceHistogramBins = 256; -const uint32_t PGPhotoEnhanceSegments = 4; - -jclass createGlobarRef(JNIEnv *env, jclass class) { - if (class) { - return (*env)->NewGlobalRef(env, class); - } - return 0; -} - jint imageOnJNILoad(JavaVM *vm, JNIEnv *env) { - jclass_NullPointerException = createGlobarRef(env, (*env)->FindClass(env, "java/lang/NullPointerException")); + jclass_NullPointerException = (jclass) env->NewGlobalRef(env->FindClass("java/lang/NullPointerException")); if (jclass_NullPointerException == 0) { return JNI_FALSE; } - jclass_RuntimeException = createGlobarRef(env, (*env)->FindClass(env, "java/lang/RuntimeException")); + jclass_RuntimeException = (jclass) env->NewGlobalRef(env->FindClass("java/lang/RuntimeException")); if (jclass_RuntimeException == 0) { return JNI_FALSE; } - - jclass_Options = createGlobarRef(env, (*env)->FindClass(env, "android/graphics/BitmapFactory$Options")); + jclass_Options = (jclass) env->NewGlobalRef(env->FindClass("android/graphics/BitmapFactory$Options")); if (jclass_Options == 0) { return JNI_FALSE; } - jclass_Options_inJustDecodeBounds = (*env)->GetFieldID(env, jclass_Options, "inJustDecodeBounds", "Z"); + jclass_Options_inJustDecodeBounds = env->GetFieldID(jclass_Options, "inJustDecodeBounds", "Z"); if (jclass_Options_inJustDecodeBounds == 0) { return JNI_FALSE; } - jclass_Options_outHeight = (*env)->GetFieldID(env, jclass_Options, "outHeight", "I"); + jclass_Options_outHeight = env->GetFieldID(jclass_Options, "outHeight", "I"); if (jclass_Options_outHeight == 0) { return JNI_FALSE; } - jclass_Options_outWidth = (*env)->GetFieldID(env, jclass_Options, "outWidth", "I"); + jclass_Options_outWidth = env->GetFieldID(jclass_Options, "outWidth", "I"); if (jclass_Options_outWidth == 0) { return JNI_FALSE; } - + return JNI_TRUE; } @@ -65,18 +53,18 @@ static inline uint64_t getColors(const uint8_t *p) { static inline uint64_t getColors565(const uint8_t *p) { uint16_t *ps = (uint16_t *) p; - return ((((ps[0] & 0xF800) >> 11) * 255) / 31) + (((((ps[0] & 0x07E0) >> 5) * 255) / 63) << 16) + ((uint64_t) (((ps[0] & 0x001F) * 255) / 31) << 32); + return ((((ps[0] & 0xF800) >> 11) * 255) / 31) + (((((ps[0] & 0x07E0) >> 5) * 255) / 63) << 16) + ((uint64_t)(((ps[0] & 0x001F) * 255) / 31) << 32); } static void fastBlurMore(int32_t w, int32_t h, int32_t stride, uint8_t *pix, int32_t radius) { const int32_t r1 = radius + 1; const int32_t div = radius * 2 + 1; - + if (radius > 15 || div >= w || div >= h || w * h > 150 * 150 || stride > w * 4) { return; } - uint64_t *rgb = malloc(w * h * sizeof(uint64_t)); + uint64_t *rgb = new uint64_t[w * h]; if (rgb == NULL) { return; } @@ -89,16 +77,16 @@ static void fastBlurMore(int32_t w, int32_t h, int32_t stride, uint8_t *pix, int uint64_t cur = getColors(&pix[yw]); uint64_t rgballsum = -radius * cur; uint64_t rgbsum = cur * ((r1 * (r1 + 1)) >> 1); - + for (i = 1; i <= radius; i++) { cur = getColors(&pix[yw + i * 4]); rgbsum += cur * (r1 - i); rgballsum += cur; } - + x = 0; - - #define update(start, middle, end) \ + +#define update(start, middle, end) \ rgb[y * w + x] = (rgbsum >> 6) & 0x00FF00FF00FF00FF; \ rgballsum += getColors(&pix[yw + (start) * 4]) - 2 * getColors(&pix[yw + (middle) * 4]) + getColors(&pix[yw + (end) * 4]); \ rgbsum += rgballsum; \ @@ -113,11 +101,11 @@ static void fastBlurMore(int32_t w, int32_t h, int32_t stride, uint8_t *pix, int while (x < w) { update (x - r1, x, w - 1); } - #undef update - +#undef update + yw += stride; } - + const int32_t he = h - r1; for (x = 0; x < w; x++) { uint64_t rgballsum = -radius * rgb[x]; @@ -126,11 +114,11 @@ static void fastBlurMore(int32_t w, int32_t h, int32_t stride, uint8_t *pix, int rgbsum += rgb[i * w + x] * (r1 - i); rgballsum += rgb[i * w + x]; } - + y = 0; int32_t yi = x * 4; - - #define update(start, middle, end) \ + +#define update(start, middle, end) \ int64_t res = rgbsum >> 6; \ pix[yi] = res; \ pix[yi + 1] = res >> 16; \ @@ -140,7 +128,7 @@ static void fastBlurMore(int32_t w, int32_t h, int32_t stride, uint8_t *pix, int rgbsum += rgballsum; \ y++; \ yi += stride; - + while (y < r1) { update (0, y, y + r1); } @@ -150,8 +138,10 @@ static void fastBlurMore(int32_t w, int32_t h, int32_t stride, uint8_t *pix, int while (y < h) { update (y - r1, y, h - 1); } - #undef update +#undef update } + + delete[] rgb; } static void fastBlur(int32_t w, int32_t h, int32_t stride, uint8_t *pix, int32_t radius) { @@ -172,12 +162,12 @@ static void fastBlur(int32_t w, int32_t h, int32_t stride, uint8_t *pix, int32_t } else { return; } - + if (radius > 15 || div >= w || div >= h || w * h > 150 * 150 || stride > w * 4) { return; } - uint64_t *rgb = malloc(w * h * sizeof(uint64_t)); + uint64_t *rgb = new uint64_t[w * h]; if (rgb == NULL) { return; } @@ -190,16 +180,16 @@ static void fastBlur(int32_t w, int32_t h, int32_t stride, uint8_t *pix, int32_t uint64_t cur = getColors(&pix[yw]); uint64_t rgballsum = -radius * cur; uint64_t rgbsum = cur * ((r1 * (r1 + 1)) >> 1); - + for (i = 1; i <= radius; i++) { cur = getColors(&pix[yw + i * 4]); rgbsum += cur * (r1 - i); rgballsum += cur; } - + x = 0; - - #define update(start, middle, end) \ + +#define update(start, middle, end) \ rgb[y * w + x] = (rgbsum >> shift) & 0x00FF00FF00FF00FFLL; \ rgballsum += getColors(&pix[yw + (start) * 4]) - 2 * getColors(&pix[yw + (middle) * 4]) + getColors(&pix[yw + (end) * 4]); \ rgbsum += rgballsum; \ @@ -214,12 +204,12 @@ static void fastBlur(int32_t w, int32_t h, int32_t stride, uint8_t *pix, int32_t while (x < w) { update (x - r1, x, w - 1); } - - #undef update - + +#undef update + yw += stride; } - + const int32_t he = h - r1; for (x = 0; x < w; x++) { uint64_t rgballsum = -radius * rgb[x]; @@ -228,11 +218,11 @@ static void fastBlur(int32_t w, int32_t h, int32_t stride, uint8_t *pix, int32_t rgbsum += rgb[i * w + x] * (r1 - i); rgballsum += rgb[i * w + x]; } - + y = 0; int32_t yi = x * 4; - - #define update(start, middle, end) \ + +#define update(start, middle, end) \ int64_t res = rgbsum >> shift; \ pix[yi] = res; \ pix[yi + 1] = res >> 16; \ @@ -242,7 +232,7 @@ static void fastBlur(int32_t w, int32_t h, int32_t stride, uint8_t *pix, int32_t rgbsum += rgballsum; \ y++; \ yi += stride; - + while (y < r1) { update (0, y, y + r1); } @@ -252,10 +242,10 @@ static void fastBlur(int32_t w, int32_t h, int32_t stride, uint8_t *pix, int32_t while (y < h) { update (y - r1, y, h - 1); } - #undef update +#undef update } - - free(rgb); + + delete[] rgb; } static void fastBlurMore565(int32_t w, int32_t h, int32_t stride, uint8_t *pix, int32_t radius) { @@ -266,7 +256,7 @@ static void fastBlurMore565(int32_t w, int32_t h, int32_t stride, uint8_t *pix, return; } - uint64_t *rgb = malloc(w * h * sizeof(uint64_t)); + uint64_t *rgb = new uint64_t[w * h]; if (rgb == NULL) { return; } @@ -340,6 +330,8 @@ static void fastBlurMore565(int32_t w, int32_t h, int32_t stride, uint8_t *pix, } #undef update } + + delete[] rgb; } static void fastBlur565(int32_t w, int32_t h, int32_t stride, uint8_t *pix, int32_t radius) { @@ -365,7 +357,7 @@ static void fastBlur565(int32_t w, int32_t h, int32_t stride, uint8_t *pix, int3 return; } - uint64_t *rgb = malloc(w * h * sizeof(uint64_t)); + uint64_t *rgb = new uint64_t[w * h]; if (rgb == NULL) { return; } @@ -441,10 +433,10 @@ static void fastBlur565(int32_t w, int32_t h, int32_t stride, uint8_t *pix, int3 #undef update } - free(rgb); + delete[] rgb; } -JNIEXPORT int Java_org_telegram_messenger_Utilities_needInvert(JNIEnv *env, jclass class, jobject bitmap, jint unpin, jint width, jint height, jint stride) { +int Java_org_telegram_messenger_Utilities_needInvert(JNIEnv *env, jclass clazz, jobject bitmap, jint unpin, jint width, jint height, jint stride) { if (!bitmap) { return 0; } @@ -471,9 +463,9 @@ JNIEXPORT int Java_org_telegram_messenger_Utilities_needInvert(JNIEnv *env, jcla uint8_t a = pix[index + 3]; float alpha = a / 255.0f; - uint8_t r = (uint8_t) (pix[index] * alpha); - uint8_t g = (uint8_t) (pix[index + 1] * alpha); - uint8_t b = (uint8_t) (pix[index + 2] * alpha); + uint8_t r = (uint8_t)(pix[index] * alpha); + uint8_t g = (uint8_t)(pix[index + 1] * alpha); + uint8_t b = (uint8_t)(pix[index + 2] * alpha); uint8_t cmax = (r > g) ? r : g; if (b > cmax) { @@ -510,30 +502,30 @@ JNIEXPORT int Java_org_telegram_messenger_Utilities_needInvert(JNIEnv *env, jcla return hasAlpha && matching / total > 0.85; } -JNIEXPORT void Java_org_telegram_messenger_Utilities_blurBitmap(JNIEnv *env, jclass class, jobject bitmap, jint radius, jint unpin, jint width, jint height, jint stride) { +void Java_org_telegram_messenger_Utilities_blurBitmap(JNIEnv *env, jclass clazz, jobject bitmap, jint radius, jint unpin, jint width, jint height, jint stride) { if (!bitmap) { return; } - + if (!width || !height || !stride) { return; } - + void *pixels = 0; if (AndroidBitmap_lockPixels(env, bitmap, &pixels) < 0) { return; } if (stride == width * 2) { if (radius <= 3) { - fastBlur565(width, height, stride, pixels, radius); + fastBlur565(width, height, stride, (uint8_t *) pixels, radius); } else { - fastBlurMore565(width, height, stride, pixels, radius); + fastBlurMore565(width, height, stride, (uint8_t *) pixels, radius); } } else { if (radius <= 3) { - fastBlur(width, height, stride, pixels, radius); + fastBlur(width, height, stride, (uint8_t *) pixels, radius); } else { - fastBlurMore(width, height, stride, pixels, radius); + fastBlurMore(width, height, stride, (uint8_t *) pixels, radius); } } if (unpin) { @@ -541,7 +533,10 @@ JNIEXPORT void Java_org_telegram_messenger_Utilities_blurBitmap(JNIEnv *env, jcl } } -JNIEXPORT void Java_org_telegram_messenger_Utilities_calcCDT(JNIEnv *env, jclass class, jobject hsvBuffer, jint width, jint height, jobject buffer) { +const uint32_t PGPhotoEnhanceHistogramBins = 256; +const uint32_t PGPhotoEnhanceSegments = 4; + +void Java_org_telegram_messenger_Utilities_calcCDT(JNIEnv *env, jclass clazz, jobject hsvBuffer, jint width, jint height, jobject buffer, jobject calcBuffer) { float imageWidth = width; float imageHeight = height; float _clipLimit = 1.25f; @@ -551,177 +546,173 @@ JNIEXPORT void Java_org_telegram_messenger_Utilities_calcCDT(JNIEnv *env, jclass uint32_t clipLimit = (uint32_t) MAX(1, _clipLimit * tileArea / (float) PGPhotoEnhanceHistogramBins); float scale = 255.0f / (float) tileArea; - unsigned char *bytes = (*env)->GetDirectBufferAddress(env, hsvBuffer); + unsigned char *bytes = (unsigned char *) env->GetDirectBufferAddress(hsvBuffer); + uint32_t *calcBytes = (uint32_t *) env->GetDirectBufferAddress(calcBuffer); + unsigned char *result = (unsigned char *) env->GetDirectBufferAddress(buffer); + + uint32_t *cdfsMin = calcBytes; + calcBytes += totalSegments; + uint32_t *cdfsMax = calcBytes; + calcBytes += totalSegments; + uint32_t *cdfs = calcBytes; + calcBytes += totalSegments * PGPhotoEnhanceHistogramBins; + uint32_t *hist = calcBytes; + memset(hist, 0, sizeof(uint32_t) * totalSegments * PGPhotoEnhanceHistogramBins); - uint32_t **hist = calloc(totalSegments, sizeof(uint32_t *)); - uint32_t **cdfs = calloc(totalSegments, sizeof(uint32_t *)); - uint32_t *cdfsMin = calloc(totalSegments, sizeof(uint32_t)); - uint32_t *cdfsMax = calloc(totalSegments, sizeof(uint32_t)); - - for (uint32_t a = 0; a < totalSegments; a++) { - hist[a] = calloc(PGPhotoEnhanceHistogramBins, sizeof(uint32_t)); - cdfs[a] = calloc(PGPhotoEnhanceHistogramBins, sizeof(uint32_t)); - } - float xMul = PGPhotoEnhanceSegments / imageWidth; float yMul = PGPhotoEnhanceSegments / imageHeight; - - for (uint32_t y = 0; y < imageHeight; y++) { - uint32_t yOffset = y * width * 4; - for (uint32_t x = 0; x < imageWidth; x++) { - uint32_t index = x * 4 + yOffset; - - uint32_t tx = (uint32_t)(x * xMul); - uint32_t ty = (uint32_t)(y * yMul); + + uint32_t i, j; + + for (i = 0; i < imageHeight; i++) { + uint32_t yOffset = i * width * 4; + for (j = 0; j < imageWidth; j++) { + uint32_t index = j * 4 + yOffset; + + uint32_t tx = (uint32_t)(j * xMul); + uint32_t ty = (uint32_t)(i * yMul); uint32_t t = ty * PGPhotoEnhanceSegments + tx; - - hist[t][bytes[index + 2]]++; + + hist[t * PGPhotoEnhanceHistogramBins + bytes[index + 2]]++; } } - - for (uint32_t i = 0; i < totalSegments; i++) { + + for (i = 0; i < totalSegments; i++) { if (clipLimit > 0) { uint32_t clipped = 0; - for (uint32_t j = 0; j < PGPhotoEnhanceHistogramBins; ++j) { - if (hist[i][j] > clipLimit) { - clipped += hist[i][j] - clipLimit; - hist[i][j] = clipLimit; + for (j = 0; j < PGPhotoEnhanceHistogramBins; j++) { + if (hist[i * PGPhotoEnhanceHistogramBins + j] > clipLimit) { + clipped += hist[i * PGPhotoEnhanceHistogramBins + j] - clipLimit; + hist[i * PGPhotoEnhanceHistogramBins + j] = clipLimit; } } - + uint32_t redistBatch = clipped / PGPhotoEnhanceHistogramBins; uint32_t residual = clipped - redistBatch * PGPhotoEnhanceHistogramBins; - - for (uint32_t j = 0; j < PGPhotoEnhanceHistogramBins; ++j) { - hist[i][j] += redistBatch; - } - - for (uint32_t j = 0; j < residual; ++j) { - hist[i][j]++; + + for (j = 0; j < PGPhotoEnhanceHistogramBins; j++) { + hist[i * PGPhotoEnhanceHistogramBins + j] += redistBatch; + if (j < residual) { + hist[i * PGPhotoEnhanceHistogramBins + j]++; + } } } - memcpy(cdfs[i], hist[i], PGPhotoEnhanceHistogramBins * sizeof(uint32_t)); - + memcpy(cdfs + i * PGPhotoEnhanceHistogramBins, hist + i * PGPhotoEnhanceHistogramBins, PGPhotoEnhanceHistogramBins * sizeof(uint32_t)); + uint32_t hMin = PGPhotoEnhanceHistogramBins - 1; - for (uint32_t j = 0; j < hMin; ++j) { - if (cdfs[j] != 0) { + for (j = 0; j < hMin; ++j) { + if (cdfs[i * PGPhotoEnhanceHistogramBins + j] != 0) { hMin = j; } } - + uint32_t cdf = 0; - for (uint32_t j = hMin; j < PGPhotoEnhanceHistogramBins; ++j) { - cdf += cdfs[i][j]; - cdfs[i][j] = (uint8_t) MIN(255, cdf * scale); + for (j = hMin; j < PGPhotoEnhanceHistogramBins; j++) { + cdf += cdfs[i * PGPhotoEnhanceHistogramBins + j]; + cdfs[i * PGPhotoEnhanceHistogramBins + j] = (uint8_t) MIN(255, cdf * scale); } - - cdfsMin[i] = cdfs[i][hMin]; - cdfsMax[i] = cdfs[i][PGPhotoEnhanceHistogramBins - 1]; + + cdfsMin[i] = cdfs[i * PGPhotoEnhanceHistogramBins + hMin]; + cdfsMax[i] = cdfs[i * PGPhotoEnhanceHistogramBins + PGPhotoEnhanceHistogramBins - 1]; } - - uint32_t resultSize = 4 * PGPhotoEnhanceHistogramBins * totalSegments; - uint32_t resultBytesPerRow = 4 * PGPhotoEnhanceHistogramBins; - - unsigned char *result = (*env)->GetDirectBufferAddress(env, buffer); - for (uint32_t tile = 0; tile < totalSegments; tile++) { - uint32_t yOffset = tile * resultBytesPerRow; - for (uint32_t i = 0; i < PGPhotoEnhanceHistogramBins; i++) { + + for (j = 0; j < totalSegments; j++) { + uint32_t yOffset = j * PGPhotoEnhanceHistogramBins * 4; + for (i = 0; i < PGPhotoEnhanceHistogramBins; i++) { uint32_t index = i * 4 + yOffset; - result[index] = (uint8_t)cdfs[tile][i]; - result[index + 1] = (uint8_t)cdfsMin[tile]; - result[index + 2] = (uint8_t)cdfsMax[tile]; + result[index] = (uint8_t) cdfs[j * PGPhotoEnhanceHistogramBins + i]; + result[index + 1] = (uint8_t) cdfsMin[j]; + result[index + 2] = (uint8_t) cdfsMax[j]; result[index + 3] = 255; } } - - for (uint32_t a = 0; a < totalSegments; a++) { - free(hist[a]); - free(cdfs[a]); - } - free(hist); - free(cdfs); - free(cdfsMax); - free(cdfsMin); } -JNIEXPORT jint Java_org_telegram_messenger_Utilities_pinBitmap(JNIEnv *env, jclass class, jobject bitmap) { - if (bitmap == NULL) { +jint Java_org_telegram_messenger_Utilities_pinBitmap(JNIEnv *env, jclass clazz, jobject bitmap) { + if (bitmap == nullptr) { return 0; } - unsigned char *pixels; + void *pixels; return AndroidBitmap_lockPixels(env, bitmap, &pixels) >= 0 ? 1 : 0; } -JNIEXPORT void Java_org_telegram_messenger_Utilities_unpinBitmap(JNIEnv *env, jclass class, jobject bitmap) { +void Java_org_telegram_messenger_Utilities_unpinBitmap(JNIEnv *env, jclass clazz, jobject bitmap) { if (bitmap == NULL) { return; } AndroidBitmap_unlockPixels(env, bitmap); } -JNIEXPORT jboolean Java_org_telegram_messenger_Utilities_loadWebpImage(JNIEnv *env, jclass class, jobject outputBitmap, jobject buffer, jint len, jobject options, jboolean unpin) { +jboolean Java_org_telegram_messenger_Utilities_loadWebpImage(JNIEnv *env, jclass clazz, jobject outputBitmap, jobject buffer, jint len, jobject options, jboolean unpin) { if (!buffer) { - (*env)->ThrowNew(env, jclass_NullPointerException, "Input buffer can not be null"); + env->ThrowNew(jclass_NullPointerException, "Input buffer can not be null"); return 0; } - - jbyte *inputBuffer = (*env)->GetDirectBufferAddress(env, buffer); - + + jbyte *inputBuffer = (jbyte *) env->GetDirectBufferAddress(buffer); + int32_t bitmapWidth = 0; int32_t bitmapHeight = 0; - if (!WebPGetInfo((uint8_t*)inputBuffer, len, &bitmapWidth, &bitmapHeight)) { - (*env)->ThrowNew(env, jclass_RuntimeException, "Invalid WebP format"); + if (!WebPGetInfo((uint8_t *)inputBuffer, len, &bitmapWidth, &bitmapHeight)) { + env->ThrowNew(jclass_RuntimeException, "Invalid WebP format"); return 0; } - - if (options && (*env)->GetBooleanField(env, options, jclass_Options_inJustDecodeBounds) == JNI_TRUE) { - (*env)->SetIntField(env, options, jclass_Options_outWidth, bitmapWidth); - (*env)->SetIntField(env, options, jclass_Options_outHeight, bitmapHeight); + + if (options && env->GetBooleanField(options, jclass_Options_inJustDecodeBounds) == JNI_TRUE) { + env->SetIntField(options, jclass_Options_outWidth, bitmapWidth); + env->SetIntField(options, jclass_Options_outHeight, bitmapHeight); return 1; } - + if (!outputBitmap) { - (*env)->ThrowNew(env, jclass_NullPointerException, "output bitmap can not be null"); + env->ThrowNew(jclass_NullPointerException, "output bitmap can not be null"); return 0; } - + AndroidBitmapInfo bitmapInfo; if (AndroidBitmap_getInfo(env, outputBitmap, &bitmapInfo) != ANDROID_BITMAP_RESUT_SUCCESS) { - (*env)->ThrowNew(env, jclass_RuntimeException, "Failed to get Bitmap information"); + env->ThrowNew(jclass_RuntimeException, "Failed to get Bitmap information"); return 0; } - + void *bitmapPixels = 0; if (AndroidBitmap_lockPixels(env, outputBitmap, &bitmapPixels) != ANDROID_BITMAP_RESUT_SUCCESS) { - (*env)->ThrowNew(env, jclass_RuntimeException, "Failed to lock Bitmap pixels"); + env->ThrowNew(jclass_RuntimeException, "Failed to lock Bitmap pixels"); return 0; } - - if (!WebPDecodeRGBAInto((uint8_t*)inputBuffer, len, (uint8_t*)bitmapPixels, bitmapInfo.height * bitmapInfo.stride, bitmapInfo.stride)) { + + if (!WebPDecodeRGBAInto((uint8_t *) inputBuffer, len, (uint8_t *) bitmapPixels, bitmapInfo.height * bitmapInfo.stride, bitmapInfo.stride)) { AndroidBitmap_unlockPixels(env, outputBitmap); - (*env)->ThrowNew(env, jclass_RuntimeException, "Failed to decode webp image"); + env->ThrowNew(jclass_RuntimeException, "Failed to decode webp image"); return 0; } - + if (unpin && AndroidBitmap_unlockPixels(env, outputBitmap) != ANDROID_BITMAP_RESUT_SUCCESS) { - (*env)->ThrowNew(env, jclass_RuntimeException, "Failed to unlock Bitmap pixels"); + env->ThrowNew(jclass_RuntimeException, "Failed to unlock Bitmap pixels"); return 0; } - + return 1; } #define SQUARE(i) ((i)*(i)) -inline static void zeroClearInt(int* p, size_t count) { memset(p, 0, sizeof(int) * count); } -JNIEXPORT void Java_org_telegram_messenger_Utilities_stackBlurBitmap(JNIEnv* env, jclass class, jobject bitmap, jint radius) { - if (radius < 1) return; +inline static void zeroClearInt(int *p, size_t count) { + memset(p, 0, sizeof(int) * count); +} + +void Java_org_telegram_messenger_Utilities_stackBlurBitmap(JNIEnv *env, jclass clazz, jobject bitmap, jint radius) { + if (radius < 1) { + return; + } AndroidBitmapInfo info; - if (AndroidBitmap_getInfo(env, bitmap, &info) != ANDROID_BITMAP_RESULT_SUCCESS) + if (AndroidBitmap_getInfo(env, bitmap, &info) != ANDROID_BITMAP_RESULT_SUCCESS) { return; - if (info.format != ANDROID_BITMAP_FORMAT_RGBA_8888) + } + if (info.format != ANDROID_BITMAP_FORMAT_RGBA_8888) { return; + } int w = info.width; int h = info.height; @@ -749,17 +740,17 @@ JNIEXPORT void Java_org_telegram_messenger_Utilities_stackBlurBitmap(JNIEnv* env zeroClearInt(vmin, MAX(w, h)); // Large buffers - int *r = malloc(wh * sizeof(int)); - int *g = malloc(wh * sizeof(int)); - int *b = malloc(wh * sizeof(int)); - int *a = malloc(wh * sizeof(int)); + int *r = new int[wh]; + int *g = new int[wh]; + int *b = new int[wh]; + int *a = new int[wh]; zeroClearInt(r, wh); zeroClearInt(g, wh); zeroClearInt(b, wh); zeroClearInt(a, wh); const size_t dvcount = 256 * divsum; - int *dv = malloc(sizeof(int) * dvcount); + int *dv = new int[dvcount]; int i; for (i = 0; (size_t) i < dvcount; i++) { dv[i] = (i / divsum); @@ -769,7 +760,7 @@ JNIEXPORT void Java_org_telegram_messenger_Utilities_stackBlurBitmap(JNIEnv* env int x, y; int *sir; int routsum, goutsum, boutsum, aoutsum; - int rinsum, ginsum, binsum, ainsum; + int rinsum, ginsum, binsum, ainsum; int rsum, gsum, bsum, asum, p, yp; int stackpointer; int stackstart; @@ -955,38 +946,38 @@ JNIEXPORT void Java_org_telegram_messenger_Utilities_stackBlurBitmap(JNIEnv* env } } - free(r); - free(g); - free(b); - free(a); - free(dv); + delete[] r; + delete[] g; + delete[] b; + delete[] a; + delete[] dv; AndroidBitmap_unlockPixels(env, bitmap); } -JNIEXPORT void Java_org_telegram_messenger_Utilities_drawDitheredGradient(JNIEnv* env, jclass class, jobject bitmap, jintArray colors, jint startX, jint startY, jint endX, jint endY) { +void Java_org_telegram_messenger_Utilities_drawDitheredGradient(JNIEnv *env, jclass clazz, jobject bitmap, jintArray colors, jint startX, jint startY, jint endX, jint endY) { AndroidBitmapInfo info; - void* pixelsBuffer; + void *pixelsBuffer; int reason; if ((reason = AndroidBitmap_getInfo(env, bitmap, &info)) != ANDROID_BITMAP_RESULT_SUCCESS) { - (*env)->ThrowNew(env, jclass_RuntimeException, "AndroidBitmap_getInfo failed with a reason: " + reason); + env->ThrowNew(jclass_RuntimeException, "AndroidBitmap_getInfo failed with a reason: " + reason); return; } if (info.format != ANDROID_BITMAP_FORMAT_RGBA_8888) { - (*env)->ThrowNew(env, jclass_RuntimeException, "Bitmap must be in ARGB_8888 format"); + env->ThrowNew(jclass_RuntimeException, "Bitmap must be in ARGB_8888 format"); return; } if ((reason = AndroidBitmap_lockPixels(env, bitmap, &pixelsBuffer)) != ANDROID_BITMAP_RESULT_SUCCESS) { - (*env)->ThrowNew(env, jclass_RuntimeException, "AndroidBitmap_lockPixels failed with a reason: " + reason); + env->ThrowNew(jclass_RuntimeException, "AndroidBitmap_lockPixels failed with a reason: " + reason); return; } uint8_t i, j, n; // gradient colors extracting - jint *colorsBuffer = (*env)->GetIntArrayElements(env, colors, 0); + jint *colorsBuffer = env->GetIntArrayElements(colors, 0); uint8_t *colorsComponents = (uint8_t *) colorsBuffer; float colorsF[4][2]; for (i = 0; i < 4; i++) { @@ -996,7 +987,7 @@ JNIEXPORT void Java_org_telegram_messenger_Utilities_drawDitheredGradient(JNIEnv colorsF[n][j] = colorsComponents[j * 4 + i] / 255.F; } } - (*env)->ReleaseIntArrayElements(env, colors, colorsBuffer, JNI_ABORT); + env->ReleaseIntArrayElements(colors, colorsBuffer, JNI_ABORT); // gradient vector const int32_t vx = endX - startX; @@ -1004,9 +995,10 @@ JNIEXPORT void Java_org_telegram_messenger_Utilities_drawDitheredGradient(JNIEnv const float vSquaredMag = vx * vx + vy * vy; float noise, fraction, error, componentF; - float *pixelsComponentsF = malloc(info.height * info.stride * 4 * sizeof(float)); + float *pixelsComponentsF = new float[info.height * info.stride * 4]; memset(pixelsComponentsF, 0, info.height * info.stride * 4 * sizeof(float)); - uint8_t *bitmapPixelsComponents = (uint8_t *) pixelsBuffer; + uint8_t * bitmapPixelsComponents = (uint8_t * ) + pixelsBuffer; int32_t x, y; int32_t offset; @@ -1036,7 +1028,8 @@ JNIEXPORT void Java_org_telegram_messenger_Utilities_drawDitheredGradient(JNIEnv // draw componentF = roundf(pixelsComponentsF[position] * 255.F); - bitmapPixelsComponents[position] = (uint8_t) componentF; + bitmapPixelsComponents[position] = (uint8_t) + componentF; // floyd-steinberg dithering error = pixelsComponentsF[position] - componentF / 255.F; @@ -1056,10 +1049,12 @@ JNIEXPORT void Java_org_telegram_messenger_Utilities_drawDitheredGradient(JNIEnv } } - free(pixelsComponentsF); + delete[] pixelsComponentsF; if ((reason = AndroidBitmap_unlockPixels(env, bitmap)) != ANDROID_BITMAP_RESULT_SUCCESS) { - (*env)->ThrowNew(env, jclass_RuntimeException, "AndroidBitmap_unlockPixels failed with a reason: " + reason); + env->ThrowNew(jclass_RuntimeException, "AndroidBitmap_unlockPixels failed with a reason: " + reason); return; } +} + } \ No newline at end of file diff --git a/TMessagesProj/jni/image.h b/TMessagesProj/jni/image.h deleted file mode 100644 index ebe736c32..000000000 --- a/TMessagesProj/jni/image.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef image_h -#define image_h - -#include - -jint imageOnJNILoad(JavaVM *vm, JNIEnv *env); - -#endif diff --git a/TMessagesProj/jni/jni.c b/TMessagesProj/jni/jni.c index d6568b8ad..c97fc6bc4 100644 --- a/TMessagesProj/jni/jni.c +++ b/TMessagesProj/jni/jni.c @@ -10,11 +10,11 @@ #include #include #include -#include "image.h" #include "libtgvoip/client/android/tg_voip_jni.h" int registerNativeTgNetFunctions(JavaVM *vm, JNIEnv *env); int videoOnJNILoad(JavaVM *vm, JNIEnv *env); +int imageOnJNILoad(JavaVM *vm, JNIEnv *env); //int tonLibOnLoad(JavaVM *vm, JNIEnv *env); jint JNI_OnLoad(JavaVM *vm, void *reserved) { diff --git a/TMessagesProj/jni/rlottie/src/lottie/lottieitem.cpp b/TMessagesProj/jni/rlottie/src/lottie/lottieitem.cpp index 979c39b8c..1e86d368a 100755 --- a/TMessagesProj/jni/rlottie/src/lottie/lottieitem.cpp +++ b/TMessagesProj/jni/rlottie/src/lottie/lottieitem.cpp @@ -535,6 +535,9 @@ LOTCompLayerItem::LOTCompLayerItem(LOTLayerData *layerModel) { // 1. create layer item for (auto &i : mLayerData->mChildren) { + if (i->type() != LOTData::Type::Layer) { + continue; + } LOTLayerData *layerModel = static_cast(i.get()); auto layerItem = LOTCompItem::createLayerItem(layerModel); if (layerItem) mLayers.push_back(std::move(layerItem)); diff --git a/TMessagesProj/jni/rlottie/src/lottie/lottiemodel.cpp b/TMessagesProj/jni/rlottie/src/lottie/lottiemodel.cpp index 5cdf7c35c..65b1d739b 100755 --- a/TMessagesProj/jni/rlottie/src/lottie/lottiemodel.cpp +++ b/TMessagesProj/jni/rlottie/src/lottie/lottiemodel.cpp @@ -201,10 +201,13 @@ void LOTGradient::populate(VGradientStops &stops, int frameNo) int size = gradData.mGradient.size(); float * ptr = gradData.mGradient.data(); int colorPoints = mColorPoints; - if (colorPoints == -1) { // for legacy bodymovin (ref: lottie-android) + if (colorPoints < 0 || colorPoints * 4 > size) { // for legacy bodymovin (ref: lottie-android) colorPoints = size / 4; } int opacityArraySize = size - colorPoints * 4; + if (opacityArraySize % 2 != 0 || colorPoints > opacityArraySize / 2 && opacityArraySize < 4) { + opacityArraySize = 0; + } float *opacityPtr = ptr + (colorPoints * 4); stops.clear(); int j = 0; @@ -257,6 +260,9 @@ void LOTGradient::populate(VGradientStops &stops, int frameNo) stops.push_back(std::make_pair(colorStop, color.toColor())); } ptr += 4; + if (stops.empty()) { + stops.push_back(std::make_pair(0.0f, VColor(255, 255, 255, 255))); + } } } diff --git a/TMessagesProj/jni/rlottie/src/vector/vdrawhelper.cpp b/TMessagesProj/jni/rlottie/src/vector/vdrawhelper.cpp index 5e6ef4dc9..2bc7fc702 100755 --- a/TMessagesProj/jni/rlottie/src/vector/vdrawhelper.cpp +++ b/TMessagesProj/jni/rlottie/src/vector/vdrawhelper.cpp @@ -155,7 +155,7 @@ bool VGradientCache::generateGradientColorTable(const VGradientStops &stops, colorTable[pos++] = curColor; - while (fpos <= curr->first) { + while (fpos <= curr->first && pos < size) { colorTable[pos] = colorTable[pos - 1]; pos++; fpos += incr; diff --git a/TMessagesProj/jni/tgnet/ConnectionsManager.cpp b/TMessagesProj/jni/tgnet/ConnectionsManager.cpp index bf68ba1a7..5504cb202 100644 --- a/TMessagesProj/jni/tgnet/ConnectionsManager.cpp +++ b/TMessagesProj/jni/tgnet/ConnectionsManager.cpp @@ -125,6 +125,10 @@ ConnectionsManager::~ConnectionsManager() { close(epolFd); epolFd = 0; } + if (pipeFd != nullptr) { + delete[] pipeFd; + pipeFd = nullptr; + } pthread_mutex_destroy(&mutex); } @@ -1645,6 +1649,7 @@ void ConnectionsManager::initDatacenters() { if (datacenters.find(2) == datacenters.end()) { datacenter = new Datacenter(instanceNum, 2); datacenter->addAddressAndPort("149.154.167.51", 443, 0, ""); + datacenter->addAddressAndPort("95.161.76.100", 443, 0, ""); datacenter->addAddressAndPort("2001:67c:4e8:f002:0000:0000:0000:000a", 443, 1, ""); datacenters[2] = datacenter; } @@ -2309,8 +2314,6 @@ void ConnectionsManager::processRequestQueue(uint32_t connectionTypes, uint32_t if (genericConnection != nullptr && !sessionsToDestroy.empty() && genericConnection->getConnectionToken() != 0) { std::vector::iterator iter = sessionsToDestroy.begin(); - sessionsToDestroy.erase(iter); - if (abs(currentTime - lastDestroySessionRequestTime) > 2) { lastDestroySessionRequestTime = currentTime; TL_destroy_session *request = new TL_destroy_session(); @@ -2324,6 +2327,7 @@ void ConnectionsManager::processRequestQueue(uint32_t connectionTypes, uint32_t networkMessage->message->seqno = genericConnection->generateMessageSeqNo(false); addMessageToDatacenter(defaultDatacenter->getDatacenterId(), networkMessage, genericMessagesToDatacenters); } + sessionsToDestroy.erase(iter); } } diff --git a/TMessagesProj/jni/tgnet/ConnectionsManager.h b/TMessagesProj/jni/tgnet/ConnectionsManager.h index f94a43344..e6f913666 100644 --- a/TMessagesProj/jni/tgnet/ConnectionsManager.h +++ b/TMessagesProj/jni/tgnet/ConnectionsManager.h @@ -196,7 +196,7 @@ private: std::vector activeConnectionsCopy; int epolFd; int eventFd; - int *pipeFd; + int *pipeFd = nullptr; NativeByteBuffer *networkBuffer; requestsList requestsQueue; diff --git a/TMessagesProj/src/main/assets/emoji/5_0.png b/TMessagesProj/src/main/assets/emoji/5_0.png index d94ea77c8..5117aaf8d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_0.png and b/TMessagesProj/src/main/assets/emoji/5_0.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_1.png b/TMessagesProj/src/main/assets/emoji/5_1.png index 1942222e1..4cef481f1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_1.png and b/TMessagesProj/src/main/assets/emoji/5_1.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_10.png b/TMessagesProj/src/main/assets/emoji/5_10.png index c811a9878..ef88f0df7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_10.png and b/TMessagesProj/src/main/assets/emoji/5_10.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_100.png b/TMessagesProj/src/main/assets/emoji/5_100.png index d6afc1bf8..db4b31a04 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_100.png and b/TMessagesProj/src/main/assets/emoji/5_100.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_102.png b/TMessagesProj/src/main/assets/emoji/5_102.png index 8e0397f7b..36171b004 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_102.png and b/TMessagesProj/src/main/assets/emoji/5_102.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_103.png b/TMessagesProj/src/main/assets/emoji/5_103.png index f36ff7af1..0894290c5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_103.png and b/TMessagesProj/src/main/assets/emoji/5_103.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_104.png b/TMessagesProj/src/main/assets/emoji/5_104.png index 17dd21e5e..0fecd47b6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_104.png and b/TMessagesProj/src/main/assets/emoji/5_104.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_105.png b/TMessagesProj/src/main/assets/emoji/5_105.png index 3fe9cb997..9d75fa0d7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_105.png and b/TMessagesProj/src/main/assets/emoji/5_105.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_106.png b/TMessagesProj/src/main/assets/emoji/5_106.png index e464f1018..ad977c695 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_106.png and b/TMessagesProj/src/main/assets/emoji/5_106.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_107.png b/TMessagesProj/src/main/assets/emoji/5_107.png index 6587a5de6..ec636e11b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_107.png and b/TMessagesProj/src/main/assets/emoji/5_107.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_108.png b/TMessagesProj/src/main/assets/emoji/5_108.png index eee07d296..93de83754 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_108.png and b/TMessagesProj/src/main/assets/emoji/5_108.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_109.png b/TMessagesProj/src/main/assets/emoji/5_109.png index 130174e29..670cf0e93 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_109.png and b/TMessagesProj/src/main/assets/emoji/5_109.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_11.png b/TMessagesProj/src/main/assets/emoji/5_11.png index dd03d02de..c7c102bc2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_11.png and b/TMessagesProj/src/main/assets/emoji/5_11.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_110.png b/TMessagesProj/src/main/assets/emoji/5_110.png index 38d6813e6..ae094bd60 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_110.png and b/TMessagesProj/src/main/assets/emoji/5_110.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_111.png b/TMessagesProj/src/main/assets/emoji/5_111.png index 07c3d7f67..e44e9b6b9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_111.png and b/TMessagesProj/src/main/assets/emoji/5_111.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_114.png b/TMessagesProj/src/main/assets/emoji/5_114.png index d613c9c00..024a48549 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_114.png and b/TMessagesProj/src/main/assets/emoji/5_114.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_115.png b/TMessagesProj/src/main/assets/emoji/5_115.png index 6f7e68faa..7c0c12921 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_115.png and b/TMessagesProj/src/main/assets/emoji/5_115.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_116.png b/TMessagesProj/src/main/assets/emoji/5_116.png index 6836a0a7c..76ee7cb18 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_116.png and b/TMessagesProj/src/main/assets/emoji/5_116.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_118.png b/TMessagesProj/src/main/assets/emoji/5_118.png index 44482cd09..e7d5651c8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_118.png and b/TMessagesProj/src/main/assets/emoji/5_118.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_120.png b/TMessagesProj/src/main/assets/emoji/5_120.png index 064592299..69e546fea 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_120.png and b/TMessagesProj/src/main/assets/emoji/5_120.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_121.png b/TMessagesProj/src/main/assets/emoji/5_121.png index b83751e93..d1332a6f7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_121.png and b/TMessagesProj/src/main/assets/emoji/5_121.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_122.png b/TMessagesProj/src/main/assets/emoji/5_122.png index 4f939da72..8c9441266 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_122.png and b/TMessagesProj/src/main/assets/emoji/5_122.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_123.png b/TMessagesProj/src/main/assets/emoji/5_123.png index 0ca0d360d..710dadd78 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_123.png and b/TMessagesProj/src/main/assets/emoji/5_123.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_124.png b/TMessagesProj/src/main/assets/emoji/5_124.png index 6ea0547e3..0c00d9fc6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_124.png and b/TMessagesProj/src/main/assets/emoji/5_124.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_125.png b/TMessagesProj/src/main/assets/emoji/5_125.png index 6df113dee..9f9b609b2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_125.png and b/TMessagesProj/src/main/assets/emoji/5_125.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_126.png b/TMessagesProj/src/main/assets/emoji/5_126.png index efd01711d..ad845e513 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_126.png and b/TMessagesProj/src/main/assets/emoji/5_126.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_127.png b/TMessagesProj/src/main/assets/emoji/5_127.png index d6958d8c5..87377011e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_127.png and b/TMessagesProj/src/main/assets/emoji/5_127.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_128.png b/TMessagesProj/src/main/assets/emoji/5_128.png index ed31305a6..8ae6de538 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_128.png and b/TMessagesProj/src/main/assets/emoji/5_128.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_129.png b/TMessagesProj/src/main/assets/emoji/5_129.png index 655537e96..549ff858e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_129.png and b/TMessagesProj/src/main/assets/emoji/5_129.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_13.png b/TMessagesProj/src/main/assets/emoji/5_13.png index f19b8894e..72f726f8a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_13.png and b/TMessagesProj/src/main/assets/emoji/5_13.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_130.png b/TMessagesProj/src/main/assets/emoji/5_130.png index 0f847ce2b..af47836c2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_130.png and b/TMessagesProj/src/main/assets/emoji/5_130.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_131.png b/TMessagesProj/src/main/assets/emoji/5_131.png index e28860a2f..bfc738ff8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_131.png and b/TMessagesProj/src/main/assets/emoji/5_131.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_132.png b/TMessagesProj/src/main/assets/emoji/5_132.png index 9632ac3a6..aa4532ba6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_132.png and b/TMessagesProj/src/main/assets/emoji/5_132.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_133.png b/TMessagesProj/src/main/assets/emoji/5_133.png index 709e87552..1818c8f99 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_133.png and b/TMessagesProj/src/main/assets/emoji/5_133.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_135.png b/TMessagesProj/src/main/assets/emoji/5_135.png index 964e3313a..6991d0e32 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_135.png and b/TMessagesProj/src/main/assets/emoji/5_135.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_136.png b/TMessagesProj/src/main/assets/emoji/5_136.png index 073842f96..901a1eb7c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_136.png and b/TMessagesProj/src/main/assets/emoji/5_136.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_137.png b/TMessagesProj/src/main/assets/emoji/5_137.png index 009c2228f..79daa0ddc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_137.png and b/TMessagesProj/src/main/assets/emoji/5_137.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_138.png b/TMessagesProj/src/main/assets/emoji/5_138.png index bd3c2c543..c6166ecf6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_138.png and b/TMessagesProj/src/main/assets/emoji/5_138.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_139.png b/TMessagesProj/src/main/assets/emoji/5_139.png index 3a47bfc89..b00ebe45a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_139.png and b/TMessagesProj/src/main/assets/emoji/5_139.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_14.png b/TMessagesProj/src/main/assets/emoji/5_14.png index 5141a529e..d608f5d3d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_14.png and b/TMessagesProj/src/main/assets/emoji/5_14.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_140.png b/TMessagesProj/src/main/assets/emoji/5_140.png index f98810c07..147f190b7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_140.png and b/TMessagesProj/src/main/assets/emoji/5_140.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_141.png b/TMessagesProj/src/main/assets/emoji/5_141.png index 4ef582c11..960e2e817 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_141.png and b/TMessagesProj/src/main/assets/emoji/5_141.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_142.png b/TMessagesProj/src/main/assets/emoji/5_142.png index d567310ff..050476e52 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_142.png and b/TMessagesProj/src/main/assets/emoji/5_142.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_143.png b/TMessagesProj/src/main/assets/emoji/5_143.png index 0b7540885..5b90630bc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_143.png and b/TMessagesProj/src/main/assets/emoji/5_143.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_145.png b/TMessagesProj/src/main/assets/emoji/5_145.png index ccc9f5488..d4175b32d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_145.png and b/TMessagesProj/src/main/assets/emoji/5_145.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_146.png b/TMessagesProj/src/main/assets/emoji/5_146.png index 1f5c1860a..5f7ada2e4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_146.png and b/TMessagesProj/src/main/assets/emoji/5_146.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_147.png b/TMessagesProj/src/main/assets/emoji/5_147.png index d3b16b39f..2d3792e9b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_147.png and b/TMessagesProj/src/main/assets/emoji/5_147.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_148.png b/TMessagesProj/src/main/assets/emoji/5_148.png index 1800f93bc..e773f96f9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_148.png and b/TMessagesProj/src/main/assets/emoji/5_148.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_149.png b/TMessagesProj/src/main/assets/emoji/5_149.png index 68163b76c..f68d226d5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_149.png and b/TMessagesProj/src/main/assets/emoji/5_149.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_15.png b/TMessagesProj/src/main/assets/emoji/5_15.png index 6f7519b31..6a8e5c709 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_15.png and b/TMessagesProj/src/main/assets/emoji/5_15.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_150.png b/TMessagesProj/src/main/assets/emoji/5_150.png index 70a777170..fcc2a2b02 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_150.png and b/TMessagesProj/src/main/assets/emoji/5_150.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_151.png b/TMessagesProj/src/main/assets/emoji/5_151.png index 91f876d0e..5ed7eddd4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_151.png and b/TMessagesProj/src/main/assets/emoji/5_151.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_152.png b/TMessagesProj/src/main/assets/emoji/5_152.png index 4dceb0c82..91f876d0e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_152.png and b/TMessagesProj/src/main/assets/emoji/5_152.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_153.png b/TMessagesProj/src/main/assets/emoji/5_153.png index a48ef6541..4dceb0c82 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_153.png and b/TMessagesProj/src/main/assets/emoji/5_153.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_154.png b/TMessagesProj/src/main/assets/emoji/5_154.png index fd14953f0..a8574f2fd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_154.png and b/TMessagesProj/src/main/assets/emoji/5_154.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_155.png b/TMessagesProj/src/main/assets/emoji/5_155.png index 43667be14..2a06d433a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_155.png and b/TMessagesProj/src/main/assets/emoji/5_155.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_156.png b/TMessagesProj/src/main/assets/emoji/5_156.png index 8e582f7c8..41261fa97 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_156.png and b/TMessagesProj/src/main/assets/emoji/5_156.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_157.png b/TMessagesProj/src/main/assets/emoji/5_157.png index 346b841d5..f8c32a405 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_157.png and b/TMessagesProj/src/main/assets/emoji/5_157.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_158.png b/TMessagesProj/src/main/assets/emoji/5_158.png index 476490513..fc399b2f9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_158.png and b/TMessagesProj/src/main/assets/emoji/5_158.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_159.png b/TMessagesProj/src/main/assets/emoji/5_159.png index 367e12310..476490513 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_159.png and b/TMessagesProj/src/main/assets/emoji/5_159.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_16.png b/TMessagesProj/src/main/assets/emoji/5_16.png index 698e1d579..e8ec3b38d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_16.png and b/TMessagesProj/src/main/assets/emoji/5_16.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_160.png b/TMessagesProj/src/main/assets/emoji/5_160.png index 6659d9c21..6743a837b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_160.png and b/TMessagesProj/src/main/assets/emoji/5_160.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_161.png b/TMessagesProj/src/main/assets/emoji/5_161.png index eb89c2b37..1c118e484 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_161.png and b/TMessagesProj/src/main/assets/emoji/5_161.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_162.png b/TMessagesProj/src/main/assets/emoji/5_162.png index fcf96d016..671007109 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_162.png and b/TMessagesProj/src/main/assets/emoji/5_162.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_163.png b/TMessagesProj/src/main/assets/emoji/5_163.png index f505195a3..fcf96d016 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_163.png and b/TMessagesProj/src/main/assets/emoji/5_163.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_164.png b/TMessagesProj/src/main/assets/emoji/5_164.png index a982b10fe..9caa973b8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_164.png and b/TMessagesProj/src/main/assets/emoji/5_164.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_165.png b/TMessagesProj/src/main/assets/emoji/5_165.png index 0e010710b..c3c32866b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_165.png and b/TMessagesProj/src/main/assets/emoji/5_165.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_166.png b/TMessagesProj/src/main/assets/emoji/5_166.png index 5faa5524b..18fc3d1df 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_166.png and b/TMessagesProj/src/main/assets/emoji/5_166.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_167.png b/TMessagesProj/src/main/assets/emoji/5_167.png index 8e16e26ce..c5766dd1a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_167.png and b/TMessagesProj/src/main/assets/emoji/5_167.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_168.png b/TMessagesProj/src/main/assets/emoji/5_168.png index 69cf4ab40..f31ed0a2c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_168.png and b/TMessagesProj/src/main/assets/emoji/5_168.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_169.png b/TMessagesProj/src/main/assets/emoji/5_169.png index c505b8c43..d44b50e5a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_169.png and b/TMessagesProj/src/main/assets/emoji/5_169.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_17.png b/TMessagesProj/src/main/assets/emoji/5_17.png index 1b06120da..14fa50d6a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_17.png and b/TMessagesProj/src/main/assets/emoji/5_17.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_170.png b/TMessagesProj/src/main/assets/emoji/5_170.png index 72b0579ef..1c55c48e2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_170.png and b/TMessagesProj/src/main/assets/emoji/5_170.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_171.png b/TMessagesProj/src/main/assets/emoji/5_171.png index 027fb884e..3f3f298cc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_171.png and b/TMessagesProj/src/main/assets/emoji/5_171.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_172.png b/TMessagesProj/src/main/assets/emoji/5_172.png index 78f2284ef..4ff41075c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_172.png and b/TMessagesProj/src/main/assets/emoji/5_172.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_173.png b/TMessagesProj/src/main/assets/emoji/5_173.png index adfeb0279..5fec5ba78 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_173.png and b/TMessagesProj/src/main/assets/emoji/5_173.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_174.png b/TMessagesProj/src/main/assets/emoji/5_174.png index ec576df20..b93fae250 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_174.png and b/TMessagesProj/src/main/assets/emoji/5_174.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_175.png b/TMessagesProj/src/main/assets/emoji/5_175.png index c9ff1c21f..16729985b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_175.png and b/TMessagesProj/src/main/assets/emoji/5_175.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_176.png b/TMessagesProj/src/main/assets/emoji/5_176.png index 0b7691c2d..7d04f6cc0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_176.png and b/TMessagesProj/src/main/assets/emoji/5_176.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_177.png b/TMessagesProj/src/main/assets/emoji/5_177.png index d3d8ed10c..8c34db5ec 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_177.png and b/TMessagesProj/src/main/assets/emoji/5_177.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_178.png b/TMessagesProj/src/main/assets/emoji/5_178.png index 2e8889acd..ddb9dd3a5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_178.png and b/TMessagesProj/src/main/assets/emoji/5_178.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_179.png b/TMessagesProj/src/main/assets/emoji/5_179.png index 1f22e2792..2f1c6127c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_179.png and b/TMessagesProj/src/main/assets/emoji/5_179.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_18.png b/TMessagesProj/src/main/assets/emoji/5_18.png index 3138a3289..9cf00fde6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_18.png and b/TMessagesProj/src/main/assets/emoji/5_18.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_180.png b/TMessagesProj/src/main/assets/emoji/5_180.png index 2ba2bf9a7..f5dcf5832 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_180.png and b/TMessagesProj/src/main/assets/emoji/5_180.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_181.png b/TMessagesProj/src/main/assets/emoji/5_181.png index cd5fd7b9f..3309e2df1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_181.png and b/TMessagesProj/src/main/assets/emoji/5_181.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_182.png b/TMessagesProj/src/main/assets/emoji/5_182.png index eea5160e2..6fd93f396 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_182.png and b/TMessagesProj/src/main/assets/emoji/5_182.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_183.png b/TMessagesProj/src/main/assets/emoji/5_183.png index 47df74f12..5d32a6221 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_183.png and b/TMessagesProj/src/main/assets/emoji/5_183.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_184.png b/TMessagesProj/src/main/assets/emoji/5_184.png index 8e6bbc718..ed50f3cf2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_184.png and b/TMessagesProj/src/main/assets/emoji/5_184.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_185.png b/TMessagesProj/src/main/assets/emoji/5_185.png index 4b01bcee2..d807e2498 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_185.png and b/TMessagesProj/src/main/assets/emoji/5_185.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_186.png b/TMessagesProj/src/main/assets/emoji/5_186.png index f9b818be4..549eb4854 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_186.png and b/TMessagesProj/src/main/assets/emoji/5_186.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_187.png b/TMessagesProj/src/main/assets/emoji/5_187.png index ad0e9e83c..40e4432fa 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_187.png and b/TMessagesProj/src/main/assets/emoji/5_187.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_188.png b/TMessagesProj/src/main/assets/emoji/5_188.png index f9553745b..ad0e9e83c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_188.png and b/TMessagesProj/src/main/assets/emoji/5_188.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_189.png b/TMessagesProj/src/main/assets/emoji/5_189.png index fc3cb7f74..fd13e02b8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_189.png and b/TMessagesProj/src/main/assets/emoji/5_189.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_19.png b/TMessagesProj/src/main/assets/emoji/5_19.png index 045777aa1..d997228cc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_19.png and b/TMessagesProj/src/main/assets/emoji/5_19.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_190.png b/TMessagesProj/src/main/assets/emoji/5_190.png index d6b9ff71d..30102ffcb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_190.png and b/TMessagesProj/src/main/assets/emoji/5_190.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_191.png b/TMessagesProj/src/main/assets/emoji/5_191.png index d2e5ed406..797106c38 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_191.png and b/TMessagesProj/src/main/assets/emoji/5_191.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_192.png b/TMessagesProj/src/main/assets/emoji/5_192.png index 0731e224a..9eefc5a65 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_192.png and b/TMessagesProj/src/main/assets/emoji/5_192.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_193.png b/TMessagesProj/src/main/assets/emoji/5_193.png index 077b7f2f7..0731e224a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_193.png and b/TMessagesProj/src/main/assets/emoji/5_193.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_194.png b/TMessagesProj/src/main/assets/emoji/5_194.png index 21422e62b..2ea4e75b9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_194.png and b/TMessagesProj/src/main/assets/emoji/5_194.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_195.png b/TMessagesProj/src/main/assets/emoji/5_195.png index 3e4cf4938..c0a3351f7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_195.png and b/TMessagesProj/src/main/assets/emoji/5_195.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_196.png b/TMessagesProj/src/main/assets/emoji/5_196.png index 8fd41bfd3..a7e715e20 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_196.png and b/TMessagesProj/src/main/assets/emoji/5_196.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_197.png b/TMessagesProj/src/main/assets/emoji/5_197.png index 48842b56a..a5dbd0ea1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_197.png and b/TMessagesProj/src/main/assets/emoji/5_197.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_198.png b/TMessagesProj/src/main/assets/emoji/5_198.png index ffae7f4ac..428c6c55c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_198.png and b/TMessagesProj/src/main/assets/emoji/5_198.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_199.png b/TMessagesProj/src/main/assets/emoji/5_199.png index 234561e4f..a2b83c49f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_199.png and b/TMessagesProj/src/main/assets/emoji/5_199.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_2.png b/TMessagesProj/src/main/assets/emoji/5_2.png index 3ad09b9c6..ba852edd8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_2.png and b/TMessagesProj/src/main/assets/emoji/5_2.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_20.png b/TMessagesProj/src/main/assets/emoji/5_20.png index 1c1a46987..1d3708b29 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_20.png and b/TMessagesProj/src/main/assets/emoji/5_20.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_200.png b/TMessagesProj/src/main/assets/emoji/5_200.png index 623c35c11..136777b8d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_200.png and b/TMessagesProj/src/main/assets/emoji/5_200.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_201.png b/TMessagesProj/src/main/assets/emoji/5_201.png index e758ffa17..623c35c11 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_201.png and b/TMessagesProj/src/main/assets/emoji/5_201.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_202.png b/TMessagesProj/src/main/assets/emoji/5_202.png index b0f7f6813..e758ffa17 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_202.png and b/TMessagesProj/src/main/assets/emoji/5_202.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_203.png b/TMessagesProj/src/main/assets/emoji/5_203.png index 038724ff4..929a394f3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_203.png and b/TMessagesProj/src/main/assets/emoji/5_203.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_204.png b/TMessagesProj/src/main/assets/emoji/5_204.png index c214301d8..e34fe3343 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_204.png and b/TMessagesProj/src/main/assets/emoji/5_204.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_205.png b/TMessagesProj/src/main/assets/emoji/5_205.png index 234487f2a..5a4dd43ca 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_205.png and b/TMessagesProj/src/main/assets/emoji/5_205.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_206.png b/TMessagesProj/src/main/assets/emoji/5_206.png new file mode 100644 index 000000000..cb09209ed Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_206.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_22.png b/TMessagesProj/src/main/assets/emoji/5_22.png index 6ff828dda..56b0b5fb5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_22.png and b/TMessagesProj/src/main/assets/emoji/5_22.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_23.png b/TMessagesProj/src/main/assets/emoji/5_23.png index abdf3cbd0..57c915dbb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_23.png and b/TMessagesProj/src/main/assets/emoji/5_23.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_24.png b/TMessagesProj/src/main/assets/emoji/5_24.png index 4718acbd4..338c64cbb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_24.png and b/TMessagesProj/src/main/assets/emoji/5_24.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_25.png b/TMessagesProj/src/main/assets/emoji/5_25.png index 7ddebfd67..51d3977d4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_25.png and b/TMessagesProj/src/main/assets/emoji/5_25.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_26.png b/TMessagesProj/src/main/assets/emoji/5_26.png index eaf50ca3c..8004597b6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_26.png and b/TMessagesProj/src/main/assets/emoji/5_26.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_27.png b/TMessagesProj/src/main/assets/emoji/5_27.png index dd47b2cb5..2d1da8631 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_27.png and b/TMessagesProj/src/main/assets/emoji/5_27.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_28.png b/TMessagesProj/src/main/assets/emoji/5_28.png index 9257b75d7..7ab22661c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_28.png and b/TMessagesProj/src/main/assets/emoji/5_28.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_29.png b/TMessagesProj/src/main/assets/emoji/5_29.png index fc07d0cd2..6f05928af 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_29.png and b/TMessagesProj/src/main/assets/emoji/5_29.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_3.png b/TMessagesProj/src/main/assets/emoji/5_3.png index 98da6891d..b1c691e76 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_3.png and b/TMessagesProj/src/main/assets/emoji/5_3.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_30.png b/TMessagesProj/src/main/assets/emoji/5_30.png index 0b818a362..098e42abc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_30.png and b/TMessagesProj/src/main/assets/emoji/5_30.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_31.png b/TMessagesProj/src/main/assets/emoji/5_31.png index f52d83c80..175a9d577 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_31.png and b/TMessagesProj/src/main/assets/emoji/5_31.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_32.png b/TMessagesProj/src/main/assets/emoji/5_32.png index f208d5df4..d873f30a6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_32.png and b/TMessagesProj/src/main/assets/emoji/5_32.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_33.png b/TMessagesProj/src/main/assets/emoji/5_33.png index ce5c660f1..4b5f5db51 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_33.png and b/TMessagesProj/src/main/assets/emoji/5_33.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_34.png b/TMessagesProj/src/main/assets/emoji/5_34.png index e042bb8af..2726cec84 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_34.png and b/TMessagesProj/src/main/assets/emoji/5_34.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_35.png b/TMessagesProj/src/main/assets/emoji/5_35.png index 2b5113fff..48610bfdf 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_35.png and b/TMessagesProj/src/main/assets/emoji/5_35.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_36.png b/TMessagesProj/src/main/assets/emoji/5_36.png index 09bff9de1..65e2b4253 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_36.png and b/TMessagesProj/src/main/assets/emoji/5_36.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_37.png b/TMessagesProj/src/main/assets/emoji/5_37.png index 8caad6ba3..1496d9bd0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_37.png and b/TMessagesProj/src/main/assets/emoji/5_37.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_38.png b/TMessagesProj/src/main/assets/emoji/5_38.png index cb377e84d..e87d177c8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_38.png and b/TMessagesProj/src/main/assets/emoji/5_38.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_39.png b/TMessagesProj/src/main/assets/emoji/5_39.png index ff0cc1ffa..d7dbd8f87 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_39.png and b/TMessagesProj/src/main/assets/emoji/5_39.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_4.png b/TMessagesProj/src/main/assets/emoji/5_4.png index c9e9b21e6..c094f11be 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_4.png and b/TMessagesProj/src/main/assets/emoji/5_4.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_40.png b/TMessagesProj/src/main/assets/emoji/5_40.png index d5d1424bb..80603f326 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_40.png and b/TMessagesProj/src/main/assets/emoji/5_40.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_41.png b/TMessagesProj/src/main/assets/emoji/5_41.png index ad3030a16..818a63ddb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_41.png and b/TMessagesProj/src/main/assets/emoji/5_41.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_42.png b/TMessagesProj/src/main/assets/emoji/5_42.png index 5ed73ca9f..6161df9ff 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_42.png and b/TMessagesProj/src/main/assets/emoji/5_42.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_43.png b/TMessagesProj/src/main/assets/emoji/5_43.png index afdae9a90..cbbc05785 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_43.png and b/TMessagesProj/src/main/assets/emoji/5_43.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_44.png b/TMessagesProj/src/main/assets/emoji/5_44.png index 7369096d5..64db03b4c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_44.png and b/TMessagesProj/src/main/assets/emoji/5_44.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_45.png b/TMessagesProj/src/main/assets/emoji/5_45.png index a200bab88..499fe3e00 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_45.png and b/TMessagesProj/src/main/assets/emoji/5_45.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_46.png b/TMessagesProj/src/main/assets/emoji/5_46.png index 01affd1b6..2a4bafdbf 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_46.png and b/TMessagesProj/src/main/assets/emoji/5_46.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_47.png b/TMessagesProj/src/main/assets/emoji/5_47.png index bbd47e706..c647563cc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_47.png and b/TMessagesProj/src/main/assets/emoji/5_47.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_48.png b/TMessagesProj/src/main/assets/emoji/5_48.png index 6915a8c9e..b107dce34 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_48.png and b/TMessagesProj/src/main/assets/emoji/5_48.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_49.png b/TMessagesProj/src/main/assets/emoji/5_49.png index b675d6542..8420e3228 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_49.png and b/TMessagesProj/src/main/assets/emoji/5_49.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_5.png b/TMessagesProj/src/main/assets/emoji/5_5.png index 9941b60bf..a57352d0b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_5.png and b/TMessagesProj/src/main/assets/emoji/5_5.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_50.png b/TMessagesProj/src/main/assets/emoji/5_50.png index d4d64bc5b..5681fa636 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_50.png and b/TMessagesProj/src/main/assets/emoji/5_50.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_51.png b/TMessagesProj/src/main/assets/emoji/5_51.png index b82c35302..75a1eec84 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_51.png and b/TMessagesProj/src/main/assets/emoji/5_51.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_52.png b/TMessagesProj/src/main/assets/emoji/5_52.png index 1b14066ab..83a139ab0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_52.png and b/TMessagesProj/src/main/assets/emoji/5_52.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_53.png b/TMessagesProj/src/main/assets/emoji/5_53.png index cf48cceb7..ea0973364 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_53.png and b/TMessagesProj/src/main/assets/emoji/5_53.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_54.png b/TMessagesProj/src/main/assets/emoji/5_54.png index dde7dc973..994e5d0f0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_54.png and b/TMessagesProj/src/main/assets/emoji/5_54.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_56.png b/TMessagesProj/src/main/assets/emoji/5_56.png index e2398833a..a65cb96f1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_56.png and b/TMessagesProj/src/main/assets/emoji/5_56.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_57.png b/TMessagesProj/src/main/assets/emoji/5_57.png index f040149bb..ebca4384d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_57.png and b/TMessagesProj/src/main/assets/emoji/5_57.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_58.png b/TMessagesProj/src/main/assets/emoji/5_58.png index 069c6c4cf..ecfab680b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_58.png and b/TMessagesProj/src/main/assets/emoji/5_58.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_59.png b/TMessagesProj/src/main/assets/emoji/5_59.png index fe84b33b1..6152ae8f5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_59.png and b/TMessagesProj/src/main/assets/emoji/5_59.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_60.png b/TMessagesProj/src/main/assets/emoji/5_60.png index 49556dc1d..d8475519d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_60.png and b/TMessagesProj/src/main/assets/emoji/5_60.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_61.png b/TMessagesProj/src/main/assets/emoji/5_61.png index c71540dc6..8a188d257 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_61.png and b/TMessagesProj/src/main/assets/emoji/5_61.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_62.png b/TMessagesProj/src/main/assets/emoji/5_62.png index 88ac00980..6701cdcd6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_62.png and b/TMessagesProj/src/main/assets/emoji/5_62.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_63.png b/TMessagesProj/src/main/assets/emoji/5_63.png index b2c701248..9f2fa7b34 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_63.png and b/TMessagesProj/src/main/assets/emoji/5_63.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_64.png b/TMessagesProj/src/main/assets/emoji/5_64.png index 1a27aaffe..15fb94634 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_64.png and b/TMessagesProj/src/main/assets/emoji/5_64.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_65.png b/TMessagesProj/src/main/assets/emoji/5_65.png index eaa6b168c..74629c5b8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_65.png and b/TMessagesProj/src/main/assets/emoji/5_65.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_66.png b/TMessagesProj/src/main/assets/emoji/5_66.png index 57d3ee7e0..195535332 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_66.png and b/TMessagesProj/src/main/assets/emoji/5_66.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_68.png b/TMessagesProj/src/main/assets/emoji/5_68.png index 74da87277..0fb14d09e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_68.png and b/TMessagesProj/src/main/assets/emoji/5_68.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_69.png b/TMessagesProj/src/main/assets/emoji/5_69.png index 251e7e9f6..03cb02002 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_69.png and b/TMessagesProj/src/main/assets/emoji/5_69.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_70.png b/TMessagesProj/src/main/assets/emoji/5_70.png index d09c6e96f..a24c551fb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_70.png and b/TMessagesProj/src/main/assets/emoji/5_70.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_71.png b/TMessagesProj/src/main/assets/emoji/5_71.png index 1daea1f19..4c2dd7043 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_71.png and b/TMessagesProj/src/main/assets/emoji/5_71.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_72.png b/TMessagesProj/src/main/assets/emoji/5_72.png index fcbd0e263..e1de91c3c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_72.png and b/TMessagesProj/src/main/assets/emoji/5_72.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_73.png b/TMessagesProj/src/main/assets/emoji/5_73.png index 1e608b887..7fc29ff63 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_73.png and b/TMessagesProj/src/main/assets/emoji/5_73.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_74.png b/TMessagesProj/src/main/assets/emoji/5_74.png index 54158876a..7ea02e82c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_74.png and b/TMessagesProj/src/main/assets/emoji/5_74.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_76.png b/TMessagesProj/src/main/assets/emoji/5_76.png index e7f3c0e58..7493b46cb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_76.png and b/TMessagesProj/src/main/assets/emoji/5_76.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_77.png b/TMessagesProj/src/main/assets/emoji/5_77.png index 1301430b2..a08c0c4bd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_77.png and b/TMessagesProj/src/main/assets/emoji/5_77.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_78.png b/TMessagesProj/src/main/assets/emoji/5_78.png index 1af8017cb..2609904fe 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_78.png and b/TMessagesProj/src/main/assets/emoji/5_78.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_79.png b/TMessagesProj/src/main/assets/emoji/5_79.png index 16c01c285..ab7a9c493 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_79.png and b/TMessagesProj/src/main/assets/emoji/5_79.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_8.png b/TMessagesProj/src/main/assets/emoji/5_8.png index 79302a88c..90ad4712e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_8.png and b/TMessagesProj/src/main/assets/emoji/5_8.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_80.png b/TMessagesProj/src/main/assets/emoji/5_80.png index b95a7e977..fdce19584 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_80.png and b/TMessagesProj/src/main/assets/emoji/5_80.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_81.png b/TMessagesProj/src/main/assets/emoji/5_81.png index 1156ef0ea..c534c2d2a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_81.png and b/TMessagesProj/src/main/assets/emoji/5_81.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_82.png b/TMessagesProj/src/main/assets/emoji/5_82.png index f8412f530..efa45b774 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_82.png and b/TMessagesProj/src/main/assets/emoji/5_82.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_83.png b/TMessagesProj/src/main/assets/emoji/5_83.png index be8f72b1b..c5f48de1f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_83.png and b/TMessagesProj/src/main/assets/emoji/5_83.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_84.png b/TMessagesProj/src/main/assets/emoji/5_84.png index 6793b207a..118dc1296 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_84.png and b/TMessagesProj/src/main/assets/emoji/5_84.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_85.png b/TMessagesProj/src/main/assets/emoji/5_85.png index e76a12c79..139b44199 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_85.png and b/TMessagesProj/src/main/assets/emoji/5_85.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_87.png b/TMessagesProj/src/main/assets/emoji/5_87.png index 7e023cd04..ceba94121 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_87.png and b/TMessagesProj/src/main/assets/emoji/5_87.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_88.png b/TMessagesProj/src/main/assets/emoji/5_88.png index e1d60d72b..8ab1770f5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_88.png and b/TMessagesProj/src/main/assets/emoji/5_88.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_89.png b/TMessagesProj/src/main/assets/emoji/5_89.png index 5ee4f38d5..830037340 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_89.png and b/TMessagesProj/src/main/assets/emoji/5_89.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_9.png b/TMessagesProj/src/main/assets/emoji/5_9.png index 007a9cb4c..1122ee855 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_9.png and b/TMessagesProj/src/main/assets/emoji/5_9.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_90.png b/TMessagesProj/src/main/assets/emoji/5_90.png index e09392c57..cc49fe2be 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_90.png and b/TMessagesProj/src/main/assets/emoji/5_90.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_91.png b/TMessagesProj/src/main/assets/emoji/5_91.png index 1f78e4d44..94d6030d6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_91.png and b/TMessagesProj/src/main/assets/emoji/5_91.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_93.png b/TMessagesProj/src/main/assets/emoji/5_93.png index 0746f5585..f94bf04c4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_93.png and b/TMessagesProj/src/main/assets/emoji/5_93.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_94.png b/TMessagesProj/src/main/assets/emoji/5_94.png index 869ce1f04..541c9e82a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_94.png and b/TMessagesProj/src/main/assets/emoji/5_94.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_95.png b/TMessagesProj/src/main/assets/emoji/5_95.png index c03dadb84..174d7cdc4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_95.png and b/TMessagesProj/src/main/assets/emoji/5_95.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_96.png b/TMessagesProj/src/main/assets/emoji/5_96.png index 80b9e1046..1347aec8a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_96.png and b/TMessagesProj/src/main/assets/emoji/5_96.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_97.png b/TMessagesProj/src/main/assets/emoji/5_97.png index 48989df2e..7db025583 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_97.png and b/TMessagesProj/src/main/assets/emoji/5_97.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_98.png b/TMessagesProj/src/main/assets/emoji/5_98.png index 8d20fb677..029e0f9ca 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_98.png and b/TMessagesProj/src/main/assets/emoji/5_98.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_99.png b/TMessagesProj/src/main/assets/emoji/5_99.png index fd7e6bd0c..8b9d1f229 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_99.png and b/TMessagesProj/src/main/assets/emoji/5_99.png differ diff --git a/TMessagesProj/src/main/java/androidx/recyclerview/widget/ChatListItemAnimator.java b/TMessagesProj/src/main/java/androidx/recyclerview/widget/ChatListItemAnimator.java new file mode 100644 index 000000000..eaf9ffee3 --- /dev/null +++ b/TMessagesProj/src/main/java/androidx/recyclerview/widget/ChatListItemAnimator.java @@ -0,0 +1,1280 @@ +package androidx.recyclerview.widget; + +import android.animation.Animator; +import android.animation.AnimatorListenerAdapter; +import android.animation.AnimatorSet; +import android.animation.ObjectAnimator; +import android.animation.ValueAnimator; +import android.os.Build; +import android.view.View; +import android.view.ViewPropertyAnimator; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.core.view.ViewCompat; + +import org.telegram.messenger.BuildVars; +import org.telegram.messenger.FileLog; +import org.telegram.messenger.ImageReceiver; +import org.telegram.messenger.MessageObject; +import org.telegram.ui.Cells.BotHelpCell; +import org.telegram.ui.Cells.ChatMessageCell; +import org.telegram.ui.ChatActivity; +import org.telegram.ui.Components.CubicBezierInterpolator; +import org.telegram.ui.Components.RecyclerListView; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +public class ChatListItemAnimator extends DefaultItemAnimator { + + private final ChatActivity activity; + private final RecyclerListView recyclerListView; + + private HashMap willRemovedGroup = new HashMap<>(); + private ArrayList willChangedGroups = new ArrayList<>(); + + HashMap animators = new HashMap<>(); + + ArrayList runOnAnimationsEnd = new ArrayList<>(); + + private boolean shouldAnimateEnterFromBottom; + + public ChatListItemAnimator(ChatActivity activity, RecyclerListView listView) { + this.activity = activity; + this.recyclerListView = listView; + translationInterpolator = CubicBezierInterpolator.DEFAULT; + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + listView.getElevation(); + } + } + + @Override + public void runPendingAnimations() { + boolean runTranslationFromBottom = false; + if (shouldAnimateEnterFromBottom) { + for (int i = 0; i < mPendingAdditions.size(); i++) { + if (mPendingAdditions.get(i).getLayoutPosition() == 0) { + runTranslationFromBottom = true; + } + } + } + + onAnimationStart(); + + if (runTranslationFromBottom) { + runMessageEnterTransition(); + } else { + runAlphaEnterTransition(); + } + + ValueAnimator valueAnimator = ValueAnimator.ofFloat(0, 1f); + valueAnimator.addUpdateListener(animation -> { + activity.onListItemAniamtorTick(); + }); + valueAnimator.setDuration(getRemoveDuration() + getMoveDuration()); + valueAnimator.start(); + } + + private void runAlphaEnterTransition() { + boolean removalsPending = !mPendingRemovals.isEmpty(); + boolean movesPending = !mPendingMoves.isEmpty(); + boolean changesPending = !mPendingChanges.isEmpty(); + boolean additionsPending = !mPendingAdditions.isEmpty(); + if (!removalsPending && !movesPending && !additionsPending && !changesPending) { + // nothing to animate + return; + } + // First, remove stuff + for (RecyclerView.ViewHolder holder : mPendingRemovals) { + animateRemoveImpl(holder); + } + mPendingRemovals.clear(); + // Next, move stuff + if (movesPending) { + final ArrayList moves = new ArrayList<>(); + moves.addAll(mPendingMoves); + mMovesList.add(moves); + mPendingMoves.clear(); + Runnable mover = new Runnable() { + @Override + public void run() { + for (MoveInfo moveInfo : moves) { + animateMoveImpl(moveInfo.holder, moveInfo); + } + moves.clear(); + mMovesList.remove(moves); + } + }; + if (delayAnimations && removalsPending) { + View view = moves.get(0).holder.itemView; + ViewCompat.postOnAnimationDelayed(view, mover, getMoveAnimationDelay()); + } else { + mover.run(); + } + } + // Next, change stuff, to run in parallel with move animations + if (changesPending) { + final ArrayList changes = new ArrayList<>(); + changes.addAll(mPendingChanges); + mChangesList.add(changes); + mPendingChanges.clear(); + Runnable changer = new Runnable() { + @Override + public void run() { + for (ChangeInfo change : changes) { + animateChangeImpl(change); + } + changes.clear(); + mChangesList.remove(changes); + } + }; + if (delayAnimations && removalsPending) { + RecyclerView.ViewHolder holder = changes.get(0).oldHolder; + ViewCompat.postOnAnimationDelayed(holder.itemView, changer, 0); + } else { + changer.run(); + } + } + // Next, add stuff + if (additionsPending) { + final ArrayList additions = new ArrayList<>(); + additions.addAll(mPendingAdditions); + mAdditionsList.add(additions); + mPendingAdditions.clear(); + + for (RecyclerView.ViewHolder holder : additions) { + animateAddImpl(holder); + } + additions.clear(); + mAdditionsList.remove(additions); + } + } + + private void runMessageEnterTransition() { + boolean removalsPending = !mPendingRemovals.isEmpty(); + boolean movesPending = !mPendingMoves.isEmpty(); + boolean changesPending = !mPendingChanges.isEmpty(); + boolean additionsPending = !mPendingAdditions.isEmpty(); + + if (!removalsPending && !movesPending && !additionsPending && !changesPending) { + return; + } + + int addedItemsHeight = 0; + for (int i = 0; i < mPendingAdditions.size(); i++) { + View view = mPendingAdditions.get(i).itemView; + if (view instanceof ChatMessageCell) { + ChatMessageCell cell = ((ChatMessageCell) view); + if (cell.getCurrentPosition() != null && (cell.getCurrentPosition().flags & MessageObject.POSITION_FLAG_LEFT) == 0) { + continue; + } + } + addedItemsHeight += mPendingAdditions.get(i).itemView.getHeight(); + } + + for (RecyclerView.ViewHolder holder : mPendingRemovals) { + animateRemoveImpl(holder); + } + mPendingRemovals.clear(); + if (movesPending) { + final ArrayList moves = new ArrayList<>(); + moves.addAll(mPendingMoves); + mMovesList.add(moves); + mPendingMoves.clear(); + for (MoveInfo moveInfo : moves) { + animateMoveImpl(moveInfo.holder, moveInfo); + } + moves.clear(); + mMovesList.remove(moves); + } + + if (additionsPending) { + final ArrayList additions = new ArrayList<>(); + additions.addAll(mPendingAdditions); + mAdditionsList.add(additions); + mPendingAdditions.clear(); + + for (RecyclerView.ViewHolder holder : additions) { + animateAddImpl(holder, addedItemsHeight); + } + additions.clear(); + mAdditionsList.remove(additions); + } + } + + @Override + public boolean animateAppearance(@NonNull RecyclerView.ViewHolder viewHolder, @Nullable ItemHolderInfo preLayoutInfo, @NonNull ItemHolderInfo postLayoutInfo) { + boolean res = super.animateAppearance(viewHolder, preLayoutInfo, postLayoutInfo); + if (res) { + boolean runTranslationFromBottom = false; + for (int i = 0; i < mPendingAdditions.size(); i++) { + if (mPendingAdditions.get(i).getLayoutPosition() == 0) { + runTranslationFromBottom = true; + } + } + int addedItemsHeight = 0; + if (runTranslationFromBottom) { + for (int i = 0; i < mPendingAdditions.size(); i++) { + addedItemsHeight += mPendingAdditions.get(i).itemView.getHeight(); + } + } + + for (int i = 0; i < mPendingAdditions.size(); i++) { + mPendingAdditions.get(i).itemView.setTranslationY(addedItemsHeight); + } + } + return res; + } + + public void animateAddImpl(final RecyclerView.ViewHolder holder, int addedItemsHeight) { + final View view = holder.itemView; + final ViewPropertyAnimator animation = view.animate(); + mAddAnimations.add(holder); + view.setTranslationY(addedItemsHeight); + if (!(holder.itemView instanceof ChatMessageCell && ((ChatMessageCell) holder.itemView).getTransitionParams().ignoreAlpha)) { + holder.itemView.setAlpha(1); + } + animation.translationY(0).setDuration(getMoveDuration()) + .setInterpolator(translationInterpolator) + .setListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationStart(Animator animator) { + dispatchAddStarting(holder); + } + + @Override + public void onAnimationCancel(Animator animator) { + view.setTranslationY(0); + } + + @Override + public void onAnimationEnd(Animator animator) { + animation.setListener(null); + if (mAddAnimations.remove(holder)) { + dispatchAddFinished(holder); + dispatchFinishedWhenDone(); + } + + } + }).start(); + } + + @Override + public boolean animateRemove(RecyclerView.ViewHolder holder, ItemHolderInfo info) { + if (BuildVars.LOGS_ENABLED) { + FileLog.d("animate remove"); + } + boolean rez = super.animateRemove(holder, info); + if (rez) { + if (info != null) { + int fromY = info.top; + int toY = holder.itemView.getTop(); + + int fromX = info.left; + int toX = holder.itemView.getLeft(); + + int deltaX = toX - fromX; + int deltaY = toY - fromY; + + if (deltaY != 0) { + holder.itemView.setTranslationY(-deltaY); + } + + if (holder.itemView instanceof ChatMessageCell) { + ChatMessageCell chatMessageCell = (ChatMessageCell) holder.itemView; + if (deltaX != 0) { + chatMessageCell.setAnimationOffsetX(-deltaX); + } + if (info instanceof ItemHolderInfoExtended) { + ItemHolderInfoExtended infoExtended = ((ItemHolderInfoExtended) info); + chatMessageCell.setImageCoords(infoExtended.imageX, infoExtended.imageY, infoExtended.imageWidth, infoExtended.imageHeight); + } + } else { + if (deltaX != 0) { + holder.itemView.setTranslationX(-deltaX); + } + } + } + } + return rez; + } + + @Override + public boolean animateMove(RecyclerView.ViewHolder holder, ItemHolderInfo info, int fromX, int fromY, int toX, int toY) { + if (BuildVars.LOGS_ENABLED) { + FileLog.d("animate move"); + } + final View view = holder.itemView; + if (holder.itemView instanceof ChatMessageCell) { + fromX += (int) ((ChatMessageCell) holder.itemView).getAnimationOffsetX(); + } else { + fromX += (int) holder.itemView.getTranslationX(); + } + fromY += (int) holder.itemView.getTranslationY(); + resetAnimation(holder); + int deltaX = toX - fromX; + int deltaY = toY - fromY; + if (deltaY != 0) { + view.setTranslationY(-deltaY); + } + + MoveInfoExtended moveInfo = new MoveInfoExtended(holder, fromX, fromY, toX, toY); + + if (holder.itemView instanceof ChatMessageCell) { + ChatMessageCell chatMessageCell = (ChatMessageCell) holder.itemView; + ChatMessageCell.TransitionParams params = chatMessageCell.getTransitionParams(); + + if (!params.supportChangeAnimation()) { + if (deltaX == 0 && deltaY == 0) { + dispatchMoveFinished(holder); + return false; + } + if (deltaX != 0) { + view.setTranslationX(-deltaX); + } + mPendingMoves.add(moveInfo); + return true; + } + + MessageObject.GroupedMessages group = chatMessageCell.getCurrentMessagesGroup(); + + if (deltaX != 0) { + chatMessageCell.setAnimationOffsetX(-deltaX); + } + + if (info instanceof ItemHolderInfoExtended) { + ImageReceiver newImage = chatMessageCell.getPhotoImage(); + ItemHolderInfoExtended infoExtended = ((ItemHolderInfoExtended) info); + moveInfo.animateImage = params.wasDraw && infoExtended.imageHeight != 0 && infoExtended.imageWidth != 0; + if (moveInfo.animateImage) { + recyclerListView.setClipChildren(false); + recyclerListView.invalidate(); + + params.imageChangeBoundsTransition = true; + params.animateToImageX = newImage.getImageX(); + params.animateToImageY = newImage.getImageY(); + params.animateToImageW = newImage.getImageWidth(); + params.animateToImageH = newImage.getImageHeight(); + + params.animateToRadius = newImage.getRoundRadius(); + params.animateRadius = false; + for (int i = 0; i < 4; i++) { + if (params.imageRoundRadius[i] != params.animateToRadius[i]) { + params.animateRadius = true; + break; + } + } + if (params.animateToImageX == infoExtended.imageX && params.animateToImageY == infoExtended.imageY && + params.animateToImageH == infoExtended.imageHeight && params.animateToImageW == infoExtended.imageWidth && !params.animateRadius) { + params.imageChangeBoundsTransition = false; + moveInfo.animateImage = false; + } else { + moveInfo.imageX = infoExtended.imageX; + moveInfo.imageY = infoExtended.imageY; + moveInfo.imageWidth = infoExtended.imageWidth; + moveInfo.imageHeight = infoExtended.imageHeight; + + if (group != null && group.hasCaption != group.transitionParams.drawCaptionLayout) { + group.transitionParams.captionEnterProgress = group.transitionParams.drawCaptionLayout ? 1f : 0; + } + if (params.animateRadius) { + params.animateToRadius = new int[4]; + for (int i = 0; i < 4; i++) { + params.animateToRadius[i] = newImage.getRoundRadius()[i]; + } + newImage.setRoundRadius(params.imageRoundRadius); + } + chatMessageCell.setImageCoords(moveInfo.imageX, moveInfo.imageY, moveInfo.imageWidth, moveInfo.imageHeight); + } + } + + if (group == null && params.wasDraw) { + boolean isOut = chatMessageCell.getMessageObject().isOutOwner(); + if ((isOut && params.lastDrawingBackgroundRect.left != chatMessageCell.getBackgroundDrawableLeft()) || + (!isOut && params.lastDrawingBackgroundRect.right != chatMessageCell.getBackgroundDrawableRight()) || + params.lastDrawingBackgroundRect.top != chatMessageCell.getBackgroundDrawableTop() || + params.lastDrawingBackgroundRect.bottom != chatMessageCell.getBackgroundDrawableBottom()) { + moveInfo.deltaBottom = chatMessageCell.getBackgroundDrawableBottom() - params.lastDrawingBackgroundRect.bottom; + moveInfo.deltaTop = chatMessageCell.getBackgroundDrawableTop() - params.lastDrawingBackgroundRect.top; + if (isOut) { + moveInfo.deltaLeft = chatMessageCell.getBackgroundDrawableLeft() - params.lastDrawingBackgroundRect.left; + } else { + moveInfo.deltaRight = chatMessageCell.getBackgroundDrawableRight() - params.lastDrawingBackgroundRect.right; + } + moveInfo.animateBackgroundOnly = true; + + params.animateBackgroundBoundsInner = true; + params.deltaLeft = -moveInfo.deltaLeft; + params.deltaRight = -moveInfo.deltaRight; + params.deltaTop = -moveInfo.deltaTop; + params.deltaBottom = -moveInfo.deltaBottom; + + recyclerListView.setClipChildren(false); + recyclerListView.invalidate(); + } + } + } + + if (group != null) { + if (willChangedGroups.contains(group)) { + willChangedGroups.remove(group); + RecyclerListView recyclerListView = (RecyclerListView) holder.itemView.getParent(); + int animateToLeft = 0; + int animateToRight = 0; + int animateToTop = 0; + int animateToBottom = 0; + boolean allVisibleItemsDeleted = true; + + MessageObject.GroupedMessages.TransitionParams groupTransitionParams = group.transitionParams; + ChatMessageCell lastDrawingCell = null; + for (int i = 0; i < recyclerListView.getChildCount(); i++) { + View child = recyclerListView.getChildAt(i); + + if (child instanceof ChatMessageCell) { + ChatMessageCell cell = (ChatMessageCell) child; + if (cell.getCurrentMessagesGroup() == group && !cell.getMessageObject().deleted) { + + int left = cell.getLeft() + cell.getBackgroundDrawableLeft(); + int right = cell.getLeft() + cell.getBackgroundDrawableRight(); + int top = cell.getTop() + cell.getBackgroundDrawableTop(); + int bottom = cell.getTop() + cell.getBackgroundDrawableBottom(); + + if (animateToLeft == 0 || left < animateToLeft) { + animateToLeft = left; + } + + if (animateToRight == 0 || right > animateToRight) { + animateToRight = right; + } + + if (cell.getTransitionParams().wasDraw || groupTransitionParams.isNewGroup) { + lastDrawingCell = cell; + allVisibleItemsDeleted = false; + if (animateToTop == 0 || top < animateToTop) { + animateToTop = top; + } + if (animateToBottom == 0 || bottom > animateToBottom) { + animateToBottom = bottom; + } + } + } + } + } + + groupTransitionParams.isNewGroup = false; + + if (animateToTop == 0 && animateToBottom == 0 && animateToLeft == 0 && animateToRight == 0) { + moveInfo.animateChangeGroupBackground = false; + groupTransitionParams.backgroundChangeBounds = false; + } else { + moveInfo.groupOffsetTop = -animateToTop + groupTransitionParams.top; + moveInfo.groupOffsetBottom = -animateToBottom + groupTransitionParams.bottom; + moveInfo.groupOffsetLeft = -animateToLeft + groupTransitionParams.left; + moveInfo.groupOffsetRight = -animateToRight + groupTransitionParams.right; + + moveInfo.animateChangeGroupBackground = true; + groupTransitionParams.backgroundChangeBounds = true; + groupTransitionParams.offsetTop = moveInfo.groupOffsetTop; + groupTransitionParams.offsetBottom = moveInfo.groupOffsetBottom; + groupTransitionParams.offsetLeft = moveInfo.groupOffsetLeft; + groupTransitionParams.offsetRight = moveInfo.groupOffsetRight; + + groupTransitionParams.captionEnterProgress = groupTransitionParams.drawCaptionLayout ? 1f : 0f; + + recyclerListView.setClipChildren(false); + recyclerListView.invalidate(); + } + + groupTransitionParams.drawBackgroundForDeletedItems = allVisibleItemsDeleted; + } + } + + MessageObject.GroupedMessages removedGroup = willRemovedGroup.get(chatMessageCell.getMessageObject().getId()); + if (removedGroup != null) { + MessageObject.GroupedMessages.TransitionParams groupTransitionParams = removedGroup.transitionParams; + willRemovedGroup.remove(chatMessageCell.getMessageObject().getId()); + if (params.wasDraw) { + // invoke when group transform to single message + int animateToLeft = chatMessageCell.getLeft() + chatMessageCell.getBackgroundDrawableLeft(); + int animateToRight = chatMessageCell.getLeft() + chatMessageCell.getBackgroundDrawableRight(); + int animateToTop = chatMessageCell.getTop() + chatMessageCell.getBackgroundDrawableTop(); + int animateToBottom = chatMessageCell.getTop() + chatMessageCell.getBackgroundDrawableBottom(); + + params.animateBackgroundBoundsInner = moveInfo.animateRemoveGroup = true; + moveInfo.deltaLeft = animateToLeft - groupTransitionParams.left; + moveInfo.deltaRight = animateToRight - groupTransitionParams.right; + moveInfo.deltaTop = animateToTop - groupTransitionParams.top; + moveInfo.deltaBottom = animateToBottom - groupTransitionParams.bottom; + moveInfo.animateBackgroundOnly = false; + + params.deltaLeft = (int) (-moveInfo.deltaLeft - chatMessageCell.getAnimationOffsetX()); + params.deltaRight = (int) (-moveInfo.deltaRight - chatMessageCell.getAnimationOffsetX()); + params.deltaTop = (int) (-moveInfo.deltaTop - chatMessageCell.getTranslationY()); + params.deltaBottom = (int) (-moveInfo.deltaBottom - chatMessageCell.getTranslationY()); + params.transformGroupToSingleMessage = true; + + recyclerListView.setClipChildren(false); + recyclerListView.invalidate(); + } else { + groupTransitionParams.drawBackgroundForDeletedItems = true; + } + } + boolean drawPinnedBottom = chatMessageCell.isDrawPinnedBottom(); + if (params.drawPinnedBottomBackground != drawPinnedBottom) { + moveInfo.animatePinnedBottom = true; + params.changePinnedBottomProgress = 0; + } + + moveInfo.animateChangeInternal = chatMessageCell.getTransitionParams().animateChange(); + if (moveInfo.animateChangeInternal) { + chatMessageCell.getTransitionParams().animateChangeProgress = 0f; + } + + if (deltaX == 0 && deltaY == 0 && !moveInfo.animateImage && !moveInfo.animateRemoveGroup && !moveInfo.animateChangeGroupBackground && !moveInfo.animatePinnedBottom && !moveInfo.animateBackgroundOnly && !moveInfo.animateChangeInternal) { + dispatchMoveFinished(holder); + return false; + } + } else if (holder.itemView instanceof BotHelpCell) { + BotHelpCell botInfo = (BotHelpCell) holder.itemView; + if (!botInfo.wasDraw) { + dispatchMoveFinished(holder); + botInfo.setAnimating(false); + return false; + } else { + botInfo.setAnimating(true); + } + } else { + if (deltaX == 0 && deltaY == 0) { + dispatchMoveFinished(holder); + return false; + } + if (deltaX != 0) { + view.setTranslationX(-deltaX); + } + } + + mPendingMoves.add(moveInfo); + return true; + } + + @Override + void animateMoveImpl(RecyclerView.ViewHolder holder, MoveInfo moveInfo) { + if (BuildVars.LOGS_ENABLED) { + FileLog.d("animate move impl"); + } + int fromX = moveInfo.fromX; + int fromY = moveInfo.fromY; + int toX = moveInfo.toX; + int toY = moveInfo.toY; + final View view = holder.itemView; + final int deltaY = toY - fromY; + + AnimatorSet animatorSet = new AnimatorSet(); + + if (deltaY != 0) { + animatorSet.playTogether(ObjectAnimator.ofFloat(view, View.TRANSLATION_Y, 0)); + } + mMoveAnimations.add(holder); + + MoveInfoExtended moveInfoExtended = (MoveInfoExtended) moveInfo; + + if (holder.itemView instanceof BotHelpCell) { + BotHelpCell botCell = (BotHelpCell) holder.itemView ; + int top = recyclerListView.getMeasuredHeight() / 2 - botCell.getMeasuredHeight() / 2; + float animateTo = 0; + if (botCell.getTop() > top) { + animateTo = top - botCell.getTop(); + } + animatorSet.playTogether(ObjectAnimator.ofFloat(botCell, View.TRANSLATION_Y, botCell.getTranslationY(), animateTo)); + } else if (holder.itemView instanceof ChatMessageCell) { + ChatMessageCell chatMessageCell = (ChatMessageCell) holder.itemView; + ChatMessageCell.TransitionParams params = chatMessageCell.getTransitionParams(); + ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(chatMessageCell, chatMessageCell.ANIMATION_OFFSET_X, 0); + animatorSet.playTogether(objectAnimator); + + if (moveInfoExtended.animateImage) { + chatMessageCell.setImageCoords(moveInfoExtended.imageX, moveInfoExtended.imageY, moveInfoExtended.imageWidth, moveInfoExtended.imageHeight); + ValueAnimator valueAnimator = ValueAnimator.ofFloat(0, 1f); + + + float captionEnterFrom = chatMessageCell.getCurrentMessagesGroup() == null ? params.captionEnterProgress : chatMessageCell.getCurrentMessagesGroup().transitionParams.captionEnterProgress; + float captionEnterTo = chatMessageCell.getCurrentMessagesGroup() == null ? (chatMessageCell.hasCaptionLayout() ? 1 : 0) : (chatMessageCell.getCurrentMessagesGroup().hasCaption ? 1 : 0); + boolean animateCaption = captionEnterFrom != captionEnterTo; + + int[] fromRoundRadius = null; + if (params.animateRadius) { + fromRoundRadius = new int[4]; + for (int i = 0; i < 4; i++) { + fromRoundRadius[i] = chatMessageCell.getPhotoImage().getRoundRadius()[i]; + } + } + + int[] finalFromRoundRadius = fromRoundRadius; + valueAnimator.addUpdateListener(animation -> { + float v = (float) animation.getAnimatedValue(); + float x = moveInfoExtended.imageX * (1f - v) + params.animateToImageX * v; + float y = moveInfoExtended.imageY * (1f - v) + params.animateToImageY * v; + float width = moveInfoExtended.imageWidth * (1f - v) + params.animateToImageW * v; + float height = moveInfoExtended.imageHeight * (1f - v) + params.animateToImageH * v; + + if (animateCaption) { + float captionP = captionEnterFrom * (1f - v) + captionEnterTo * v; + params.captionEnterProgress = captionP; + if (chatMessageCell.getCurrentMessagesGroup() != null) { + chatMessageCell.getCurrentMessagesGroup().transitionParams.captionEnterProgress = captionP; + } + } + + + if (params.animateRadius) { + chatMessageCell.getPhotoImage().setRoundRadius( + (int) (finalFromRoundRadius[0] * (1f - v) + params.animateToRadius[0] * v), + (int) (finalFromRoundRadius[1] * (1f - v) + params.animateToRadius[1] * v), + (int) (finalFromRoundRadius[2] * (1f - v) + params.animateToRadius[2] * v), + (int) (finalFromRoundRadius[3] * (1f - v) + params.animateToRadius[3] * v) + ); + } + + chatMessageCell.setImageCoords(x, y, width, height); + holder.itemView.invalidate(); + }); + animatorSet.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + params.imageChangeBoundsTransition = false; + } + }); + animatorSet.playTogether(valueAnimator); + } + if (moveInfoExtended.deltaBottom != 0 || moveInfoExtended.deltaRight != 0 || moveInfoExtended.deltaTop != 0 || moveInfoExtended.deltaLeft != 0) { + + recyclerListView.setClipChildren(false); + recyclerListView.invalidate(); + + ValueAnimator valueAnimator = ValueAnimator.ofFloat(1f, 0); + valueAnimator.addUpdateListener(animation -> { + float v = (float) animation.getAnimatedValue(); + if (moveInfoExtended.animateBackgroundOnly) { + params.deltaLeft = (int) (-moveInfoExtended.deltaLeft * v); + params.deltaRight = (int) (-moveInfoExtended.deltaRight * v); + params.deltaTop = (int) (-moveInfoExtended.deltaTop * v); + params.deltaBottom = (int) (-moveInfoExtended.deltaBottom * v); + } else { + params.deltaLeft = (int) (-moveInfoExtended.deltaLeft * v - chatMessageCell.getAnimationOffsetX()); + params.deltaRight = (int) (-moveInfoExtended.deltaRight * v - chatMessageCell.getAnimationOffsetX()); + params.deltaTop = (int) (-moveInfoExtended.deltaTop * v - chatMessageCell.getTranslationY()); + params.deltaBottom = (int) (-moveInfoExtended.deltaBottom * v - chatMessageCell.getTranslationY()); + } + chatMessageCell.invalidate(); + }); + animatorSet.playTogether(valueAnimator); + } + + if (moveInfoExtended.animateChangeGroupBackground) { + ValueAnimator valueAnimator = ValueAnimator.ofFloat(1f, 0); + MessageObject.GroupedMessages group = chatMessageCell.getCurrentMessagesGroup(); + MessageObject.GroupedMessages.TransitionParams groupTransitionParams = group.transitionParams; + RecyclerListView recyclerListView = (RecyclerListView) holder.itemView.getParent(); + + float captionEnterFrom = group.transitionParams.captionEnterProgress; + float captionEnterTo = group.hasCaption ? 1 : 0; + + boolean animateCaption = captionEnterFrom != captionEnterTo; + valueAnimator.addUpdateListener(animation -> { + float v = (float) animation.getAnimatedValue(); + groupTransitionParams.offsetTop = moveInfoExtended.groupOffsetTop * v; + groupTransitionParams.offsetBottom = moveInfoExtended.groupOffsetBottom * v; + groupTransitionParams.offsetLeft = moveInfoExtended.groupOffsetLeft * v; + groupTransitionParams.offsetRight = moveInfoExtended.groupOffsetRight * v; + if (animateCaption) { + groupTransitionParams.captionEnterProgress = captionEnterFrom * v + captionEnterTo * (1f - v); + } + recyclerListView.invalidate(); + }); + + valueAnimator.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + groupTransitionParams.backgroundChangeBounds = false; + groupTransitionParams.drawBackgroundForDeletedItems = false; + } + }); + animatorSet.playTogether(valueAnimator); + } + + if (moveInfoExtended.animatePinnedBottom) { + ValueAnimator valueAnimator = ValueAnimator.ofFloat(0, 1f); + valueAnimator.addUpdateListener(animation -> { + params.changePinnedBottomProgress = (float) animation.getAnimatedValue(); + chatMessageCell.invalidate(); + }); + + animatorSet.playTogether(valueAnimator); + } + + if (moveInfoExtended.animateChangeInternal) { + ValueAnimator valueAnimator = ValueAnimator.ofFloat(0, 1f); + valueAnimator.addUpdateListener(animation -> { + params.animateChangeProgress = (float) animation.getAnimatedValue(); + chatMessageCell.invalidate(); + }); + animatorSet.playTogether(valueAnimator); + } + } + + if (translationInterpolator != null) { + animatorSet.setInterpolator(translationInterpolator); + } + animatorSet.setDuration(getMoveDuration()); + animatorSet.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationStart(Animator animator) { + dispatchMoveStarting(holder); + } + + @Override + public void onAnimationCancel(Animator animator) { + if (deltaY != 0) { + view.setTranslationY(0); + } + } + + @Override + public void onAnimationEnd(Animator animator) { + animator.removeAllListeners(); + if (holder.itemView instanceof ChatMessageCell) { + ((ChatMessageCell) holder.itemView).getTransitionParams().resetAnimation(); + } else if (holder.itemView instanceof BotHelpCell) { + ((BotHelpCell) holder.itemView).setAnimating(false); + } + if (mMoveAnimations.remove(holder)) { + dispatchMoveFinished(holder); + dispatchFinishedWhenDone(); + } + } + }); + animatorSet.start(); + animators.put(holder, animatorSet); + } + + boolean reset; + + @Override + public void resetAnimation(RecyclerView.ViewHolder holder) { + if (BuildVars.LOGS_ENABLED) { + FileLog.d("reset animation"); + } + reset = true; + super.resetAnimation(holder); + reset = false; + } + + @Override + public boolean animateChange(RecyclerView.ViewHolder oldHolder, RecyclerView.ViewHolder newHolder, ItemHolderInfo info, + int fromX, int fromY, int toX, int toY) { + if (BuildVars.LOGS_ENABLED) { + FileLog.d("animate change"); + } + if (oldHolder == newHolder) { + // Don't know how to run change animations when the same view holder is re-used. + // run a move animation to handle position changes. + return animateMove(oldHolder, info, fromX, fromY, toX, toY); + } + final float prevTranslationX; + if (oldHolder.itemView instanceof ChatMessageCell) { + prevTranslationX = ((ChatMessageCell) oldHolder.itemView).getAnimationOffsetX(); + } else { + prevTranslationX = oldHolder.itemView.getTranslationX(); + } + final float prevTranslationY = oldHolder.itemView.getTranslationY(); + final float prevAlpha = oldHolder.itemView.getAlpha(); + resetAnimation(oldHolder); + int deltaX = (int) (toX - fromX - prevTranslationX); + int deltaY = (int) (toY - fromY - prevTranslationY); + // recover prev translation state after ending animation + if (oldHolder.itemView instanceof ChatMessageCell) { + ((ChatMessageCell) oldHolder.itemView).setAnimationOffsetX(prevTranslationX); + } else { + oldHolder.itemView.setTranslationX(prevTranslationX); + } + oldHolder.itemView.setTranslationY(prevTranslationY); + oldHolder.itemView.setAlpha(prevAlpha); + if (newHolder != null) { + // carry over translation values + resetAnimation(newHolder); + if (newHolder.itemView instanceof ChatMessageCell) { + ((ChatMessageCell) newHolder.itemView).setAnimationOffsetX(-deltaX); + } else { + newHolder.itemView.setTranslationX(-deltaX); + } + newHolder.itemView.setTranslationY(-deltaY); + newHolder.itemView.setAlpha(0); + } + mPendingChanges.add(new ChangeInfo(oldHolder, newHolder, fromX, fromY, toX, toY)); + return true; + } + + void animateChangeImpl(final ChangeInfo changeInfo) { + if (BuildVars.LOGS_ENABLED) { + FileLog.d("animate change impl"); + } + final RecyclerView.ViewHolder holder = changeInfo.oldHolder; + final View view = holder == null ? null : holder.itemView; + final RecyclerView.ViewHolder newHolder = changeInfo.newHolder; + final View newView = newHolder != null ? newHolder.itemView : null; + if (view != null) { + final ViewPropertyAnimator oldViewAnim = view.animate().setDuration( + getChangeDuration()); + mChangeAnimations.add(changeInfo.oldHolder); + oldViewAnim.translationX(changeInfo.toX - changeInfo.fromX); + oldViewAnim.translationY(changeInfo.toY - changeInfo.fromY); + oldViewAnim.alpha(0).setListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationStart(Animator animator) { + dispatchChangeStarting(changeInfo.oldHolder, true); + } + + @Override + public void onAnimationEnd(Animator animator) { + oldViewAnim.setListener(null); + view.setAlpha(1); + if (view instanceof ChatMessageCell) { + ((ChatMessageCell) view).setAnimationOffsetX(0); + } else { + view.setTranslationX(0); + } + view.setTranslationY(0); + if (mChangeAnimations.remove(changeInfo.oldHolder)) { + dispatchChangeFinished(changeInfo.oldHolder, true); + dispatchFinishedWhenDone(); + } + } + }).start(); + } + if (newView != null) { + final ViewPropertyAnimator newViewAnimation = newView.animate(); + mChangeAnimations.add(changeInfo.newHolder); + newViewAnimation.translationX(0).translationY(0).setDuration(getChangeDuration()) + .alpha(1).setListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationStart(Animator animator) { + dispatchChangeStarting(changeInfo.newHolder, false); + } + + @Override + public void onAnimationEnd(Animator animator) { + newViewAnimation.setListener(null); + newView.setAlpha(1); + if (newView instanceof ChatMessageCell) { + ((ChatMessageCell) newView).setAnimationOffsetX(0); + } else { + newView.setTranslationX(0); + } + newView.setTranslationY(0); + + if (mChangeAnimations.remove(changeInfo.newHolder)) { + dispatchChangeFinished(changeInfo.newHolder, false); + dispatchFinishedWhenDone(); + } + } + }).start(); + } + } + + @NonNull + @Override + public ItemHolderInfo recordPreLayoutInformation(@NonNull RecyclerView.State state, @NonNull RecyclerView.ViewHolder viewHolder, int changeFlags, @NonNull List payloads) { + ItemHolderInfo info = super.recordPreLayoutInformation(state, viewHolder, changeFlags, payloads); + if (viewHolder.itemView instanceof ChatMessageCell) { + ChatMessageCell chatMessageCell = (ChatMessageCell) viewHolder.itemView; + ItemHolderInfoExtended extended = new ItemHolderInfoExtended(); + extended.left = info.left; + extended.top = info.top; + extended.right = info.right; + extended.bottom = info.bottom; + + ChatMessageCell.TransitionParams params = chatMessageCell.getTransitionParams(); + extended.imageX = params.lastDrawingImageX; + extended.imageY = params.lastDrawingImageY; + extended.imageWidth = params.lastDrawingImageW; + extended.imageHeight = params.lastDrawingImageH; + return extended; + } + return info; + } + + @Override + protected void onAllAnimationsDone() { + super.onAllAnimationsDone(); + if (BuildVars.LOGS_ENABLED) { + FileLog.d("all animations done"); + } + + if (!reset) { + recyclerListView.setClipChildren(true); + } + while (!runOnAnimationsEnd.isEmpty()) { + runOnAnimationsEnd.remove(0).run(); + } + cancelAnimators(); + } + + private void cancelAnimators() { + if (BuildVars.LOGS_ENABLED) { + FileLog.d("cancel animations"); + } + ArrayList anim = new ArrayList<>(animators.values()); + animators.clear(); + for (Animator animator : anim) { + if (animator != null) { + animator.cancel(); + } + } + } + + @Override + public void endAnimation(RecyclerView.ViewHolder item) { + Animator animator = animators.remove(item); + if (animator != null) { + animator.cancel(); + } + super.endAnimation(item); + if (BuildVars.LOGS_ENABLED) { + FileLog.d("end animation"); + } + } + + @Override + public void endAnimations() { + if (BuildVars.LOGS_ENABLED) { + FileLog.d("end animations"); + } + for (MessageObject.GroupedMessages groupedMessages : willChangedGroups) { + groupedMessages.transitionParams.isNewGroup = false; + } + willChangedGroups.clear(); + + cancelAnimators(); + + int count = mPendingMoves.size(); + for (int i = count - 1; i >= 0; i--) { + MoveInfo item = mPendingMoves.get(i); + View view = item.holder.itemView; + view.setTranslationY(0); + if (view instanceof ChatMessageCell) { + ChatMessageCell cell = ((ChatMessageCell) view); + ChatMessageCell.TransitionParams params = cell.getTransitionParams(); + cell.setAnimationOffsetX(0); + params.deltaLeft = 0; + params.deltaTop = 0; + params.deltaRight = 0; + params.deltaBottom = 0; + params.animateBackgroundBoundsInner = false; + } else { + view.setTranslationX(0); + } + dispatchMoveFinished(item.holder); + mPendingMoves.remove(i); + } + count = mPendingRemovals.size(); + for (int i = count - 1; i >= 0; i--) { + RecyclerView.ViewHolder item = mPendingRemovals.get(i); + dispatchRemoveFinished(item); + mPendingRemovals.remove(i); + } + count = mPendingAdditions.size(); + for (int i = count - 1; i >= 0; i--) { + RecyclerView.ViewHolder item = mPendingAdditions.get(i); + item.itemView.setAlpha(1); + dispatchAddFinished(item); + mPendingAdditions.remove(i); + } + count = mPendingChanges.size(); + for (int i = count - 1; i >= 0; i--) { + endChangeAnimationIfNecessary(mPendingChanges.get(i)); + } + mPendingChanges.clear(); + if (!isRunning()) { + return; + } + + int listCount = mMovesList.size(); + for (int i = listCount - 1; i >= 0; i--) { + ArrayList moves = mMovesList.get(i); + count = moves.size(); + for (int j = count - 1; j >= 0; j--) { + MoveInfo moveInfo = moves.get(j); + RecyclerView.ViewHolder item = moveInfo.holder; + View view = item.itemView; + view.setTranslationY(0); + if (view instanceof ChatMessageCell) { + ((ChatMessageCell) view).setAnimationOffsetX(0); + } else { + view.setTranslationX(0); + } + dispatchMoveFinished(moveInfo.holder); + moves.remove(j); + if (moves.isEmpty()) { + mMovesList.remove(moves); + } + } + } + listCount = mAdditionsList.size(); + for (int i = listCount - 1; i >= 0; i--) { + ArrayList additions = mAdditionsList.get(i); + count = additions.size(); + for (int j = count - 1; j >= 0; j--) { + RecyclerView.ViewHolder item = additions.get(j); + View view = item.itemView; + view.setAlpha(1); + dispatchAddFinished(item); + additions.remove(j); + if (additions.isEmpty()) { + mAdditionsList.remove(additions); + } + } + } + listCount = mChangesList.size(); + for (int i = listCount - 1; i >= 0; i--) { + ArrayList changes = mChangesList.get(i); + count = changes.size(); + for (int j = count - 1; j >= 0; j--) { + endChangeAnimationIfNecessary(changes.get(j)); + if (changes.isEmpty()) { + mChangesList.remove(changes); + } + } + } + cancelAll(mRemoveAnimations); + cancelAll(mMoveAnimations); + cancelAll(mAddAnimations); + cancelAll(mChangeAnimations); + + dispatchAnimationsFinished(); + } + + protected boolean endChangeAnimationIfNecessary(ChangeInfo changeInfo, RecyclerView.ViewHolder item) { + if (BuildVars.LOGS_ENABLED) { + FileLog.d("end change if necessary"); + } + Animator a = animators.remove(item); + if (a != null) { + a.cancel(); + } + + boolean oldItem = false; + if (changeInfo.newHolder == item) { + changeInfo.newHolder = null; + } else if (changeInfo.oldHolder == item) { + changeInfo.oldHolder = null; + oldItem = true; + } else { + return false; + } + item.itemView.setAlpha(1); + if (item.itemView instanceof ChatMessageCell) { + ((ChatMessageCell) item.itemView).setAnimationOffsetX(0); + ((ChatMessageCell) item.itemView).getTransitionParams().resetAnimation(); + } else { + item.itemView.setTranslationX(0); + } + item.itemView.setTranslationY(0); + dispatchChangeFinished(item, oldItem); + + return true; + } + + public void groupWillTransformToSingleMessage(MessageObject.GroupedMessages groupedMessages) { + willRemovedGroup.put(groupedMessages.messages.get(0).getId(), groupedMessages); + } + + public void groupWillChanged(MessageObject.GroupedMessages groupedMessages) { + if (groupedMessages.messages.size() == 0) { + groupedMessages.transitionParams.drawBackgroundForDeletedItems = true; + } else { + if (groupedMessages.transitionParams.top == 0 && groupedMessages.transitionParams.bottom == 0 && groupedMessages.transitionParams.left == 0 && groupedMessages.transitionParams.right == 0) { + int n = recyclerListView.getChildCount(); + for (int i = 0; i < n; i++) { + View child = recyclerListView.getChildAt(i); + if (child instanceof ChatMessageCell) { + ChatMessageCell cell = (ChatMessageCell) child; + MessageObject messageObject = cell.getMessageObject(); + if (cell.getTransitionParams().wasDraw && groupedMessages.messages.contains(messageObject)) { + groupedMessages.transitionParams.top = cell.getTop() + cell.getBackgroundDrawableTop(); + groupedMessages.transitionParams.bottom = cell.getTop() + cell.getBackgroundDrawableBottom(); + groupedMessages.transitionParams.left = cell.getLeft() + cell.getBackgroundDrawableLeft(); + groupedMessages.transitionParams.right = cell.getLeft() + cell.getBackgroundDrawableRight(); + groupedMessages.transitionParams.drawCaptionLayout = cell.hasCaptionLayout(); + groupedMessages.transitionParams.pinnedTop = cell.isPinnedTop(); + groupedMessages.transitionParams.pinnedBotton = cell.isPinnedBottom(); + groupedMessages.transitionParams.isNewGroup = true; + break; + } + } + } + } + willChangedGroups.add(groupedMessages); + } + } + + @Override + public void animateAddImpl(RecyclerView.ViewHolder holder) { + if (BuildVars.LOGS_ENABLED) { + FileLog.d("animate add impl"); + } + final View view = holder.itemView; + mAddAnimations.add(holder); + AnimatorSet animatorSet = new AnimatorSet(); + ObjectAnimator animator = ObjectAnimator.ofFloat(view, View.ALPHA, view.getAlpha(), 1f); + + animatorSet.playTogether(animator); + + if (view instanceof ChatMessageCell) { + ChatMessageCell cell = (ChatMessageCell) view; + if (cell.getAnimationOffsetX() != 0) { + animatorSet.playTogether( + ObjectAnimator.ofFloat(cell, cell.ANIMATION_OFFSET_X, cell.getAnimationOffsetX(), 0f) + ); + } + view.animate().translationY(0).setDuration(getAddDuration()).start(); + } else { + view.animate().translationX(0).translationY(0).setDuration(getAddDuration()).start(); + } + animatorSet.setDuration(getAddDuration()); + if (view instanceof ChatMessageCell){ + MessageObject.GroupedMessages groupedMessages = ((ChatMessageCell) view).getCurrentMessagesGroup(); + if (groupedMessages != null && groupedMessages.transitionParams.backgroundChangeBounds) { + animatorSet.setStartDelay(140); + } + } + + animatorSet.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationStart(Animator animator) { + dispatchAddStarting(holder); + } + + @Override + public void onAnimationCancel(Animator animator) { + view.setAlpha(1); + } + + @Override + public void onAnimationEnd(Animator animator) { + animator.removeAllListeners(); + view.setAlpha(1f); + view.setTranslationY(0f); + view.setTranslationY(0f); + if (mAddAnimations.remove(holder)) { + dispatchAddFinished(holder); + dispatchFinishedWhenDone(); + } + } + }); + animators.put(holder, animatorSet); + animatorSet.start(); + } + + protected void animateRemoveImpl(final RecyclerView.ViewHolder holder) { + if (BuildVars.LOGS_ENABLED) { + FileLog.d("animate remove impl"); + } + final View view = holder.itemView; + mRemoveAnimations.add(holder); + ObjectAnimator animator = ObjectAnimator.ofFloat(view, View.ALPHA, view.getAlpha(), 0f); + + dispatchRemoveStarting(holder); + + animator.setDuration(getRemoveDuration()); + animator.addListener( + new AnimatorListenerAdapter() { + + @Override + public void onAnimationEnd(Animator animator) { + animator.removeAllListeners(); + view.setAlpha(1); + view.setTranslationX(0); + view.setTranslationY(0); + if (mRemoveAnimations.remove(holder)) { + dispatchRemoveFinished(holder); + dispatchFinishedWhenDone(); + } + } + }); + animators.put(holder, animator); + animator.start(); + recyclerListView.stopScroll(); + } + + public void setShouldAnimateEnterFromBottom(boolean shouldAnimateEnterFromBottom) { + this.shouldAnimateEnterFromBottom = shouldAnimateEnterFromBottom; + } + + public void onAnimationStart() { + + } + + protected long getMoveAnimationDelay() { + return 0; + } + + @Override + public long getMoveDuration() { + return 220; + } + + @Override + public long getChangeDuration() { + return 220; + } + + public void runOnAnimationEnd(Runnable runnable) { + runOnAnimationsEnd.add(runnable); + } + + public void onDestroy() { + onAllAnimationsDone(); + } + + class MoveInfoExtended extends MoveInfo { + + public float captionDeltaX; + public float captionDeltaY; + + public int groupOffsetTop; + public int groupOffsetBottom; + public int groupOffsetLeft; + public int groupOffsetRight; + public boolean animateChangeGroupBackground; + public boolean animatePinnedBottom; + public boolean animateBackgroundOnly; + public boolean animateChangeInternal; + + boolean animateImage; + boolean drawBackground; + + float imageX; + float imageY; + float imageWidth; + float imageHeight; + + int deltaLeft, deltaRight, deltaTop, deltaBottom; + boolean animateRemoveGroup; + + MoveInfoExtended(RecyclerView.ViewHolder holder, int fromX, int fromY, int toX, int toY) { + super(holder, fromX, fromY, toX, toY); + } + } + + class ItemHolderInfoExtended extends ItemHolderInfo { + float imageX; + float imageY; + float imageWidth; + float imageHeight; + int captionX; + int captionY; + } +} + diff --git a/TMessagesProj/src/main/java/androidx/recyclerview/widget/ChildHelper.java b/TMessagesProj/src/main/java/androidx/recyclerview/widget/ChildHelper.java index b566ba577..710942bcb 100644 --- a/TMessagesProj/src/main/java/androidx/recyclerview/widget/ChildHelper.java +++ b/TMessagesProj/src/main/java/androidx/recyclerview/widget/ChildHelper.java @@ -20,6 +20,8 @@ import android.util.Log; import android.view.View; import android.view.ViewGroup; +import org.telegram.messenger.BuildVars; + import java.util.ArrayList; import java.util.List; @@ -33,9 +35,9 @@ import java.util.List; * When RecyclerView needs direct access to the view group children, it can call unfiltered * methods like get getUnfilteredChildCount or getUnfilteredChildAt. */ -class ChildHelper { +public class ChildHelper { - private static final boolean DEBUG = false; + private static final boolean DEBUG = BuildVars.DEBUG_VERSION; private static final String TAG = "ChildrenHelper"; @@ -56,7 +58,7 @@ class ChildHelper { * * @param child View to hide. */ - private void hideViewInternal(View child) { + public void hideViewInternal(View child) { mHiddenViews.add(child); mCallback.onEnteredHiddenState(child); } @@ -66,7 +68,7 @@ class ChildHelper { * * @param child View to hide. */ - private boolean unhideViewInternal(View child) { + public boolean unhideViewInternal(View child) { if (mHiddenViews.remove(child)) { mCallback.onLeftHiddenState(child); return true; @@ -75,7 +77,7 @@ class ChildHelper { } } - protected int getHiddenChildCount() { + public int getHiddenChildCount() { return mHiddenViews.size(); } @@ -260,7 +262,7 @@ class ChildHelper { * @return Number of children that are not hidden. * @see #getChildAt(int) */ - int getChildCount() { + public int getChildCount() { return mCallback.getChildCount() - mHiddenViews.size(); } diff --git a/TMessagesProj/src/main/java/androidx/recyclerview/widget/DefaultItemAnimator.java b/TMessagesProj/src/main/java/androidx/recyclerview/widget/DefaultItemAnimator.java index cb736feec..caf456126 100644 --- a/TMessagesProj/src/main/java/androidx/recyclerview/widget/DefaultItemAnimator.java +++ b/TMessagesProj/src/main/java/androidx/recyclerview/widget/DefaultItemAnimator.java @@ -22,11 +22,15 @@ import android.animation.ValueAnimator; import android.os.Build; import android.view.View; import android.view.ViewPropertyAnimator; +import android.view.animation.Interpolator; import androidx.annotation.NonNull; import androidx.core.view.ViewCompat; +import org.telegram.messenger.BuildVars; + import java.util.ArrayList; +import java.util.HashMap; import java.util.List; /** @@ -37,14 +41,15 @@ import java.util.List; * @see RecyclerView#setItemAnimator(RecyclerView.ItemAnimator) */ public class DefaultItemAnimator extends SimpleItemAnimator { - private static final boolean DEBUG = false; + private static final boolean DEBUG = BuildVars.DEBUG_VERSION; private static TimeInterpolator sDefaultInterpolator; + protected Interpolator translationInterpolator; - private ArrayList mPendingRemovals = new ArrayList<>(); - private ArrayList mPendingAdditions = new ArrayList<>(); - private ArrayList mPendingMoves = new ArrayList<>(); - private ArrayList mPendingChanges = new ArrayList<>(); + protected ArrayList mPendingRemovals = new ArrayList<>(); + protected ArrayList mPendingAdditions = new ArrayList<>(); + protected ArrayList mPendingMoves = new ArrayList<>(); + protected ArrayList mPendingChanges = new ArrayList<>(); ArrayList> mAdditionsList = new ArrayList<>(); ArrayList> mMovesList = new ArrayList<>(); @@ -55,9 +60,9 @@ public class DefaultItemAnimator extends SimpleItemAnimator { ArrayList mRemoveAnimations = new ArrayList<>(); ArrayList mChangeAnimations = new ArrayList<>(); - private boolean delayAnimations = true; + protected boolean delayAnimations = true; - private static class MoveInfo { + protected static class MoveInfo { public RecyclerView.ViewHolder holder; public int fromX, fromY, toX, toY; @@ -70,7 +75,7 @@ public class DefaultItemAnimator extends SimpleItemAnimator { } } - private static class ChangeInfo { + protected static class ChangeInfo { public RecyclerView.ViewHolder oldHolder, newHolder; public int fromX, fromY, toX, toY; private ChangeInfo(RecyclerView.ViewHolder oldHolder, RecyclerView.ViewHolder newHolder) { @@ -125,8 +130,7 @@ public class DefaultItemAnimator extends SimpleItemAnimator { @Override public void run() { for (MoveInfo moveInfo : moves) { - animateMoveImpl(moveInfo.holder, moveInfo.fromX, moveInfo.fromY, - moveInfo.toX, moveInfo.toY); + animateMoveImpl(moveInfo.holder, moveInfo); } moves.clear(); mMovesList.remove(moves); @@ -134,7 +138,7 @@ public class DefaultItemAnimator extends SimpleItemAnimator { }; if (delayAnimations && removalsPending) { View view = moves.get(0).holder.itemView; - ViewCompat.postOnAnimationDelayed(view, mover, getRemoveDuration()); + ViewCompat.postOnAnimationDelayed(view, mover, getMoveAnimationDelay()); } else { mover.run(); } @@ -191,8 +195,12 @@ public class DefaultItemAnimator extends SimpleItemAnimator { } } + protected long getMoveAnimationDelay() { + return getRemoveDuration(); + } + @Override - public boolean animateRemove(final RecyclerView.ViewHolder holder) { + public boolean animateRemove(final RecyclerView.ViewHolder holder, ItemHolderInfo info) { resetAnimation(holder); mPendingRemovals.add(holder); return true; @@ -202,7 +210,7 @@ public class DefaultItemAnimator extends SimpleItemAnimator { delayAnimations = value; } - private void animateRemoveImpl(final RecyclerView.ViewHolder holder) { + protected void animateRemoveImpl(final RecyclerView.ViewHolder holder) { final View view = holder.itemView; final ViewPropertyAnimator animation = view.animate(); mRemoveAnimations.add(holder); @@ -217,6 +225,8 @@ public class DefaultItemAnimator extends SimpleItemAnimator { public void onAnimationEnd(Animator animator) { animation.setListener(null); view.setAlpha(1); + view.setTranslationX(0); + view.setTranslationY(0); dispatchRemoveFinished(holder); mRemoveAnimations.remove(holder); dispatchFinishedWhenDone(); @@ -232,7 +242,7 @@ public class DefaultItemAnimator extends SimpleItemAnimator { return true; } - void animateAddImpl(final RecyclerView.ViewHolder holder) { + public void animateAddImpl(final RecyclerView.ViewHolder holder) { final View view = holder.itemView; final ViewPropertyAnimator animation = view.animate(); mAddAnimations.add(holder); @@ -259,7 +269,7 @@ public class DefaultItemAnimator extends SimpleItemAnimator { } @Override - public boolean animateMove(final RecyclerView.ViewHolder holder, int fromX, int fromY, + public boolean animateMove(final RecyclerView.ViewHolder holder, ItemHolderInfo info, int fromX, int fromY, int toX, int toY) { final View view = holder.itemView; fromX += (int) holder.itemView.getTranslationX(); @@ -285,7 +295,11 @@ public class DefaultItemAnimator extends SimpleItemAnimator { } - void animateMoveImpl(final RecyclerView.ViewHolder holder, int fromX, int fromY, int toX, int toY) { + void animateMoveImpl(final RecyclerView.ViewHolder holder, MoveInfo moveInfo) { + int fromX = moveInfo.fromX; + int fromY = moveInfo.fromY; + int toX = moveInfo.toX; + int toY = moveInfo.toY; final View view = holder.itemView; final int deltaX = toX - fromX; final int deltaY = toY - fromY; @@ -303,6 +317,9 @@ public class DefaultItemAnimator extends SimpleItemAnimator { if (Build.VERSION.SDK_INT >= 19) { animation.setUpdateListener(animation1 -> onMoveAnimationUpdate(holder)); } + if (translationInterpolator != null) { + animation.setInterpolator(translationInterpolator); + } animation.setDuration(getMoveDuration()).setListener(new AnimatorListenerAdapter() { @Override public void onAnimationStart(Animator animator) { @@ -330,12 +347,12 @@ public class DefaultItemAnimator extends SimpleItemAnimator { } @Override - public boolean animateChange(RecyclerView.ViewHolder oldHolder, RecyclerView.ViewHolder newHolder, + public boolean animateChange(RecyclerView.ViewHolder oldHolder, RecyclerView.ViewHolder newHolder, ItemHolderInfo info, int fromX, int fromY, int toX, int toY) { if (oldHolder == newHolder) { // Don't know how to run change animations when the same view holder is re-used. // run a move animation to handle position changes. - return animateMove(oldHolder, fromX, fromY, toX, toY); + return animateMove(oldHolder,info, fromX, fromY, toX, toY); } final float prevTranslationX = oldHolder.itemView.getTranslationX(); final float prevTranslationY = oldHolder.itemView.getTranslationY(); @@ -421,7 +438,7 @@ public class DefaultItemAnimator extends SimpleItemAnimator { } } - private void endChangeAnimationIfNecessary(ChangeInfo changeInfo) { + protected void endChangeAnimationIfNecessary(ChangeInfo changeInfo) { if (changeInfo.oldHolder != null) { endChangeAnimationIfNecessary(changeInfo, changeInfo.oldHolder); } @@ -429,7 +446,7 @@ public class DefaultItemAnimator extends SimpleItemAnimator { endChangeAnimationIfNecessary(changeInfo, changeInfo.newHolder); } } - private boolean endChangeAnimationIfNecessary(ChangeInfo changeInfo, RecyclerView.ViewHolder item) { + protected boolean endChangeAnimationIfNecessary(ChangeInfo changeInfo, RecyclerView.ViewHolder item) { boolean oldItem = false; if (changeInfo.newHolder == item) { changeInfo.newHolder = null; @@ -507,32 +524,32 @@ public class DefaultItemAnimator extends SimpleItemAnimator { // animations should be ended by the cancel above. //noinspection PointlessBooleanExpression,ConstantConditions - if (mRemoveAnimations.remove(item) && DEBUG) { + if (mRemoveAnimations.remove(item) && BuildVars.DEBUG_VERSION) { throw new IllegalStateException("after animation is cancelled, item should not be in " + "mRemoveAnimations list"); } //noinspection PointlessBooleanExpression,ConstantConditions - if (mAddAnimations.remove(item) && DEBUG) { + if (mAddAnimations.remove(item) && BuildVars.DEBUG_VERSION) { throw new IllegalStateException("after animation is cancelled, item should not be in " + "mAddAnimations list"); } //noinspection PointlessBooleanExpression,ConstantConditions - if (mChangeAnimations.remove(item) && DEBUG) { + if (mChangeAnimations.remove(item) && BuildVars.DEBUG_VERSION) { throw new IllegalStateException("after animation is cancelled, item should not be in " + "mChangeAnimations list"); } //noinspection PointlessBooleanExpression,ConstantConditions - if (mMoveAnimations.remove(item) && DEBUG) { + if (mMoveAnimations.remove(item) && BuildVars.DEBUG_VERSION) { throw new IllegalStateException("after animation is cancelled, item should not be in " + "mMoveAnimations list"); } dispatchFinishedWhenDone(); } - private void resetAnimation(RecyclerView.ViewHolder holder) { + public void resetAnimation(RecyclerView.ViewHolder holder) { if (sDefaultInterpolator == null) { sDefaultInterpolator = new ValueAnimator().getInterpolator(); } @@ -560,7 +577,7 @@ public class DefaultItemAnimator extends SimpleItemAnimator { * pending/running, call {@link #dispatchAnimationsFinished()} to notify any * listeners. */ - void dispatchFinishedWhenDone() { + protected void dispatchFinishedWhenDone() { if (!isRunning()) { dispatchAnimationsFinished(); onAllAnimationsDone(); diff --git a/TMessagesProj/src/main/java/androidx/recyclerview/widget/LinearLayoutManager.java b/TMessagesProj/src/main/java/androidx/recyclerview/widget/LinearLayoutManager.java index 79606bb74..62b909875 100644 --- a/TMessagesProj/src/main/java/androidx/recyclerview/widget/LinearLayoutManager.java +++ b/TMessagesProj/src/main/java/androidx/recyclerview/widget/LinearLayoutManager.java @@ -34,6 +34,8 @@ import androidx.annotation.RestrictTo; import androidx.core.os.TraceCompat; import androidx.core.view.ViewCompat; +import org.telegram.messenger.BuildVars; + import java.util.List; /** @@ -45,7 +47,7 @@ public class LinearLayoutManager extends RecyclerView.LayoutManager implements private static final String TAG = "LinearLayoutManager"; - static final boolean DEBUG = false; + static final boolean DEBUG = BuildVars.DEBUG_VERSION; public static final int HORIZONTAL = RecyclerView.HORIZONTAL; diff --git a/TMessagesProj/src/main/java/androidx/recyclerview/widget/LinearSmoothScroller.java b/TMessagesProj/src/main/java/androidx/recyclerview/widget/LinearSmoothScroller.java index 37bb647d0..7d43885f2 100644 --- a/TMessagesProj/src/main/java/androidx/recyclerview/widget/LinearSmoothScroller.java +++ b/TMessagesProj/src/main/java/androidx/recyclerview/widget/LinearSmoothScroller.java @@ -23,6 +23,8 @@ import android.view.View; import android.view.animation.DecelerateInterpolator; import android.view.animation.LinearInterpolator; +import org.telegram.messenger.BuildVars; + /** * {@link RecyclerView.SmoothScroller} implementation which uses a {@link LinearInterpolator} until * the target position becomes a child of the RecyclerView and then uses a @@ -35,7 +37,7 @@ import android.view.animation.LinearInterpolator; */ public class LinearSmoothScroller extends RecyclerView.SmoothScroller { - private static final boolean DEBUG = false; + private static final boolean DEBUG = BuildVars.DEBUG_VERSION; private static final float MILLISECONDS_PER_INCH = 25f; diff --git a/TMessagesProj/src/main/java/androidx/recyclerview/widget/RecyclerView.java b/TMessagesProj/src/main/java/androidx/recyclerview/widget/RecyclerView.java index 8224aa9ce..9d929df27 100644 --- a/TMessagesProj/src/main/java/androidx/recyclerview/widget/RecyclerView.java +++ b/TMessagesProj/src/main/java/androidx/recyclerview/widget/RecyclerView.java @@ -59,6 +59,8 @@ import android.widget.LinearLayout; import android.widget.OverScroller; import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.BuildConfig; +import org.telegram.messenger.BuildVars; import androidx.annotation.CallSuper; import androidx.annotation.IntDef; @@ -212,7 +214,7 @@ public class RecyclerView extends ViewGroup implements ScrollingView, static final String TAG = "RecyclerView"; - static final boolean DEBUG = false; + static final boolean DEBUG = BuildVars.DEBUG_VERSION; static final boolean VERBOSE_TRACING = false; @@ -363,7 +365,7 @@ public class RecyclerView extends ViewGroup implements ScrollingView, private final RecyclerViewDataObserver mObserver = new RecyclerViewDataObserver(); - final Recycler mRecycler = new Recycler(); + public final Recycler mRecycler = new Recycler(); private SavedState mPendingSavedState; @@ -375,7 +377,7 @@ public class RecyclerView extends ViewGroup implements ScrollingView, /** * Handles abstraction between LayoutManager children and RecyclerView children */ - ChildHelper mChildHelper; + public ChildHelper mChildHelper; /** * Keeps data about views to be used for animations @@ -11294,7 +11296,7 @@ public class RecyclerView extends ViewGroup implements ScrollingView, mIsRecyclableCount = recyclable ? mIsRecyclableCount - 1 : mIsRecyclableCount + 1; if (mIsRecyclableCount < 0) { mIsRecyclableCount = 0; - if (DEBUG) { + if (BuildVars.DEBUG_VERSION) { throw new RuntimeException("isRecyclable decremented below 0: " + "unmatched pair of setIsRecyable() calls for " + this); } diff --git a/TMessagesProj/src/main/java/androidx/recyclerview/widget/SimpleItemAnimator.java b/TMessagesProj/src/main/java/androidx/recyclerview/widget/SimpleItemAnimator.java index 536eb6d43..b8da62768 100644 --- a/TMessagesProj/src/main/java/androidx/recyclerview/widget/SimpleItemAnimator.java +++ b/TMessagesProj/src/main/java/androidx/recyclerview/widget/SimpleItemAnimator.java @@ -55,14 +55,14 @@ public abstract class SimpleItemAnimator extends RecyclerView.ItemAnimator { * If you set this property to false, actions on the data set which change the * contents of items will not be animated. What those animations do is left * up to the discretion of the ItemAnimator subclass, in its - * {@link #animateChange(RecyclerView.ViewHolder, RecyclerView.ViewHolder, int, int, int, int)} implementation. + * {@link #animateChange(RecyclerView.ViewHolder, RecyclerView.ViewHolder, RecyclerView.ItemAnimator.ItemHolderInfo, int, int, int, int)} implementation. * The value of this property is true by default. * * @param supportsChangeAnimations true if change animations are supported by * this ItemAnimator, false otherwise. If the property is false, * the ItemAnimator * will not receive a call to - * {@link #animateChange(RecyclerView.ViewHolder, RecyclerView.ViewHolder, int, int, int, + * {@link #animateChange(RecyclerView.ViewHolder, RecyclerView.ViewHolder, RecyclerView.ItemAnimator.ItemHolderInfo, int, int, int, * int)} when changes occur. * @see RecyclerView.Adapter#notifyItemChanged(int) * @see RecyclerView.Adapter#notifyItemRangeChanged(int, int) @@ -99,15 +99,17 @@ public abstract class SimpleItemAnimator extends RecyclerView.ItemAnimator { if (DEBUG) { Log.d(TAG, "DISAPPEARING: " + viewHolder + " with view " + disappearingItemView); } - return animateMove(viewHolder, oldLeft, oldTop, newLeft, newTop); + return animateMove(viewHolder, preLayoutInfo, oldLeft, oldTop, newLeft, newTop); } else { if (DEBUG) { Log.d(TAG, "REMOVED: " + viewHolder + " with view " + disappearingItemView); } - return animateRemove(viewHolder); + return animateRemove(viewHolder, preLayoutInfo); } } + + @Override public boolean animateAppearance(@NonNull RecyclerView.ViewHolder viewHolder, @Nullable ItemHolderInfo preLayoutInfo, @NonNull ItemHolderInfo postLayoutInfo) { @@ -117,7 +119,7 @@ public abstract class SimpleItemAnimator extends RecyclerView.ItemAnimator { if (DEBUG) { Log.d(TAG, "APPEARING: " + viewHolder + " with view " + viewHolder); } - return animateMove(viewHolder, preLayoutInfo.left, preLayoutInfo.top, + return animateMove(viewHolder,preLayoutInfo, preLayoutInfo.left, preLayoutInfo.top, postLayoutInfo.left, postLayoutInfo.top); } else { if (DEBUG) { @@ -135,7 +137,7 @@ public abstract class SimpleItemAnimator extends RecyclerView.ItemAnimator { Log.d(TAG, "PERSISTENT: " + viewHolder + " with view " + viewHolder.itemView); } - return animateMove(viewHolder, + return animateMove(viewHolder, preInfo, preInfo.left, preInfo.top, postInfo.left, postInfo.top); } dispatchMoveFinished(viewHolder); @@ -158,7 +160,7 @@ public abstract class SimpleItemAnimator extends RecyclerView.ItemAnimator { toLeft = postInfo.left; toTop = postInfo.top; } - return animateChange(oldHolder, newHolder, fromLeft, fromTop, toLeft, toTop); + return animateChange(oldHolder, newHolder, preInfo, fromLeft, fromTop, toLeft, toTop); } /** @@ -170,9 +172,9 @@ public abstract class SimpleItemAnimator extends RecyclerView.ItemAnimator { * ItemAnimator's {@link #runPendingAnimations()} method should be called at the * next opportunity. This mechanism allows ItemAnimator to set up individual animations * as separate calls to {@link #animateAdd(RecyclerView.ViewHolder) animateAdd()}, - * {@link #animateMove(RecyclerView.ViewHolder, int, int, int, int) animateMove()}, - * {@link #animateRemove(RecyclerView.ViewHolder) animateRemove()}, and - * {@link #animateChange(RecyclerView.ViewHolder, RecyclerView.ViewHolder, int, int, int, int)} come in one by one, + * {@link #animateMove(RecyclerView.ViewHolder,RecyclerView.ItemAnimator.ItemHolderInfo, int, int, int, int) animateMove()}, + * {@link #animateRemove(RecyclerView.ViewHolder, RecyclerView.ItemAnimator.ItemHolderInfo) animateRemove()}, and + * {@link #animateChange(RecyclerView.ViewHolder, RecyclerView.ViewHolder, RecyclerView.ItemAnimator.ItemHolderInfo, int, int, int, int)} come in one by one, * then start the animations together in the later call to {@link #runPendingAnimations()}. * *

This method may also be called for disappearing items which continue to exist in the @@ -184,7 +186,7 @@ public abstract class SimpleItemAnimator extends RecyclerView.ItemAnimator { * @return true if a later call to {@link #runPendingAnimations()} is requested, * false otherwise. */ - public abstract boolean animateRemove(RecyclerView.ViewHolder holder); + public abstract boolean animateRemove(RecyclerView.ViewHolder holder, ItemHolderInfo info); /** * Called when an item is added to the RecyclerView. Implementors can choose @@ -195,9 +197,9 @@ public abstract class SimpleItemAnimator extends RecyclerView.ItemAnimator { * ItemAnimator's {@link #runPendingAnimations()} method should be called at the * next opportunity. This mechanism allows ItemAnimator to set up individual animations * as separate calls to {@link #animateAdd(RecyclerView.ViewHolder) animateAdd()}, - * {@link #animateMove(RecyclerView.ViewHolder, int, int, int, int) animateMove()}, - * {@link #animateRemove(RecyclerView.ViewHolder) animateRemove()}, and - * {@link #animateChange(RecyclerView.ViewHolder, RecyclerView.ViewHolder, int, int, int, int)} come in one by one, + * {@link #animateMove(RecyclerView.ViewHolder, RecyclerView.ItemAnimator.ItemHolderInfo, int, int, int, int) animateMove()}, + * {@link #animateRemove(RecyclerView.ViewHolder, RecyclerView.ItemAnimator.ItemHolderInfo) animateRemove()}, and + * {@link #animateChange(RecyclerView.ViewHolder, RecyclerView.ViewHolder, RecyclerView.ItemAnimator.ItemHolderInfo, int, int, int, int)} come in one by one, * then start the animations together in the later call to {@link #runPendingAnimations()}. * *

This method may also be called for appearing items which were already in the @@ -220,16 +222,16 @@ public abstract class SimpleItemAnimator extends RecyclerView.ItemAnimator { * ItemAnimator's {@link #runPendingAnimations()} method should be called at the * next opportunity. This mechanism allows ItemAnimator to set up individual animations * as separate calls to {@link #animateAdd(RecyclerView.ViewHolder) animateAdd()}, - * {@link #animateMove(RecyclerView.ViewHolder, int, int, int, int) animateMove()}, - * {@link #animateRemove(RecyclerView.ViewHolder) animateRemove()}, and - * {@link #animateChange(RecyclerView.ViewHolder, RecyclerView.ViewHolder, int, int, int, int)} come in one by one, + * {@link #animateMove(RecyclerView.ViewHolder, RecyclerView.ItemAnimator.ItemHolderInfo, int, int, int, int) animateMove()}, + * {@link #animateRemove(RecyclerView.ViewHolder, RecyclerView.ItemAnimator.ItemHolderInfo) animateRemove()}, and + * {@link #animateChange(RecyclerView.ViewHolder, RecyclerView.ViewHolder, RecyclerView.ItemAnimator.ItemHolderInfo, int, int, int, int)} come in one by one, * then start the animations together in the later call to {@link #runPendingAnimations()}. * * @param holder The item that is being moved. * @return true if a later call to {@link #runPendingAnimations()} is requested, * false otherwise. */ - public abstract boolean animateMove(RecyclerView.ViewHolder holder, int fromX, int fromY, + public abstract boolean animateMove(RecyclerView.ViewHolder holder, ItemHolderInfo info, int fromX, int fromY, int toX, int toY); /** @@ -248,9 +250,9 @@ public abstract class SimpleItemAnimator extends RecyclerView.ItemAnimator { * ItemAnimator's {@link #runPendingAnimations()} method should be called at the * next opportunity. This mechanism allows ItemAnimator to set up individual animations * as separate calls to {@link #animateAdd(RecyclerView.ViewHolder) animateAdd()}, - * {@link #animateMove(RecyclerView.ViewHolder, int, int, int, int) animateMove()}, - * {@link #animateRemove(RecyclerView.ViewHolder) animateRemove()}, and - * {@link #animateChange(RecyclerView.ViewHolder, RecyclerView.ViewHolder, int, int, int, int)} come in one by one, + * {@link #animateMove(RecyclerView.ViewHolder, RecyclerView.ItemAnimator.ItemHolderInfo, int, int, int, int) animateMove()}, + * {@link #animateRemove(RecyclerView.ViewHolder, RecyclerView.ItemAnimator.ItemHolderInfo) animateRemove()}, and + * {@link #animateChange(RecyclerView.ViewHolder, RecyclerView.ViewHolder,RecyclerView.ItemAnimator.ItemHolderInfo, int, int, int, int)} come in one by one, * then start the animations together in the later call to {@link #runPendingAnimations()}. * * @param oldHolder The original item that changed. @@ -263,7 +265,7 @@ public abstract class SimpleItemAnimator extends RecyclerView.ItemAnimator { * false otherwise. */ public abstract boolean animateChange(RecyclerView.ViewHolder oldHolder, - RecyclerView.ViewHolder newHolder, int fromLeft, int fromTop, int toLeft, int toTop); + RecyclerView.ViewHolder newHolder, ItemHolderInfo info, int fromLeft, int fromTop, int toLeft, int toTop); /** * Method to be called by subclasses when a remove animation is done. @@ -307,10 +309,10 @@ public abstract class SimpleItemAnimator extends RecyclerView.ItemAnimator { * * @param item The item which has been changed (this method must be called for * each non-null ViewHolder passed into - * {@link #animateChange(RecyclerView.ViewHolder, RecyclerView.ViewHolder, int, int, int, int)}). + * {@link #animateChange(RecyclerView.ViewHolder, RecyclerView.ViewHolder, RecyclerView.ItemAnimator.ItemHolderInfo, int, int, int, int)}). * @param oldItem true if this is the old item that was changed, false if * it is the new item that replaced the old item. - * @see #animateChange(RecyclerView.ViewHolder, RecyclerView.ViewHolder, int, int, int, int) + * @see #animateChange(RecyclerView.ViewHolder, RecyclerView.ViewHolder, RecyclerView.ItemAnimator.ItemHolderInfo, int, int, int, int) */ public final void dispatchChangeFinished(RecyclerView.ViewHolder item, boolean oldItem) { onChangeFinished(item, oldItem); @@ -349,7 +351,7 @@ public abstract class SimpleItemAnimator extends RecyclerView.ItemAnimator { * * @param item The item which has been changed (this method must be called for * each non-null ViewHolder passed into - * {@link #animateChange(RecyclerView.ViewHolder, RecyclerView.ViewHolder, int, int, int, int)}). + * {@link #animateChange(RecyclerView.ViewHolder, RecyclerView.ViewHolder, RecyclerView.ItemAnimator.ItemHolderInfo, int, int, int, int)}). * @param oldItem true if this is the old item that was changed, false if * it is the new item that replaced the old item. */ diff --git a/TMessagesProj/src/main/java/androidx/recyclerview/widget/ViewInfoStore.java b/TMessagesProj/src/main/java/androidx/recyclerview/widget/ViewInfoStore.java index 09e43d387..bc9584b05 100644 --- a/TMessagesProj/src/main/java/androidx/recyclerview/widget/ViewInfoStore.java +++ b/TMessagesProj/src/main/java/androidx/recyclerview/widget/ViewInfoStore.java @@ -15,6 +15,8 @@ */ package androidx.recyclerview.widget; +import org.telegram.messenger.BuildVars; + import static androidx.recyclerview.widget.ViewInfoStore.InfoRecord.FLAG_APPEAR; import static androidx.recyclerview.widget.ViewInfoStore.InfoRecord.FLAG_APPEAR_AND_DISAPPEAR; import static androidx.recyclerview.widget.ViewInfoStore.InfoRecord.FLAG_APPEAR_PRE_AND_POST; @@ -36,6 +38,8 @@ class ViewInfoStore { private static final boolean DEBUG = false; + private boolean processing; + /** * View data records for pre-layout */ @@ -113,6 +117,12 @@ class ViewInfoStore { } // if not pre-post flag is left, clear. if ((record.flags & (FLAG_PRE | FLAG_POST)) == 0) { + if (processing) { + if (BuildVars.DEBUG_VERSION) { + throw new RuntimeException("popFromLayoutStep while processing"); + } + return null; + } mLayoutHolderMap.removeAt(index); InfoRecord.recycle(record); } @@ -214,6 +224,7 @@ class ViewInfoStore { } void process(ProcessCallback callback) { + processing = true; for (int index = mLayoutHolderMap.size() - 1; index >= 0; index--) { final RecyclerView.ViewHolder viewHolder = mLayoutHolderMap.keyAt(index); final InfoRecord record = mLayoutHolderMap.removeAt(index); @@ -248,6 +259,7 @@ class ViewInfoStore { } InfoRecord.recycle(record); } + processing = false; } /** @@ -261,8 +273,15 @@ class ViewInfoStore { break; } } - final InfoRecord info = mLayoutHolderMap.remove(holder); + final InfoRecord info = mLayoutHolderMap.get(holder); if (info != null) { + if (processing) { + if (BuildVars.DEBUG_VERSION) { + throw new RuntimeException("removeViewHolder while processing"); + } + return; + } + mLayoutHolderMap.remove(holder); InfoRecord.recycle(info); } } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/AndroidUtilities.java b/TMessagesProj/src/main/java/org/telegram/messenger/AndroidUtilities.java index 10df18879..ece89476f 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/AndroidUtilities.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/AndroidUtilities.java @@ -1222,19 +1222,6 @@ public class AndroidUtilities { return false; } - public static boolean isKeyboardShowed(View view) { - if (view == null) { - return false; - } - try { - InputMethodManager inputManager = (InputMethodManager) view.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); - return inputManager.isActive(view); - } catch (Exception e) { - FileLog.e(e); - } - return false; - } - public static String[] getCurrentKeyboardLanguage() { try { InputMethodManager inputManager = (InputMethodManager) ApplicationLoader.applicationContext.getSystemService(Context.INPUT_METHOD_SERVICE); @@ -1893,7 +1880,7 @@ public class AndroidUtilities { return; } AnimatorSet animatorSet = new AnimatorSet(); - animatorSet.playTogether(ObjectAnimator.ofFloat(view, "translationX", AndroidUtilities.dp(x))); + animatorSet.playTogether(ObjectAnimator.ofFloat(view, "translationX", dp(x))); animatorSet.setDuration(50); animatorSet.addListener(new AnimatorListenerAdapter() { @Override diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/AnimatedFileDrawableStream.java b/TMessagesProj/src/main/java/org/telegram/messenger/AnimatedFileDrawableStream.java index c9e9b9288..2640aa6da 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/AnimatedFileDrawableStream.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/AnimatedFileDrawableStream.java @@ -16,6 +16,10 @@ public class AnimatedFileDrawableStream implements FileLoadOperationStream { private int lastOffset; private boolean waitingForLoad; private boolean preview; + private boolean finishedLoadingFile; + private String finishedFilePath; + + private boolean ignored; public AnimatedFileDrawableStream(TLRPC.Document d, Object p, int a, boolean prev) { document = d; @@ -25,6 +29,14 @@ public class AnimatedFileDrawableStream implements FileLoadOperationStream { loadOperation = FileLoader.getInstance(currentAccount).loadStreamFile(this, document, parentObject, 0, preview); } + public boolean isFinishedLoadingFile() { + return finishedLoadingFile; + } + + public String getFinishedFilePath() { + return finishedFilePath; + } + public int read(int offset, int readLength) { synchronized (sync) { if (canceled) { @@ -37,7 +49,12 @@ public class AnimatedFileDrawableStream implements FileLoadOperationStream { int availableLength = 0; try { while (availableLength == 0) { - availableLength = loadOperation.getDownloadedLengthFromOffset(offset, readLength); + int[] result = loadOperation.getDownloadedLengthFromOffset(offset, readLength); + availableLength = result[0]; + if (!finishedLoadingFile && result[1] != 0) { + finishedLoadingFile = true; + finishedFilePath = loadOperation.getCacheFileFinal().getAbsolutePath(); + } if (availableLength == 0) { if (loadOperation.isPaused() || lastOffset != offset || preview) { FileLoader.getInstance(currentAccount).loadStreamFile(this, document, parentObject, offset, preview); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/ApplicationLoader.java b/TMessagesProj/src/main/java/org/telegram/messenger/ApplicationLoader.java index fecc711dc..bdf06a759 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/ApplicationLoader.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/ApplicationLoader.java @@ -9,6 +9,7 @@ package org.telegram.messenger; import android.annotation.SuppressLint; +import android.app.Activity; import android.app.AlarmManager; import android.app.Application; import android.app.PendingIntent; @@ -43,7 +44,6 @@ public class ApplicationLoader extends Application { @SuppressLint("StaticFieldLeak") public static volatile Context applicationContext; public static volatile NetworkInfo currentNetworkInfo; - public static volatile boolean unableGetCurrentNetwork; public static volatile Handler applicationHandler; private static ConnectivityManager connectivityManager; @@ -114,7 +114,6 @@ public class ApplicationLoader extends Application { }; IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION); ApplicationLoader.applicationContext.registerReceiver(networkStateReceiver, filter); - //Utilities.globalQueue.postRunnable(ApplicationLoader::ensureCurrentNetworkGet); } catch (Exception e) { e.printStackTrace(); } @@ -189,7 +188,16 @@ public class ApplicationLoader extends Application { NativeLoader.initNativeLibs(ApplicationLoader.applicationContext); ConnectionsManager.native_setJava(false); - new ForegroundDetector(this); + new ForegroundDetector(this) { + @Override + public void onActivityStarted(Activity activity) { + boolean wasInBackground = isBackground(); + super.onActivityStarted(activity); + if (wasInBackground) { + ensureCurrentNetworkGet(true); + } + } + }; applicationHandler = new Handler(applicationContext.getMainLooper()); @@ -281,24 +289,22 @@ public class ApplicationLoader extends Application { return true; } - /* - private static void ensureCurrentNetworkGet() { - if (currentNetworkInfo == null) { + private static void ensureCurrentNetworkGet(boolean force) { + if (force || currentNetworkInfo == null) { try { if (connectivityManager == null) { connectivityManager = (ConnectivityManager) ApplicationLoader.applicationContext.getSystemService(Context.CONNECTIVITY_SERVICE); } currentNetworkInfo = connectivityManager.getActiveNetworkInfo(); - unableGetCurrentNetwork = false; } catch (Throwable ignore) { - unableGetCurrentNetwork = true; + } } } public static boolean isRoaming() { try { - ensureCurrentNetworkGet(); + ensureCurrentNetworkGet(false); return currentNetworkInfo != null && currentNetworkInfo.isRoaming(); } catch (Exception e) { FileLog.e(e); @@ -308,8 +314,8 @@ public class ApplicationLoader extends Application { public static boolean isConnectedOrConnectingToWiFi() { try { - ensureCurrentNetworkGet(); - if (currentNetworkInfo != null && currentNetworkInfo.getType() == ) { + ensureCurrentNetworkGet(false); + if (currentNetworkInfo != null && currentNetworkInfo.getType() == ConnectivityManager.TYPE_WIFI) { NetworkInfo.State state = currentNetworkInfo.getState(); if (state == NetworkInfo.State.CONNECTED || state == NetworkInfo.State.CONNECTING || state == NetworkInfo.State.SUSPENDED) { return true; @@ -323,7 +329,7 @@ public class ApplicationLoader extends Application { public static boolean isConnectedToWiFi() { try { - ensureCurrentNetworkGet(); + ensureCurrentNetworkGet(false); if (currentNetworkInfo != null && currentNetworkInfo.getType() == ConnectivityManager.TYPE_WIFI && currentNetworkInfo.getState() == NetworkInfo.State.CONNECTED) { return true; } @@ -335,7 +341,7 @@ public class ApplicationLoader extends Application { public static boolean isConnectionSlow() { try { - ensureCurrentNetworkGet(); + ensureCurrentNetworkGet(false); if (currentNetworkInfo != null && currentNetworkInfo.getType() == ConnectivityManager.TYPE_MOBILE) { switch (currentNetworkInfo.getSubtype()) { case TelephonyManager.NETWORK_TYPE_1xRTT: @@ -352,60 +358,6 @@ public class ApplicationLoader extends Application { return false; } - public static boolean isNetworkOnline() { - try { - ensureCurrentNetworkGet(); - if (!unableGetCurrentNetwork && currentNetworkInfo == null) { - return false; - } - if (currentNetworkInfo.isConnectedOrConnecting() || currentNetworkInfo.isAvailable()) { - return true; - } - - NetworkInfo netInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); - if (netInfo != null && netInfo.isConnectedOrConnecting()) { - return true; - } else { - netInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); - if (netInfo != null && netInfo.isConnectedOrConnecting()) { - return true; - } - } - } catch (Exception e) { - FileLog.e(e); - return true; - } - return false; - } - */ - - public static boolean isRoaming() { - try { - ConnectivityManager connectivityManager = (ConnectivityManager) ApplicationLoader.applicationContext.getSystemService(Context.CONNECTIVITY_SERVICE); - NetworkInfo netInfo = connectivityManager.getActiveNetworkInfo(); - if (netInfo != null) { - return netInfo.isRoaming(); - } - } catch (Exception e) { - FileLog.e(e); - } - return false; - } - - public static boolean isConnectedOrConnectingToWiFi() { - try { - ConnectivityManager connectivityManager = (ConnectivityManager) ApplicationLoader.applicationContext.getSystemService(Context.CONNECTIVITY_SERVICE); - NetworkInfo netInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); - NetworkInfo.State state = netInfo.getState(); - if (netInfo != null && (state == NetworkInfo.State.CONNECTED || state == NetworkInfo.State.CONNECTING || state == NetworkInfo.State.SUSPENDED)) { - return true; - } - } catch (Exception e) { - FileLog.e(e); - } - return false; - } - public static int getAutodownloadNetworkType() { try { ConnectivityManager connectivityManager = (ConnectivityManager) ApplicationLoader.applicationContext.getSystemService(Context.CONNECTIVITY_SERVICE); @@ -429,19 +381,6 @@ public class ApplicationLoader extends Application { return StatsController.TYPE_MOBILE; } - public static boolean isConnectedToWiFi() { - try { - ConnectivityManager connectivityManager = (ConnectivityManager) ApplicationLoader.applicationContext.getSystemService(Context.CONNECTIVITY_SERVICE); - NetworkInfo netInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); - if (netInfo != null && netInfo.getState() == NetworkInfo.State.CONNECTED) { - return true; - } - } catch (Exception e) { - FileLog.e(e); - } - return false; - } - public static int getCurrentNetworkType() { if (isConnectedOrConnectingToWiFi()) { return StatsController.TYPE_WIFI; @@ -452,27 +391,33 @@ public class ApplicationLoader extends Application { } } - public static boolean isConnectionSlow() { + public static boolean isNetworkOnlineFast() { try { - ConnectivityManager connectivityManager = (ConnectivityManager) ApplicationLoader.applicationContext.getSystemService(Context.CONNECTIVITY_SERVICE); - NetworkInfo netInfo = connectivityManager.getActiveNetworkInfo(); - if (netInfo.getType() == ConnectivityManager.TYPE_MOBILE) { - switch (netInfo.getSubtype()) { - case TelephonyManager.NETWORK_TYPE_1xRTT: - case TelephonyManager.NETWORK_TYPE_CDMA: - case TelephonyManager.NETWORK_TYPE_EDGE: - case TelephonyManager.NETWORK_TYPE_GPRS: - case TelephonyManager.NETWORK_TYPE_IDEN: - return true; + ensureCurrentNetworkGet(false); + if (currentNetworkInfo == null) { + return true; + } + if (currentNetworkInfo.isConnectedOrConnecting() || currentNetworkInfo.isAvailable()) { + return true; + } + + NetworkInfo netInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); + if (netInfo != null && netInfo.isConnectedOrConnecting()) { + return true; + } else { + netInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); + if (netInfo != null && netInfo.isConnectedOrConnecting()) { + return true; } } - } catch (Throwable ignore) { - + } catch (Exception e) { + FileLog.e(e); + return true; } return false; } - public static boolean isNetworkOnline() { + public static boolean isNetworkOnlineRealtime() { try { ConnectivityManager connectivityManager = (ConnectivityManager) ApplicationLoader.applicationContext.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo netInfo = connectivityManager.getActiveNetworkInfo(); @@ -496,4 +441,15 @@ public class ApplicationLoader extends Application { } return false; } + + public static boolean isNetworkOnline() { + boolean result = isNetworkOnlineRealtime(); + if (BuildVars.DEBUG_PRIVATE_VERSION) { + boolean result2 = isNetworkOnlineFast(); + if (result != result2) { + FileLog.d("network online mismatch"); + } + } + return result; + } } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/BuildVars.java b/TMessagesProj/src/main/java/org/telegram/messenger/BuildVars.java index e103b2800..329a02cb2 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/BuildVars.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/BuildVars.java @@ -19,8 +19,8 @@ public class BuildVars { public static boolean USE_CLOUD_STRINGS = true; public static boolean CHECK_UPDATES = true; public static boolean TON_WALLET_STANDALONE = false; - public static int BUILD_VERSION = 1947; - public static String BUILD_VERSION_STRING = "6.1.0"; + public static int BUILD_VERSION = 1984; + public static String BUILD_VERSION_STRING = "6.2.0"; public static int APP_ID = 4; public static String APP_HASH = "014b35b6184100b085b0d0572f9b5103"; public static String APPCENTER_HASH = "a5b5c4f5-51da-dedc-9918-d9766a22ca7c"; diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/DispatchQueue.java b/TMessagesProj/src/main/java/org/telegram/messenger/DispatchQueue.java index 7307527b8..f2d386256 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/DispatchQueue.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/DispatchQueue.java @@ -11,6 +11,7 @@ package org.telegram.messenger; import android.os.Handler; import android.os.Looper; import android.os.Message; +import android.os.SystemClock; import java.util.concurrent.CountDownLatch; @@ -18,10 +19,17 @@ public class DispatchQueue extends Thread { private volatile Handler handler = null; private CountDownLatch syncLatch = new CountDownLatch(1); + private long lastTaskTime; public DispatchQueue(final String threadName) { + this(threadName, true); + } + + public DispatchQueue(final String threadName, boolean start) { setName(threadName); - start(); + if (start) { + start(); + } } public void sendMessage(Message msg, int delay) { @@ -59,6 +67,7 @@ public class DispatchQueue extends Thread { public void postRunnable(Runnable runnable) { postRunnable(runnable, 0); + lastTaskTime = SystemClock.elapsedRealtime(); } public void postRunnable(Runnable runnable, long delay) { @@ -87,6 +96,10 @@ public class DispatchQueue extends Thread { } + public long getLastTaskTime() { + return lastTaskTime; + } + public void recycle() { handler.getLooper().quit(); } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/DispatchQueuePool.java b/TMessagesProj/src/main/java/org/telegram/messenger/DispatchQueuePool.java new file mode 100644 index 000000000..afee8d9a7 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/messenger/DispatchQueuePool.java @@ -0,0 +1,89 @@ +package org.telegram.messenger; + +import android.os.SystemClock; + +import java.util.HashMap; +import java.util.LinkedList; + +import androidx.annotation.UiThread; + +public class DispatchQueuePool { + + private LinkedList queues = new LinkedList<>(); + private HashMap busyQueuesMap = new HashMap<>(); + private LinkedList busyQueues = new LinkedList<>(); + private int maxCount; + private int createdCount; + private int guid; + private int totalTasksCount; + private boolean cleanupScheduled; + + private Runnable cleanupRunnable = new Runnable() { + @Override + public void run() { + if (!queues.isEmpty()) { + long currentTime = SystemClock.elapsedRealtime(); + for (int a = 0, N = queues.size(); a < N; a++) { + DispatchQueue queue = queues.get(a); + if (queue.getLastTaskTime() < currentTime - 30000) { + queue.recycle(); + queues.remove(a); + createdCount--; + a--; + N--; + } + } + } + if (!queues.isEmpty() || !busyQueues.isEmpty()) { + AndroidUtilities.runOnUIThread(this, 30000); + cleanupScheduled = true; + } else { + cleanupScheduled = false; + } + } + }; + + public DispatchQueuePool(int count) { + maxCount = count; + guid = Utilities.random.nextInt(); + } + + @UiThread + public void execute(Runnable runnable) { + DispatchQueue queue; + if (!busyQueues.isEmpty() && (totalTasksCount / 2 <= busyQueues.size() || queues.isEmpty() && createdCount >= maxCount)) { + queue = busyQueues.remove(0); + } else if (queues.isEmpty()) { + queue = new DispatchQueue("DispatchQueuePool" + guid + "_" + Utilities.random.nextInt()); + queue.setPriority(Thread.MAX_PRIORITY); + createdCount++; + } else { + queue = queues.remove(0); + } + if (!cleanupScheduled) { + AndroidUtilities.runOnUIThread(cleanupRunnable, 30000); + cleanupScheduled = true; + } + totalTasksCount++; + busyQueues.add(queue); + Integer count = busyQueuesMap.get(queue); + if (count == null) { + count = 0; + } + busyQueuesMap.put(queue, count + 1); + queue.postRunnable(() -> { + runnable.run(); + AndroidUtilities.runOnUIThread(() -> { + totalTasksCount--; + int remainingTasksCount = busyQueuesMap.get(queue) - 1; + if (remainingTasksCount == 0) { + busyQueuesMap.remove(queue); + busyQueues.remove(queue); + queues.add(queue); + } else { + busyQueuesMap.put(queue, remainingTasksCount); + } + }); + }); + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/Emoji.java b/TMessagesProj/src/main/java/org/telegram/messenger/Emoji.java index c66ad9dba..5db5d5faf 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/Emoji.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/Emoji.java @@ -40,7 +40,7 @@ public class Emoji { private static int bigImgSize; private static boolean inited = false; private static Paint placeholderPaint; - private static int[] emojiCounts = new int[]{1620, 184, 115, 328, 125, 206, 288, 258}; + private static int[] emojiCounts = new int[]{1620, 184, 115, 328, 125, 207, 288, 258}; private static Bitmap[][] emojiBmp = new Bitmap[8][]; private static boolean[][] loadingEmoji = new boolean[8][]; @@ -70,7 +70,27 @@ public class Emoji { placeholderPaint.setColor(0x00000000); } + public static void preloadEmoji(CharSequence code) { + final DrawableInfo info = getDrawableInfo(code); + if (info != null) { + loadEmoji(info.page, info.page2); + } + } + private static void loadEmoji(final byte page, final short page2) { + if (emojiBmp[page][page2] == null) { + if (loadingEmoji[page][page2]) { + return; + } + loadingEmoji[page][page2] = true; + Utilities.globalQueue.postRunnable(() -> { + loadEmojiInternal(page, page2); + loadingEmoji[page][page2] = false; + }); + } + } + + private static void loadEmojiInternal(final byte page, final short page2) { try { float scale; int imageResize = 1; @@ -165,13 +185,7 @@ public class Emoji { } public static EmojiDrawable getEmojiDrawable(CharSequence code) { - DrawableInfo info = rects.get(code); - if (info == null) { - CharSequence newCode = EmojiData.emojiAliasMap.get(code); - if (newCode != null) { - info = Emoji.rects.get(newCode); - } - } + DrawableInfo info = getDrawableInfo(code); if (info == null) { if (BuildVars.LOGS_ENABLED) { FileLog.d("No drawable for emoji " + code); @@ -183,6 +197,17 @@ public class Emoji { return ed; } + private static DrawableInfo getDrawableInfo(CharSequence code) { + DrawableInfo info = rects.get(code); + if (info == null) { + CharSequence newCode = EmojiData.emojiAliasMap.get(code); + if (newCode != null) { + info = Emoji.rects.get(newCode); + } + } + return info; + } + public static boolean isValidEmoji(CharSequence code) { DrawableInfo info = rects.get(code); if (info == null) { @@ -242,14 +267,7 @@ public class Emoji { return; }*/ if (emojiBmp[info.page][info.page2] == null) { - if (loadingEmoji[info.page][info.page2]) { - return; - } - loadingEmoji[info.page][info.page2] = true; - Utilities.globalQueue.postRunnable(() -> { - loadEmoji(info.page, info.page2); - loadingEmoji[info.page][info.page2] = false; - }); + loadEmoji(info.page, info.page2); canvas.drawRect(getBounds(), placeholderPaint); return; } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/EmojiData.java b/TMessagesProj/src/main/java/org/telegram/messenger/EmojiData.java index e0a6ef5f8..5f1bc31a5 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/EmojiData.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/EmojiData.java @@ -70,7 +70,7 @@ public class EmojiData { "👨‍🍳", "👩‍🎓", "🧑‍🎓", "👨‍🎓", "👩‍🎤", "🧑‍🎤", "👨‍🎤", "👩‍🏫", "🧑‍🏫", "👨‍🏫", "👩‍🏭", "🧑‍🏭", "👨‍🏭", "👩‍💻", "🧑‍💻", "👨‍💻", "👩‍💼", "🧑‍💼", "👨‍💼", "👩‍🔧", "🧑‍🔧", "👨‍🔧", "👩‍🔬", "🧑‍🔬", "👨‍🔬", "👩‍🎨", "🧑‍🎨", "👨‍🎨", "👩‍🚒", "🧑‍🚒", "👨‍🚒", "👩‍✈", "🧑‍✈", "👨‍✈", "👩‍🚀", "🧑‍🚀", "👨‍🚀", "👩‍⚖", "🧑‍⚖", "👨‍⚖", "👰", "🤵", "👸", "🤴", "🦸‍♀", "🦸", "🦸‍♂", "🦹‍♀", - "🦹", "🦹‍♂", "🤶", "🎅", "🧙‍♀", "🧙", "🧙‍♂", "🧝‍♀", "🧝", "🧝‍♂", "🧛‍♀", "🧛", "🧛‍♂", "🧟‍♀", "🧜‍♀", "🧜", + "🦹", "🦹‍♂", "🤶", "🎅", "🧙‍♀", "🧙", "🧙‍♂", "🧝‍♀", "🧝", "🧝‍♂", "🧛‍♀", "🧛", "🧛‍♂", "🧜‍♀", "🧜", "🧜‍♂", "🧚‍♀", "🧚", "🧚‍♂", "👼", "🤰", "🤱", "🙇‍♀", "🙇", "🙇‍♂", "💁‍♀", "💁", "💁‍♂", "🙅‍♀", "🙅", "🙅‍♂", "🙆‍♀", "🙆", "🙆‍♂", "🙋‍♀", "🙋", "🙋‍♂", "🧏‍♀", "🧏", "🧏‍♂", "🤦‍♀", "🤦", "🤦‍♂", "🤷‍♀", "🤷", "🤷‍♂", "🙎‍♀", "🙎", "🙎‍♂", "🙍‍♀", "🙍", "🙍‍♂", "💇‍♀", "💇", "💇‍♂", "💆‍♀", "💆", "💆‍♂", "🧖‍♀", "🧖", "🧖‍♂", "💅", "🤳", @@ -377,7 +377,7 @@ public class EmojiData { new String[]{ "⌚", "📱", "📲", "💻", "⌨", "🖥", "🖨", "🖱", "🖲", "🕹", "🗜", "💽", "💾", "💿", "📀", "📼", "📷", "📸", "📹", "🎥", "📽", "🎞", "📞", "☎", "📟", "📠", "📺", "📻", "🎙", "🎚", "🎛", "🧭", "⏱", "⏲", "⏰", "🕰", "⌛", "⏳", "📡", "🔋", "🔌", "💡", "🔦", "🕯", "🪔", "🧯", "🛢", "💸", "💵", "💴", "💶", "💷", "💰", "💳", "💎", "⚖", "🧰", "🔧", "🔨", "⚒", "🛠", "⛏", "🔩", "⚙", "🧱", "⛓", "🧲", "🔫", "💣", "🧨", "🪓", "🔪", "🗡", "⚔", "🛡", "🚬", "⚰", "⚱", "🏺", "🔮", "📿", "🧿", "💈", "⚗", "🔭", "🔬", "🕳", "🩹", "🩺", "💊", "💉", "🩸", "🧬", "🦠", "🧫", "🧪", "🌡", "🧹", "🧺", "🧻", "🚽", "🚰", "🚿", "🛁", "🛀", - "🧼", "🪒", "🧽", "🧴", "🛎", "🔑", "🗝", "🚪", "🪑", "🛋", "🛏", "🛌", "🧸", "🖼", "🛍", "🛒", "🎁", "🎈", "🎏", "🎀", "🎊", "🎉", "🎎", "🏮", "🎐", "🧧", "✉", "📩", "📨", "📧", "💌", "📥", "📤", "📦", "🏷", "📪", "📫", "📬", "📭", "📮", "📯📜", "📃", "📄", "📑", "🧾", "📊", "📈", "📉", "🗒", "🗓", "📆", "📅", "🗑", "📇", "🗃", "🗳", "🗄", "📋", "📁", "📂", "🗂", "🗞", "📰", "📓", "📔", "📒", "📕", "📗", "📘", "📙", "📚", "📖", "🔖", "🧷", "🔗", "📎", "🖇", "📐", "📏", "🧮", "📌", "📍", "✂", "🖊", "🖋", "✒", "🖌", "🖍", "📝", "✏", "🔍", "🔎", "🔏", "🔐", "🔒", "🔓" + "🧼", "🪒", "🧽", "🧴", "🛎", "🔑", "🗝", "🚪", "🪑", "🛋", "🛏", "🛌", "🧸", "🖼", "🛍", "🛒", "🎁", "🎈", "🎏", "🎀", "🎊", "🎉", "🎎", "🏮", "🎐", "🧧", "✉", "📩", "📨", "📧", "💌", "📥", "📤", "📦", "🏷", "📪", "📫", "📬", "📭", "📮", "📯", "📜", "📃", "📄", "📑", "🧾", "📊", "📈", "📉", "🗒", "🗓", "📆", "📅", "🗑", "📇", "🗃", "🗳", "🗄", "📋", "📁", "📂", "🗂", "🗞", "📰", "📓", "📔", "📒", "📕", "📗", "📘", "📙", "📚", "📖", "🔖", "🧷", "🔗", "📎", "🖇", "📐", "📏", "🧮", "📌", "📍", "✂", "🖊", "🖋", "✒", "🖌", "🖍", "📝", "✏", "🔍", "🔎", "🔏", "🔐", "🔒", "🔓" }, null, null @@ -779,7 +779,7 @@ public class EmojiData { new String[]{ "⌚", "📱", "📲", "💻", "⌨", "🖥", "🖨", "🖱", "🖲", "🕹", "🗜", "💽", "💾", "💿", "📀", "📼", "📷", "📸", "📹", "🎥", "📽", "🎞", "📞", "☎", "📟", "📠", "📺", "📻", "🎙", "🎚", "🎛", "🧭", "⏱", "⏲", "⏰", "🕰", "⌛", "⏳", "📡", "🔋", "🔌", "💡", "🔦", "🕯", "🪔", "🧯", "🛢", "💸", "💵", "💴", "💶", "💷", "💰", "💳", "💎", "⚖", "🧰", "🔧", "🔨", "⚒", "🛠", "⛏", "🔩", "⚙", "🧱", "⛓", "🧲", "🔫", "💣", "🧨", "🪓", "🔪", "🗡", "⚔", "🛡", "🚬", "⚰", "⚱", "🏺", "🔮", "📿", "🧿", "💈", "⚗", "🔭", "🔬", "🕳", "🩹", "🩺", "💊", "💉", "🩸", "🧬", "🦠", "🧫", "🧪", "🌡", "🧹", "🧺", "🧻", "🚽", "🚰", "🚿", "🛁", "🛀", "🛀🏻", "🛀🏼", "🛀🏽", "🛀🏾", "🛀🏿", - "🧼", "🪒", "🧽", "🧴", "🛎", "🔑", "🗝", "🚪", "🪑", "🛋", "🛏", "🛌", "🧸", "🖼", "🛍", "🛒", "🎁", "🎈", "🎏", "🎀", "🎊", "🎉", "🎎", "🏮", "🎐", "🧧", "✉", "📩", "📨", "📧", "💌", "📥", "📤", "📦", "🏷", "📪", "📫", "📬", "📭", "📮", "📯📜", "📃", "📄", "📑", "🧾", "📊", "📈", "📉", "🗒", "🗓", "📆", "📅", "🗑", "📇", "🗃", "🗳", "🗄", "📋", "📁", "📂", "🗂", "🗞", "📰", "📓", "📔", "📒", "📕", "📗", "📘", "📙", "📚", "📖", "🔖", "🧷", "🔗", "📎", "🖇", "📐", "📏", "🧮", "📌", "📍", "✂", "🖊", "🖋", "✒", "🖌", "🖍", "📝", "✏", "🔍", "🔎", "🔏", "🔐", "🔒", "🔓" + "🧼", "🪒", "🧽", "🧴", "🛎", "🔑", "🗝", "🚪", "🪑", "🛋", "🛏", "🛌", "🧸", "🖼", "🛍", "🛒", "🎁", "🎈", "🎏", "🎀", "🎊", "🎉", "🎎", "🏮", "🎐", "🧧", "✉", "📩", "📨", "📧", "💌", "📥", "📤", "📦", "🏷", "📪", "📫", "📬", "📭", "📮", "📯", "📜", "📃", "📄", "📑", "🧾", "📊", "📈", "📉", "🗒", "🗓", "📆", "📅", "🗑", "📇", "🗃", "🗳", "🗄", "📋", "📁", "📂", "🗂", "🗞", "📰", "📓", "📔", "📒", "📕", "📗", "📘", "📙", "📚", "📖", "🔖", "🧷", "🔗", "📎", "🖇", "📐", "📏", "🧮", "📌", "📍", "✂", "🖊", "🖋", "✒", "🖌", "🖍", "📝", "✏", "🔍", "🔎", "🔏", "🔐", "🔒", "🔓" }, new String[]{ "❤", "🧡", "💛", "💚", "💙", "💜", "🖤", "🤍", "🤎", "💔", "❣", "💕", "💞", "💓", "💗", "💖", "💘", "💝", "💟", "☮", "✝", "☪", "🕉", "☸", "✡", "🔯", "🕎", "☯", "☦", "🛐", "⛎", "♈", "♉", "♊", "♋", "♌", "♍", "♎", "♏", "♐", "♑", "♒", "♓", "🆔", "⚛", "🉑", "☢", "☣", "📴", "📳", "🈶", "🈚", "🈸", "🈺", "🈷", "✴", "🆚", "💮", "🉐", "㊙", "㊗", "🈴", "🈵", "🈹", "🈲", "🅰", "🅱", "🆎", "🆑", "🅾", "🆘", "❌", "⭕", "🛑", "⛔", "📛", "🚫", "💯", "💢", "♨", "🚷", "🚯", "🚳", "🚱", "🔞", "📵", "🚭", "❗", "❕", "❓", "❔", "‼", "⁉", "🔅", "🔆", "〽", "⚠", "🚸", "🔱", "⚜", "🔰", "♻", "✅", "🈯", "💹", "❇", "✳", "❎", "🌐", "💠", "Ⓜ", "🌀", "💤", "🏧", "🚾", "♿", "🅿", "🈳", "🈂", "🛂", "🛃", "🛄", "🛅", "🚹", "🚺", "🚼", "🚻", "🚮", "🎦", "📶", "🈁", "🔣", "ℹ", "🔤", "🔡", "🔠", "🆖", "🆗", "🆙", "🆒", "🆕", "🆓", "0⃣", "1⃣", "2⃣", "3⃣", "4⃣", "5⃣", "6⃣", "7⃣", "8⃣", "9⃣", "🔟", "🔢", "#⃣", "*⃣", "⏏", "▶", "⏸", "⏯", "⏹", "⏺", "⏭", "⏮", "⏩", "⏪", "⏫", "⏬", "◀", "🔼", "🔽", "➡", "⬅", "⬆", "⬇", "↗", "↘", "↙", "↖", "↕", "↔", "↪", "↩", "⤴", "⤵", "🔀", "🔁", "🔂", "🔄", "🔃", "🎵", "🎶", "➕", "➖", "➗", "✖", "♾", "💲", "💱", "™", "©", "®", "👁‍🗨", "🔚", "🔙", "🔛", "🔝", "🔜", "〰", "➰", "➿", "✔", "☑", "🔘", "🔴", "🟠", "🟡", "🟢", "🔵", "🟣", "⚫", "⚪", "🟤", "🔺", "🔻", "🔸", "🔹", "🔶", "🔷", "🔳", "🔲", "▪", "▫", "◾", "◽", "◼", "◻", "🟥", "🟧", "🟨", "🟩", "🟦", "🟪", "⬛", "⬜", "🟫", "🔈", "🔇", "🔉", "🔊", "🔔", "🔕", "📣", "📢", "💬", "💭", "🗯", "♠", "♣", "♥", "♦", "🃏", "🎴", "🀄", "🕐", "🕑", "🕒", "🕓", "🕔", "🕕", "🕖", "🕗", "🕘", "🕙", "🕚", "🕛", "🕜", "🕝", "🕞", "🕟", "🕠", "🕡", "🕢", "🕣", "🕤", "🕥", "🕦", "🕧" diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/FileLoadOperation.java b/TMessagesProj/src/main/java/org/telegram/messenger/FileLoadOperation.java index 78ff13a47..36dd55a7a 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/FileLoadOperation.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/FileLoadOperation.java @@ -470,6 +470,10 @@ public class FileLoadOperation { } } + protected File getCacheFileFinal() { + return cacheFileFinal; + } + protected File getCurrentFile() { final CountDownLatch countDownLatch = new CountDownLatch(1); final File[] result = new File[1]; @@ -529,11 +533,14 @@ public class FileLoadOperation { return progress + getDownloadedLengthFromOffsetInternal(ranges, (int) (totalBytesCount * progress), totalBytesCount) / (float) totalBytesCount; } - protected int getDownloadedLengthFromOffset(final int offset, final int length) { + protected int[] getDownloadedLengthFromOffset(final int offset, final int length) { final CountDownLatch countDownLatch = new CountDownLatch(1); - final int[] result = new int[1]; + final int[] result = new int[2]; Utilities.stageQueue.postRunnable(() -> { result[0] = getDownloadedLengthFromOffsetInternal(notLoadedBytesRanges, offset, length); + if (state == stateFinished) { + result[1] = 1; + } countDownLatch.countDown(); }); try { @@ -541,7 +548,7 @@ public class FileLoadOperation { } catch (Exception ignore) { } - return result[0]; + return result; } public String getFileName() { @@ -917,8 +924,8 @@ public class FileLoadOperation { } if (!isPreloadVideoOperation && downloadedBytes != 0 && totalBytesCount > 0) { copyNotLoadedRanges(); - delegate.didChangedLoadProgress(FileLoadOperation.this, downloadedBytes, totalBytesCount); } + updateProgress(); try { fileOutputStream = new RandomAccessFile(cacheFileTemp, "rws"); if (downloadedBytes != 0) { @@ -954,6 +961,12 @@ public class FileLoadOperation { return true; } + public void updateProgress() { + if (delegate != null && downloadedBytes != totalBytesCount && totalBytesCount > 0) { + delegate.didChangedLoadProgress(FileLoadOperation.this, downloadedBytes, totalBytesCount); + } + } + public boolean isPaused() { return paused; } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/FileLoader.java b/TMessagesProj/src/main/java/org/telegram/messenger/FileLoader.java index 8843d3ee0..2f4c1862e 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/FileLoader.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/FileLoader.java @@ -19,7 +19,6 @@ import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; -import java.io.RandomAccessFile; import java.util.ArrayList; import java.util.HashMap; import java.util.LinkedList; @@ -592,6 +591,7 @@ public class FileLoader extends BaseController { } } } + operation.updateProgress(); return operation; } @@ -1029,13 +1029,13 @@ public class FileLoader extends BaseController { continue; } if (byMinSide) { - int currentSide = obj.h >= obj.w ? obj.w : obj.h; + int currentSide = Math.min(obj.h, obj.w); if (closestObject == null || side > 100 && closestObject.location != null && closestObject.location.dc_id == Integer.MIN_VALUE || obj instanceof TLRPC.TL_photoCachedSize || side > lastSide && lastSide < currentSide) { closestObject = obj; lastSide = currentSide; } } else { - int currentSide = obj.w >= obj.h ? obj.w : obj.h; + int currentSide = Math.max(obj.w, obj.h); if (closestObject == null || side > 100 && closestObject.location != null && closestObject.location.dc_id == Integer.MIN_VALUE || obj instanceof TLRPC.TL_photoCachedSize || currentSide <= side && lastSide < currentSide) { closestObject = obj; lastSide = currentSide; @@ -1247,45 +1247,4 @@ public class FileLoader extends BaseController { out.close(); return true; } - - public static long getTempFileSize(TLRPC.Document documentLocation, boolean encrypt) { - long location_id = documentLocation.id; - long datacenterId = documentLocation.dc_id; - - if (datacenterId == 0 || location_id == 0) { - return 0; - } - - String fileName = datacenterId + "_" + location_id + (encrypt ? ".temp.enc" : ".temp"); - String fileNameParts = datacenterId + "_" + location_id + ".pt"; - File f = new File(getDirectory(MEDIA_DIR_CACHE), fileName); - - long size = 0; - if (f.exists()) { - size = f.length(); - } - - if (size != 0) { - File cacheFileParts = new File(getDirectory(MEDIA_DIR_CACHE), fileNameParts); - try { - RandomAccessFile filePartsStream = new RandomAccessFile(cacheFileParts, "r"); - long len = filePartsStream.length(); - if (len % 8 == 4) { - len -= 4; - int count = filePartsStream.readInt(); - if (count <= len / 2) { - size = documentLocation.size; - for (int a = 0; a < count; a++) { - int start = filePartsStream.readInt(); - int end = filePartsStream.readInt(); - size -= end - start; - } - } - } - } catch (Exception e) { - FileLog.e(e); - } - } - return size; - } } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/FileRefController.java b/TMessagesProj/src/main/java/org/telegram/messenger/FileRefController.java index 68140bff9..ff27f212e 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/FileRefController.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/FileRefController.java @@ -25,6 +25,17 @@ public class FileRefController extends BaseController { private long firstQueryTime; } + private static class Waiter { + + private String locationKey; + private String parentKey; + + public Waiter(String loc, String parent) { + locationKey = loc; + parentKey = parent; + } + } + private HashMap> locationRequester = new HashMap<>(); private HashMap> parentRequester = new HashMap<>(); private HashMap responseCache = new HashMap<>(); @@ -32,6 +43,11 @@ public class FileRefController extends BaseController { private long lastCleanupTime = SystemClock.elapsedRealtime(); + private ArrayList wallpaperWaiters = new ArrayList<>(); + private ArrayList savedGifsWaiters = new ArrayList<>(); + private ArrayList recentStickersWaiter = new ArrayList<>(); + private ArrayList favStickersWaiter = new ArrayList<>(); + private static volatile FileRefController[] Instance = new FileRefController[UserConfig.MAX_ACCOUNT_COUNT]; public static FileRefController getInstance(int num) { @@ -263,6 +279,14 @@ public class FileRefController extends BaseController { requestReferenceFromServer(parentObject, locationKey, parentKey, args); } + private void broadcastWaitersData(ArrayList waiters, TLObject response) { + for (int a = 0, N = waiters.size(); a < N; a++) { + Waiter waiter = waiters.get(a); + onRequestComplete(waiter.locationKey, waiter.parentKey, response, a == N - 1); + } + waiters.clear(); + } + private void requestReferenceFromServer(Object parentObject, String locationKey, String parentKey, Object[] args) { if (parentObject instanceof MessageObject) { MessageObject messageObject = (MessageObject) parentObject; @@ -324,17 +348,29 @@ public class FileRefController extends BaseController { } else if (parentObject instanceof String) { String string = (String) parentObject; if ("wallpaper".equals(string)) { - TLRPC.TL_account_getWallPapers req = new TLRPC.TL_account_getWallPapers(); - getConnectionsManager().sendRequest(req, (response, error) -> onRequestComplete(locationKey, parentKey, response, true)); + if (wallpaperWaiters.isEmpty()) { + TLRPC.TL_account_getWallPapers req = new TLRPC.TL_account_getWallPapers(); + getConnectionsManager().sendRequest(req, (response, error) -> broadcastWaitersData(wallpaperWaiters, response)); + } + wallpaperWaiters.add(new Waiter(locationKey, parentKey)); } else if (string.startsWith("gif")) { - TLRPC.TL_messages_getSavedGifs req = new TLRPC.TL_messages_getSavedGifs(); - getConnectionsManager().sendRequest(req, (response, error) -> onRequestComplete(locationKey, parentKey, response, true)); + if (savedGifsWaiters.isEmpty()) { + TLRPC.TL_messages_getSavedGifs req = new TLRPC.TL_messages_getSavedGifs(); + getConnectionsManager().sendRequest(req, (response, error) -> broadcastWaitersData(savedGifsWaiters, response)); + } + savedGifsWaiters.add(new Waiter(locationKey, parentKey)); } else if ("recent".equals(string)) { - TLRPC.TL_messages_getRecentStickers req = new TLRPC.TL_messages_getRecentStickers(); - getConnectionsManager().sendRequest(req, (response, error) -> onRequestComplete(locationKey, parentKey, response, true)); + if (recentStickersWaiter.isEmpty()) { + TLRPC.TL_messages_getRecentStickers req = new TLRPC.TL_messages_getRecentStickers(); + getConnectionsManager().sendRequest(req, (response, error) -> broadcastWaitersData(recentStickersWaiter, response)); + } + recentStickersWaiter.add(new Waiter(locationKey, parentKey)); } else if ("fav".equals(string)) { - TLRPC.TL_messages_getFavedStickers req = new TLRPC.TL_messages_getFavedStickers(); - getConnectionsManager().sendRequest(req, (response, error) -> onRequestComplete(locationKey, parentKey, response, true)); + if (favStickersWaiter.isEmpty()) { + TLRPC.TL_messages_getFavedStickers req = new TLRPC.TL_messages_getFavedStickers(); + getConnectionsManager().sendRequest(req, (response, error) -> broadcastWaitersData(favStickersWaiter, response)); + } + favStickersWaiter.add(new Waiter(locationKey, parentKey)); } else if (string.startsWith("avatar_")) { int id = Utilities.parseInt(string); if (id > 0) { @@ -608,13 +644,13 @@ public class FileRefController extends BaseController { } } } - getMessagesStorage().replaceMessageIfExists(message, currentAccount, res.users, res.chats, false); + getMessagesStorage().replaceMessageIfExists(message, res.users, res.chats, false); } break; } } if (result == null) { - getMessagesStorage().replaceMessageIfExists(res.messages.get(0), currentAccount, res.users, res.chats,true); + getMessagesStorage().replaceMessageIfExists(res.messages.get(0), res.users, res.chats,true); if (BuildVars.DEBUG_VERSION) { FileLog.d("file ref not found in messages, replacing message"); } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/FileStreamLoadOperation.java b/TMessagesProj/src/main/java/org/telegram/messenger/FileStreamLoadOperation.java index 2a3413787..67ee8a0b5 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/FileStreamLoadOperation.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/FileStreamLoadOperation.java @@ -96,7 +96,7 @@ public class FileStreamLoadOperation extends BaseDataSource implements FileLoadO readLength = (int) bytesRemaining; } while (availableLength == 0 && opened) { - availableLength = loadOperation.getDownloadedLengthFromOffset(currentOffset, readLength); + availableLength = loadOperation.getDownloadedLengthFromOffset(currentOffset, readLength)[0]; if (availableLength == 0) { FileLoader.getInstance(currentAccount).loadStreamFile(this, document, parentObject, currentOffset, false); countDownLatch = new CountDownLatch(1); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/FileUploadOperation.java b/TMessagesProj/src/main/java/org/telegram/messenger/FileUploadOperation.java index 2a4add730..5e18f969b 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/FileUploadOperation.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/FileUploadOperation.java @@ -25,7 +25,7 @@ import java.util.ArrayList; public class FileUploadOperation { - private class UploadCachedResult { + private static class UploadCachedResult { private long bytesOffset; private byte[] iv; } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/FourierTransform.java b/TMessagesProj/src/main/java/org/telegram/messenger/FourierTransform.java new file mode 100644 index 000000000..1f9ee87bb --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/messenger/FourierTransform.java @@ -0,0 +1,565 @@ +package org.telegram.messenger; + +public abstract class FourierTransform { + protected static final int LINAVG = 1; + protected static final int LOGAVG = 2; + protected static final int NOAVG = 3; + + protected static final float TWO_PI = (float) (2 * Math.PI); + protected int timeSize; + protected int sampleRate; + protected float bandWidth; + protected float[] real; + protected float[] imag; + protected float[] spectrum; + protected float[] averages; + protected int whichAverage; + protected int octaves; + protected int avgPerOctave; + + /** + * Construct a FourierTransform that will analyze sample buffers that are + * ts samples long and contain samples with a sr + * sample rate. + * + * @param ts the length of the buffers that will be analyzed + * @param sr the sample rate of the samples that will be analyzed + */ + FourierTransform(int ts, float sr) { + timeSize = ts; + sampleRate = (int) sr; + bandWidth = (2f / timeSize) * ((float) sampleRate / 2f); + noAverages(); + allocateArrays(); + } + + // allocating real, imag, and spectrum are the responsibility of derived + // classes + // because the size of the arrays will depend on the implementation being used + // this enforces that responsibility + protected abstract void allocateArrays(); + + protected void setComplex(float[] r, float[] i) { + if (real.length != r.length && imag.length != i.length) { + } else { + System.arraycopy(r, 0, real, 0, r.length); + System.arraycopy(i, 0, imag, 0, i.length); + } + } + + // fill the spectrum array with the amps of the data in real and imag + // used so that this class can handle creating the average array + // and also do spectrum shaping if necessary + protected void fillSpectrum() { + for (int i = 0; i < spectrum.length; i++) { + spectrum[i] = (float) Math.sqrt(real[i] * real[i] + imag[i] * imag[i]); + } + + if (whichAverage == LINAVG) { + int avgWidth = (int) spectrum.length / averages.length; + for (int i = 0; i < averages.length; i++) { + float avg = 0; + int j; + for (j = 0; j < avgWidth; j++) { + int offset = j + i * avgWidth; + if (offset < spectrum.length) { + avg += spectrum[offset]; + } else { + break; + } + } + avg /= j + 1; + averages[i] = avg; + } + } else if (whichAverage == LOGAVG) { + for (int i = 0; i < octaves; i++) { + float lowFreq, hiFreq, freqStep; + if (i == 0) { + lowFreq = 0; + } else { + lowFreq = (sampleRate / 2) / (float) Math.pow(2, octaves - i); + } + hiFreq = (sampleRate / 2) / (float) Math.pow(2, octaves - i - 1); + freqStep = (hiFreq - lowFreq) / avgPerOctave; + float f = lowFreq; + for (int j = 0; j < avgPerOctave; j++) { + int offset = j + i * avgPerOctave; + averages[offset] = calcAvg(f, f + freqStep); + f += freqStep; + } + } + } + } + + /** + * Sets the object to not compute averages. + */ + public void noAverages() { + averages = new float[0]; + whichAverage = NOAVG; + } + + /** + * Sets the number of averages used when computing the spectrum and spaces the + * averages in a linear manner. In other words, each average band will be + * specSize() / numAvg bands wide. + * + * @param numAvg how many averages to compute + */ + public void linAverages(int numAvg) { + if (numAvg > spectrum.length / 2) { + return; + } else { + averages = new float[numAvg]; + } + whichAverage = LINAVG; + } + + /** + * Sets the number of averages used when computing the spectrum based on the + * minimum bandwidth for an octave and the number of bands per octave. For + * example, with audio that has a sample rate of 44100 Hz, + * logAverages(11, 1) will result in 12 averages, each + * corresponding to an octave, the first spanning 0 to 11 Hz. To ensure that + * each octave band is a full octave, the number of octaves is computed by + * dividing the Nyquist frequency by two, and then the result of that by two, + * and so on. This means that the actual bandwidth of the lowest octave may + * not be exactly the value specified. + * + * @param minBandwidth the minimum bandwidth used for an octave + * @param bandsPerOctave how many bands to split each octave into + */ + public void logAverages(int minBandwidth, int bandsPerOctave) { + float nyq = (float) sampleRate / 2f; + octaves = 1; + while ((nyq /= 2) > minBandwidth) { + octaves++; + } + avgPerOctave = bandsPerOctave; + averages = new float[octaves * bandsPerOctave]; + whichAverage = LOGAVG; + } + + /** + * Sets the window to use on the samples before taking the forward transform. + * If an invalid window is asked for, an error will be reported and the + * current window will not be changed. + * + * @param windowFunction + */ + + + /** + * Returns the length of the time domain signal expected by this transform. + * + * @return the length of the time domain signal expected by this transform + */ + public int timeSize() { + return timeSize; + } + + /** + * Returns the size of the spectrum created by this transform. In other words, + * the number of frequency bands produced by this transform. This is typically + * equal to timeSize()/2 + 1, see above for an explanation. + * + * @return the size of the spectrum + */ + public int specSize() { + return spectrum.length; + } + + /** + * Returns the amplitude of the requested frequency band. + * + * @param i the index of a frequency band + * @return the amplitude of the requested frequency band + */ + public float getBand(int i) { + if (i < 0) i = 0; + if (i > spectrum.length - 1) i = spectrum.length - 1; + return spectrum[i]; + } + + /** + * Returns the width of each frequency band in the spectrum (in Hz). It should + * be noted that the bandwidth of the first and last frequency bands is half + * as large as the value returned by this function. + * + * @return the width of each frequency band in Hz. + */ + public float getBandWidth() { + return bandWidth; + } + /** + * Sets the amplitude of the ith frequency band to + * a. You can use this to shape the spectrum before using + * inverse(). + * + * @param i the frequency band to modify + * @param a the new amplitude + */ + public abstract void setBand(int i, float a); + + /** + * Scales the amplitude of the ith frequency band + * by s. You can use this to shape the spectrum before using + * inverse(). + * + * @param i the frequency band to modify + * @param s the scaling factor + */ + public abstract void scaleBand(int i, float s); + + /** + * Returns the index of the frequency band that contains the requested + * frequency. + * + * @param freq the frequency you want the index for (in Hz) + * @return the index of the frequency band that contains freq + */ + public int freqToIndex(float freq) { + // special case: freq is lower than the bandwidth of spectrum[0] + if (freq < getBandWidth() / 2) return 0; + // special case: freq is within the bandwidth of spectrum[spectrum.length - 1] + if (freq > sampleRate / 2 - getBandWidth() / 2) return spectrum.length - 1; + // all other cases + float fraction = freq / (float) sampleRate; + int i = Math.round(timeSize * fraction); + return i; + } + + /** + * Returns the middle frequency of the ith band. + * + * @param i the index of the band you want to middle frequency of + */ + public float indexToFreq(int i) { + float bw = getBandWidth(); + // special case: the width of the first bin is half that of the others. + // so the center frequency is a quarter of the way. + if (i == 0) return bw * 0.25f; + // special case: the width of the last bin is half that of the others. + if (i == spectrum.length - 1) { + float lastBinBeginFreq = (sampleRate / 2) - (bw / 2); + float binHalfWidth = bw * 0.25f; + return lastBinBeginFreq + binHalfWidth; + } + // the center frequency of the ith band is simply i*bw + // because the first band is half the width of all others. + // treating it as if it wasn't offsets us to the middle + // of the band. + return i * bw; + } + + /** + * Calculate the average amplitude of the frequency band bounded by + * lowFreq and hiFreq, inclusive. + * + * @param lowFreq the lower bound of the band + * @param hiFreq the upper bound of the band + * @return the average of all spectrum values within the bounds + */ + public float calcAvg(float lowFreq, float hiFreq) { + int lowBound = freqToIndex(lowFreq); + int hiBound = freqToIndex(hiFreq); + float avg = 0; + for (int i = lowBound; i <= hiBound; i++) { + avg += spectrum[i]; + } + avg /= (hiBound - lowBound + 1); + return avg; + } + + /** + * Get the Real part of the Complex representation of the spectrum. + */ + public float[] getSpectrumReal() { + return real; + } + + /** + * Get the Imaginary part of the Complex representation of the spectrum. + */ + public float[] getSpectrumImaginary() { + return imag; + } + + + /** + * Performs a forward transform on buffer. + * + * @param buffer the buffer to analyze + */ + public abstract void forward(float[] buffer); + + /** + * Performs a forward transform on values in buffer. + * + * @param buffer the buffer of samples + * @param startAt the index to start at in the buffer. there must be at least timeSize() samples + * between the starting index and the end of the buffer. If there aren't, an + * error will be issued and the operation will not be performed. + */ + public void forward(float[] buffer, int startAt) { + if (buffer.length - startAt < timeSize) { + return; + } + + // copy the section of samples we want to analyze + float[] section = new float[timeSize]; + System.arraycopy(buffer, startAt, section, 0, section.length); + forward(section); + } + + /** + * Performs an inverse transform of the frequency spectrum and places the + * result in buffer. + * + * @param buffer the buffer to place the result of the inverse transform in + */ + public abstract void inverse(float[] buffer); + + + /** + * Performs an inverse transform of the frequency spectrum represented by + * freqReal and freqImag and places the result in buffer. + * + * @param freqReal the real part of the frequency spectrum + * @param freqImag the imaginary part the frequency spectrum + * @param buffer the buffer to place the inverse transform in + */ + public void inverse(float[] freqReal, float[] freqImag, float[] buffer) { + setComplex(freqReal, freqImag); + inverse(buffer); + } + + /** + * FFT stands for Fast Fourier Transform. It is an efficient way to calculate the Complex + * Discrete Fourier Transform. There is not much to say about this class other than the fact + * that when you want to analyze the spectrum of an audio buffer you will almost always use + * this class. One restriction of this class is that the audio buffers you want to analyzeV + * must have a length that is a power of two. If you try to construct an FFT with a + * timeSize that is not a power of two, an IllegalArgumentException will be + * thrown. + * + * @author Damien Di Fede + * @see FourierTransform + * @see The Fast Fourier Transform + */ + public static class FFT extends FourierTransform { + /** + * Constructs an FFT that will accept sample buffers that are + * timeSize long and have been recorded with a sample rate of + * sampleRate. timeSize must be a + * power of two. This will throw an exception if it is not. + * + * @param timeSize the length of the sample buffers you will be analyzing + * @param sampleRate the sample rate of the audio you will be analyzing + */ + public FFT(int timeSize, float sampleRate) { + super(timeSize, sampleRate); + if ((timeSize & (timeSize - 1)) != 0) + throw new IllegalArgumentException( + "FFT: timeSize must be a power of two."); + buildReverseTable(); + buildTrigTables(); + } + + protected void allocateArrays() { + spectrum = new float[timeSize / 2 + 1]; + real = new float[timeSize]; + imag = new float[timeSize]; + } + + public void scaleBand(int i, float s) { + if (s < 0) { + // Minim.error("Can't scale a frequency band by a negative value."); + return; + } + + real[i] *= s; + imag[i] *= s; + spectrum[i] *= s; + + if (i != 0 && i != timeSize / 2) { + real[timeSize - i] = real[i]; + imag[timeSize - i] = -imag[i]; + } + } + + public void setBand(int i, float a) { + if (a < 0) { + // Minim.error("Can't set a frequency band to a negative value."); + return; + } + if (real[i] == 0 && imag[i] == 0) { + real[i] = a; + spectrum[i] = a; + } else { + real[i] /= spectrum[i]; + imag[i] /= spectrum[i]; + spectrum[i] = a; + real[i] *= spectrum[i]; + imag[i] *= spectrum[i]; + } + if (i != 0 && i != timeSize / 2) { + real[timeSize - i] = real[i]; + imag[timeSize - i] = -imag[i]; + } + } + + // performs an in-place fft on the data in the real and imag arrays + // bit reversing is not necessary as the data will already be bit reversed + private void fft() { + for (int halfSize = 1; halfSize < real.length; halfSize *= 2) { + // float k = -(float)Math.PI/halfSize; + // phase shift step + // float phaseShiftStepR = (float)Math.cos(k); + // float phaseShiftStepI = (float)Math.sin(k); + // using lookup table + float phaseShiftStepR = cos(halfSize); + float phaseShiftStepI = sin(halfSize); + // current phase shift + float currentPhaseShiftR = 1.0f; + float currentPhaseShiftI = 0.0f; + for (int fftStep = 0; fftStep < halfSize; fftStep++) { + for (int i = fftStep; i < real.length; i += 2 * halfSize) { + int off = i + halfSize; + float tr = (currentPhaseShiftR * real[off]) - (currentPhaseShiftI * imag[off]); + float ti = (currentPhaseShiftR * imag[off]) + (currentPhaseShiftI * real[off]); + real[off] = real[i] - tr; + imag[off] = imag[i] - ti; + real[i] += tr; + imag[i] += ti; + } + float tmpR = currentPhaseShiftR; + currentPhaseShiftR = (tmpR * phaseShiftStepR) - (currentPhaseShiftI * phaseShiftStepI); + currentPhaseShiftI = (tmpR * phaseShiftStepI) + (currentPhaseShiftI * phaseShiftStepR); + } + } + } + + public void forward(float[] buffer) { + if (buffer.length != timeSize) { + // Minim.error("FFT.forward: The length of the passed sample buffer must be equal to timeSize()."); + return; + } + // doWindow(buffer); + // copy samples to real/imag in bit-reversed order + bitReverseSamples(buffer, 0); + // perform the fft + fft(); + // fill the spectrum buffer with amplitudes + fillSpectrum(); + } + + @Override + public void forward(float[] buffer, int startAt) { + if (buffer.length - startAt < timeSize) { + /* Minim.error( "FourierTransform.forward: not enough samples in the buffer between " + + startAt + " and " + buffer.length + " to perform a transform." + ); + */ + return; + } + + // windowFunction.apply( buffer, startAt, timeSize ); + bitReverseSamples(buffer, startAt); + fft(); + fillSpectrum(); + } + + /** + * Performs a forward transform on the passed buffers. + * + * @param buffReal the real part of the time domain signal to transform + * @param buffImag the imaginary part of the time domain signal to transform + */ + public void forward(float[] buffReal, float[] buffImag) { + if (buffReal.length != timeSize || buffImag.length != timeSize) { + // Minim.error("FFT.forward: The length of the passed buffers must be equal to timeSize()."); + return; + } + setComplex(buffReal, buffImag); + bitReverseComplex(); + fft(); + fillSpectrum(); + } + + public void inverse(float[] buffer) { + if (buffer.length > real.length) { + // Minim.error("FFT.inverse: the passed array's length must equal FFT.timeSize()."); + return; + } + // conjugate + for (int i = 0; i < timeSize; i++) { + imag[i] *= -1; + } + bitReverseComplex(); + fft(); + // copy the result in real into buffer, scaling as we do + for (int i = 0; i < buffer.length; i++) { + buffer[i] = real[i] / real.length; + } + } + + private int[] reverse; + + private void buildReverseTable() { + int N = timeSize; + reverse = new int[N]; + + // set up the bit reversing table + reverse[0] = 0; + for (int limit = 1, bit = N / 2; limit < N; limit <<= 1, bit >>= 1) + for (int i = 0; i < limit; i++) + reverse[i + limit] = reverse[i] + bit; + } + + // copies the values in the samples array into the real array + // in bit reversed order. the imag array is filled with zeros. + private void bitReverseSamples(float[] samples, int startAt) { + for (int i = 0; i < timeSize; ++i) { + real[i] = samples[startAt + reverse[i]]; + imag[i] = 0.0f; + } + } + + // bit reverse real[] and imag[] + private void bitReverseComplex() { + float[] revReal = new float[real.length]; + float[] revImag = new float[imag.length]; + for (int i = 0; i < real.length; i++) { + revReal[i] = real[reverse[i]]; + revImag[i] = imag[reverse[i]]; + } + real = revReal; + imag = revImag; + } + + // lookup tables + + private float[] sinlookup; + private float[] coslookup; + + private float sin(int i) { + return sinlookup[i]; + } + + private float cos(int i) { + return coslookup[i]; + } + + private void buildTrigTables() { + int N = timeSize; + sinlookup = new float[N]; + coslookup = new float[N]; + for (int i = 0; i < N; i++) { + sinlookup[i] = (float) Math.sin(-(float) Math.PI / i); + coslookup[i] = (float) Math.cos(-(float) Math.PI / i); + } + } + } +} + diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/ImageLoader.java b/TMessagesProj/src/main/java/org/telegram/messenger/ImageLoader.java index 65c07c975..377ec5ad5 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/ImageLoader.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/ImageLoader.java @@ -20,7 +20,6 @@ import android.graphics.drawable.BitmapDrawable; import androidx.exifinterface.media.ExifInterface; import android.graphics.drawable.Drawable; -import android.media.ThumbnailUtils; import android.net.Uri; import android.os.AsyncTask; import android.os.Build; @@ -671,11 +670,11 @@ public class ImageLoader { if (mediaType == FileLoader.MEDIA_DIR_IMAGE) { originalBitmap = ImageLoader.loadBitmap(originalPath.toString(), null, size, size, false); } else if (mediaType == FileLoader.MEDIA_DIR_VIDEO) { - originalBitmap = ThumbnailUtils.createVideoThumbnail(originalPath.toString(), info.big ? MediaStore.Video.Thumbnails.FULL_SCREEN_KIND : MediaStore.Video.Thumbnails.MINI_KIND); + originalBitmap = SendMessagesHelper.createVideoThumbnail(originalPath.toString(), info.big ? MediaStore.Video.Thumbnails.FULL_SCREEN_KIND : MediaStore.Video.Thumbnails.MINI_KIND); } else if (mediaType == FileLoader.MEDIA_DIR_DOCUMENT) { String path = originalPath.toString().toLowerCase(); if (path.endsWith("mp4")) { - originalBitmap = ThumbnailUtils.createVideoThumbnail(originalPath.toString(), info.big ? MediaStore.Video.Thumbnails.FULL_SCREEN_KIND : MediaStore.Video.Thumbnails.MINI_KIND); + originalBitmap = SendMessagesHelper.createVideoThumbnail(originalPath.toString(), info.big ? MediaStore.Video.Thumbnails.FULL_SCREEN_KIND : MediaStore.Video.Thumbnails.MINI_KIND); } else if (path.endsWith(".jpg") || path.endsWith(".jpeg") || path.endsWith(".png") || path.endsWith(".gif")) { originalBitmap = ImageLoader.loadBitmap(path, null, size, size, false); } @@ -1265,10 +1264,18 @@ public class ImageLoader { Bitmap scaledBitmap; if (bitmapW > bitmapH && w_filter > h_filter) { float scaleFactor = bitmapW / w_filter; - scaledBitmap = Bitmaps.createScaledBitmap(image, (int) w_filter, (int) (bitmapH / scaleFactor), true); + if (scaleFactor > 1) { + scaledBitmap = Bitmaps.createScaledBitmap(image, (int) w_filter, (int) (bitmapH / scaleFactor), true); + } else { + scaledBitmap = image; + } } else { float scaleFactor = bitmapH / h_filter; - scaledBitmap = Bitmaps.createScaledBitmap(image, (int) (bitmapW / scaleFactor), (int) h_filter, true); + if (scaleFactor > 1) { + scaledBitmap = Bitmaps.createScaledBitmap(image, (int) (bitmapW / scaleFactor), (int) h_filter, true); + } else { + scaledBitmap = image; + } } if (image != scaledBitmap) { image.recycle(); @@ -1696,7 +1703,7 @@ public class ImageLoader { public void fileLoadProgressChanged(final String location, long uploadedSize, long totalSize) { fileProgresses.put(location, new long[]{uploadedSize, totalSize}); long currentTime = System.currentTimeMillis(); - if (lastProgressUpdateTime == 0 || lastProgressUpdateTime < currentTime - 500) { + if (lastProgressUpdateTime == 0 || lastProgressUpdateTime < currentTime - 500 || uploadedSize == 0) { lastProgressUpdateTime = currentTime; AndroidUtilities.runOnUIThread(() -> NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.FileLoadProgressChanged, location, uploadedSize, totalSize)); } @@ -1857,17 +1864,17 @@ public class ImageLoader { File srcFile = null; File dstFile = null; if (type == FileLoader.MEDIA_DIR_IMAGE) { - srcFile = new File(from, "000000000_999999_temp.jpg"); - dstFile = new File(to, "000000000_999999.jpg"); + srcFile = new File(from, "000000000_999999_temp.f"); + dstFile = new File(to, "000000000_999999.f"); } else if (type == FileLoader.MEDIA_DIR_DOCUMENT) { - srcFile = new File(from, "000000000_999999_temp.doc"); - dstFile = new File(to, "000000000_999999.doc"); + srcFile = new File(from, "000000000_999999_temp.f"); + dstFile = new File(to, "000000000_999999.f"); } else if (type == FileLoader.MEDIA_DIR_AUDIO) { - srcFile = new File(from, "000000000_999999_temp.ogg"); - dstFile = new File(to, "000000000_999999.ogg"); + srcFile = new File(from, "000000000_999999_temp.f"); + dstFile = new File(to, "000000000_999999.f"); } else if (type == FileLoader.MEDIA_DIR_VIDEO) { - srcFile = new File(from, "000000000_999999_temp.mp4"); - dstFile = new File(to, "000000000_999999.mp4"); + srcFile = new File(from, "000000000_999999_temp.f"); + dstFile = new File(to, "000000000_999999.f"); } byte[] buffer = new byte[1024]; srcFile.createNewFile(); @@ -2288,7 +2295,7 @@ public class ImageLoader { boolean isEncrypted = imageLocation.isEncrypted(); CacheImage img = new CacheImage(); if (!currentKeyQuality) { - if (MessageObject.isGifDocument(imageLocation.webFile) || MessageObject.isGifDocument(imageLocation.document) || MessageObject.isRoundVideoDocument(imageLocation.document)) { + if (imageLocation.imageType == FileLoader.IMAGE_TYPE_ANIMATION || MessageObject.isGifDocument(imageLocation.webFile) || MessageObject.isGifDocument(imageLocation.document) || MessageObject.isRoundVideoDocument(imageLocation.document)) { img.imageType = FileLoader.IMAGE_TYPE_ANIMATION; } else if (imageLocation.path != null) { String location = imageLocation.path; @@ -2546,17 +2553,38 @@ public class ImageLoader { imageKey = null; thumbKey = null; mediaKey = null; - String ext = imageReceiver.getExt(); - if (ext == null) { - ext = "jpg"; + String imageExt; + if (imageLocation != null && imageLocation.imageType == FileLoader.IMAGE_TYPE_ANIMATION) { + imageExt = "mp4"; + } else { + imageExt = null; + } + String mediaExt; + if (mediaLocation != null && mediaLocation.imageType == FileLoader.IMAGE_TYPE_ANIMATION) { + mediaExt = "mp4"; + } else { + mediaExt = null; + } + String thumbExt = imageReceiver.getExt(); + if (thumbExt == null) { + thumbExt = "jpg"; + } + if (imageExt == null) { + imageExt = thumbExt; + } + if (mediaExt == null) { + mediaExt = thumbExt; } for (int a = 0; a < 2; a++) { ImageLocation object; + String ext; if (a == 0) { object = imageLocation; + ext = imageExt; } else { object = mediaLocation; + ext = mediaExt; } if (object == null) { continue; @@ -2633,9 +2661,9 @@ public class ImageLoader { if (thumbLocation.path != null) { thumbUrl = thumbUrl + "." + getHttpUrlExtension(thumbLocation.path, "jpg"); } else if (thumbLocation.photoSize instanceof TLRPC.TL_photoStrippedSize) { - thumbUrl = thumbUrl + "." + ext; + thumbUrl = thumbUrl + "." + thumbExt; } else if (thumbLocation.location != null) { - thumbUrl = thumbUrl + "." + ext; + thumbUrl = thumbUrl + "." + thumbExt; } } @@ -2650,8 +2678,8 @@ public class ImageLoader { } if (imageLocation != null && imageLocation.path != null) { - createLoadOperationForImageReceiver(imageReceiver, thumbKey, thumbUrl, ext, thumbLocation, thumbFilter, 0, 1, ImageReceiver.TYPE_THUMB, thumbSet ? 2 : 1, guid); - createLoadOperationForImageReceiver(imageReceiver, imageKey, imageUrl, ext, imageLocation, imageFilter, imageReceiver.getSize(), 1, ImageReceiver.TYPE_IMAGE, 0, guid); + createLoadOperationForImageReceiver(imageReceiver, thumbKey, thumbUrl, thumbExt, thumbLocation, thumbFilter, 0, 1, ImageReceiver.TYPE_THUMB, thumbSet ? 2 : 1, guid); + createLoadOperationForImageReceiver(imageReceiver, imageKey, imageUrl, imageExt, imageLocation, imageFilter, imageReceiver.getSize(), 1, ImageReceiver.TYPE_IMAGE, 0, guid); } else if (mediaLocation != null) { int mediaCacheType = imageReceiver.getCacheType(); int imageCacheType = 1; @@ -2660,20 +2688,20 @@ public class ImageLoader { } int thumbCacheType = mediaCacheType == 0 ? 1 : mediaCacheType; if (!thumbSet) { - createLoadOperationForImageReceiver(imageReceiver, thumbKey, thumbUrl, ext, thumbLocation, thumbFilter, 0, thumbCacheType, ImageReceiver.TYPE_THUMB, thumbSet ? 2 : 1, guid); + createLoadOperationForImageReceiver(imageReceiver, thumbKey, thumbUrl, thumbExt, thumbLocation, thumbFilter, 0, thumbCacheType, ImageReceiver.TYPE_THUMB, thumbSet ? 2 : 1, guid); } if (!imageSet) { - createLoadOperationForImageReceiver(imageReceiver, imageKey, imageUrl, ext, imageLocation, imageFilter, 0, imageCacheType, ImageReceiver.TYPE_IMAGE, 0, guid); + createLoadOperationForImageReceiver(imageReceiver, imageKey, imageUrl, imageExt, imageLocation, imageFilter, 0, imageCacheType, ImageReceiver.TYPE_IMAGE, 0, guid); } - createLoadOperationForImageReceiver(imageReceiver, mediaKey, mediaUrl, ext, mediaLocation, mediaFilter, imageReceiver.getSize(), mediaCacheType, ImageReceiver.TYPE_MEDIA, 0, guid); + createLoadOperationForImageReceiver(imageReceiver, mediaKey, mediaUrl, mediaExt, mediaLocation, mediaFilter, imageReceiver.getSize(), mediaCacheType, ImageReceiver.TYPE_MEDIA, 0, guid); } else { int imageCacheType = imageReceiver.getCacheType(); if (imageCacheType == 0 && saveImageToCache) { imageCacheType = 1; } int thumbCacheType = imageCacheType == 0 ? 1 : imageCacheType; - createLoadOperationForImageReceiver(imageReceiver, thumbKey, thumbUrl, ext, thumbLocation, thumbFilter, 0, thumbCacheType, ImageReceiver.TYPE_THUMB, thumbSet ? 2 : 1, guid); - createLoadOperationForImageReceiver(imageReceiver, imageKey, imageUrl, ext, imageLocation, imageFilter, imageReceiver.getSize(), imageCacheType, ImageReceiver.TYPE_IMAGE, 0, guid); + createLoadOperationForImageReceiver(imageReceiver, thumbKey, thumbUrl, thumbExt, thumbLocation, thumbFilter, 0, thumbCacheType, ImageReceiver.TYPE_THUMB, thumbSet ? 2 : 1, guid); + createLoadOperationForImageReceiver(imageReceiver, imageKey, imageUrl, imageExt, imageLocation, imageFilter, imageReceiver.getSize(), imageCacheType, ImageReceiver.TYPE_IMAGE, 0, guid); } } @@ -2982,6 +3010,14 @@ public class ImageLoader { } } + scaleFactor /= bmOptions.inSampleSize; + if (scaleFactor > 1) { + if (matrix == null) { + matrix = new Matrix(); + } + matrix.postScale(1.0f / scaleFactor, 1.0f / scaleFactor); + } + Bitmap b = null; if (path != null) { try { @@ -3061,7 +3097,7 @@ public class ImageLoader { } } - private static TLRPC.PhotoSize scaleAndSaveImageInternal(TLRPC.PhotoSize photoSize, Bitmap bitmap, int w, int h, float photoW, float photoH, float scaleFactor, int quality, boolean cache, boolean scaleAnyway, boolean forceCacheDir) throws Exception { + private static TLRPC.PhotoSize scaleAndSaveImageInternal(TLRPC.PhotoSize photoSize, Bitmap bitmap, Bitmap.CompressFormat compressFormat, int w, int h, float photoW, float photoH, float scaleFactor, int quality, boolean cache, boolean scaleAnyway, boolean forceCacheDir) throws Exception { Bitmap scaledBitmap; if (scaleFactor > 1 || scaleAnyway) { scaledBitmap = Bitmaps.createScaledBitmap(bitmap, w, h, true); @@ -3106,10 +3142,10 @@ public class ImageLoader { } final File cacheFile = new File(fileDir, fileName); FileOutputStream stream = new FileOutputStream(cacheFile); - scaledBitmap.compress(Bitmap.CompressFormat.JPEG, quality, stream); + scaledBitmap.compress(compressFormat, quality, stream); if (cache) { ByteArrayOutputStream stream2 = new ByteArrayOutputStream(); - scaledBitmap.compress(Bitmap.CompressFormat.JPEG, quality, stream2); + scaledBitmap.compress(compressFormat, quality, stream2); photoSize.bytes = stream2.toByteArray(); photoSize.size = photoSize.bytes.length; stream2.close(); @@ -3125,18 +3161,22 @@ public class ImageLoader { } public static TLRPC.PhotoSize scaleAndSaveImage(Bitmap bitmap, float maxWidth, float maxHeight, int quality, boolean cache) { - return scaleAndSaveImage(null, bitmap, maxWidth, maxHeight, quality, cache, 0, 0, false); + return scaleAndSaveImage(null, bitmap, Bitmap.CompressFormat.JPEG, maxWidth, maxHeight, quality, cache, 0, 0, false); } public static TLRPC.PhotoSize scaleAndSaveImage(TLRPC.PhotoSize photoSize, Bitmap bitmap, float maxWidth, float maxHeight, int quality, boolean cache, boolean forceCacheDir) { - return scaleAndSaveImage(photoSize, bitmap, maxWidth, maxHeight, quality, cache, 0, 0, forceCacheDir); + return scaleAndSaveImage(photoSize, bitmap, Bitmap.CompressFormat.JPEG, maxWidth, maxHeight, quality, cache, 0, 0, forceCacheDir); } public static TLRPC.PhotoSize scaleAndSaveImage(Bitmap bitmap, float maxWidth, float maxHeight, int quality, boolean cache, int minWidth, int minHeight) { - return scaleAndSaveImage(null, bitmap, maxWidth, maxHeight, quality, cache, minWidth, minHeight, false); + return scaleAndSaveImage(null, bitmap, Bitmap.CompressFormat.JPEG, maxWidth, maxHeight, quality, cache, minWidth, minHeight, false); } - public static TLRPC.PhotoSize scaleAndSaveImage(TLRPC.PhotoSize photoSize, Bitmap bitmap, float maxWidth, float maxHeight, int quality, boolean cache, int minWidth, int minHeight, boolean forceCacheDir) { + public static TLRPC.PhotoSize scaleAndSaveImage(Bitmap bitmap, Bitmap.CompressFormat compressFormat, float maxWidth, float maxHeight, int quality, boolean cache, int minWidth, int minHeight) { + return scaleAndSaveImage(null, bitmap, compressFormat, maxWidth, maxHeight, quality, cache, minWidth, minHeight, false); + } + + public static TLRPC.PhotoSize scaleAndSaveImage(TLRPC.PhotoSize photoSize, Bitmap bitmap, Bitmap.CompressFormat compressFormat, float maxWidth, float maxHeight, int quality, boolean cache, int minWidth, int minHeight, boolean forceCacheDir) { if (bitmap == null) { return null; } @@ -3164,13 +3204,13 @@ public class ImageLoader { } try { - return scaleAndSaveImageInternal(photoSize, bitmap, w, h, photoW, photoH, scaleFactor, quality, cache, scaleAnyway, forceCacheDir); + return scaleAndSaveImageInternal(photoSize, bitmap, compressFormat, w, h, photoW, photoH, scaleFactor, quality, cache, scaleAnyway, forceCacheDir); } catch (Throwable e) { FileLog.e(e); ImageLoader.getInstance().clearMemory(); System.gc(); try { - return scaleAndSaveImageInternal(photoSize, bitmap, w, h, photoW, photoH, scaleFactor, quality, cache, scaleAnyway, forceCacheDir); + return scaleAndSaveImageInternal(photoSize, bitmap, compressFormat, w, h, photoW, photoH, scaleFactor, quality, cache, scaleAnyway, forceCacheDir); } catch (Throwable e2) { FileLog.e(e2); return null; diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/ImageLocation.java b/TMessagesProj/src/main/java/org/telegram/messenger/ImageLocation.java index 6a02fb8e0..04a919873 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/ImageLocation.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/ImageLocation.java @@ -168,6 +168,15 @@ public class ImageLocation { return imageLocation; } + public static ImageLocation getForDocument(TLRPC.TL_videoSize videoSize, TLRPC.Document document) { + if (videoSize == null || document == null) { + return null; + } + ImageLocation location = getForPhoto(videoSize.location, videoSize.size, null, document, null, false, document.dc_id, null, videoSize.type); + location.imageType = FileLoader.IMAGE_TYPE_ANIMATION; + return location; + } + public static ImageLocation getForDocument(TLRPC.PhotoSize photoSize, TLRPC.Document document) { if (photoSize instanceof TLRPC.TL_photoStrippedSize) { ImageLocation imageLocation = new ImageLocation(); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/ImageReceiver.java b/TMessagesProj/src/main/java/org/telegram/messenger/ImageReceiver.java index 0b33e9582..f33128e4d 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/ImageReceiver.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/ImageReceiver.java @@ -124,6 +124,8 @@ public class ImageReceiver implements NotificationCenter.NotificationCenterDeleg private final static int TYPE_CROSSFDADE = 2; public final static int TYPE_MEDIA = 3; + public final static int DEFAULT_CROSSFADE_DURATION = 150; + private int currentAccount; private View parentView; @@ -174,6 +176,7 @@ public class ImageReceiver implements NotificationCenter.NotificationCenterDeleg private int currentSize; private int currentCacheType; private boolean allowStartAnimation = true; + private boolean allowStartLottieAnimation = true; private boolean useSharedAnimationQueue; private boolean allowDecodeSingleFrame; private int autoRepeat = 1; @@ -191,7 +194,7 @@ public class ImageReceiver implements NotificationCenter.NotificationCenterDeleg private boolean currentKeyQuality; private boolean invalidateAll; - private int imageX, imageY, imageW, imageH; + private float imageX, imageY, imageW, imageH; private float sideClip; private RectF drawRegion = new RectF(); private boolean isVisible = true; @@ -199,6 +202,7 @@ public class ImageReceiver implements NotificationCenter.NotificationCenterDeleg private boolean forcePreview; private boolean forceCrossfade; private int[] roundRadius = new int[4]; + private boolean isRoundRect; private Paint roundPaint; private RectF roundRect = new RectF(); @@ -217,6 +221,11 @@ public class ImageReceiver implements NotificationCenter.NotificationCenterDeleg private boolean crossfadeWithThumb; private ColorFilter colorFilter; private boolean isRoundVideo; + private long startTime; + private long endTime; + private int crossfadeDuration = DEFAULT_CROSSFADE_DURATION; + private float pressedProgress; + private int animateFromIsPressed; public ImageReceiver() { this(null); @@ -322,7 +331,7 @@ public class ImageReceiver implements NotificationCenter.NotificationCenterDeleg if (invalidateAll) { parentView.invalidate(); } else { - parentView.invalidate(imageX, imageY, imageX + imageW, imageY + imageH); + parentView.invalidate((int) imageX, (int) imageY, (int) (imageX + imageW), (int) (imageY + imageH)); } } if (delegate != null) { @@ -358,7 +367,7 @@ public class ImageReceiver implements NotificationCenter.NotificationCenterDeleg if (delegate != null) { delegate.didSetImage(this, currentImageDrawable != null || currentThumbDrawable != null || staticThumbDrawable != null || currentMediaDrawable != null, currentImageDrawable == null && currentMediaDrawable == null, false); } - if (!canceledLoading && !forcePreview) { + if (!canceledLoading) { return; } } @@ -376,7 +385,20 @@ public class ImageReceiver implements NotificationCenter.NotificationCenterDeleg } if (crossfadeWithOldImage) { - if (currentImageDrawable != null) { + if (currentMediaDrawable != null) { + if (currentMediaDrawable instanceof AnimatedFileDrawable) { + ((AnimatedFileDrawable) currentMediaDrawable).stop(); + } + recycleBitmap(thumbKey, TYPE_THUMB); + recycleBitmap(null, TYPE_CROSSFDADE); + recycleBitmap(mediaKey, TYPE_IMAGE); + crossfadeImage = currentMediaDrawable; + crossfadeShader = mediaShader; + crossfadeKey = currentImageKey; + crossfadingWithThumb = false; + currentMediaDrawable = null; + currentMediaKey = null; + } else if (currentImageDrawable != null) { recycleBitmap(thumbKey, TYPE_THUMB); recycleBitmap(null, TYPE_CROSSFDADE); recycleBitmap(mediaKey, TYPE_MEDIA); @@ -451,7 +473,7 @@ public class ImageReceiver implements NotificationCenter.NotificationCenterDeleg if (invalidateAll) { parentView.invalidate(); } else { - parentView.invalidate(imageX, imageY, imageX + imageW, imageY + imageH); + parentView.invalidate((int)imageX, (int) imageY, (int) (imageX + imageW), (int) (imageY + imageH)); } } @@ -570,7 +592,7 @@ public class ImageReceiver implements NotificationCenter.NotificationCenterDeleg } else if (bitmap instanceof RLottieDrawable) { RLottieDrawable fileDrawable = (RLottieDrawable) bitmap; fileDrawable.addParentView(parentView); - if (currentOpenedLayerFlags == 0) { + if (allowStartLottieAnimation && currentOpenedLayerFlags == 0) { fileDrawable.start(); } fileDrawable.setAllowDecodeSingleFrame(true); @@ -610,7 +632,7 @@ public class ImageReceiver implements NotificationCenter.NotificationCenterDeleg if (invalidateAll) { parentView.invalidate(); } else { - parentView.invalidate(imageX, imageY, imageX + imageW, imageY + imageH); + parentView.invalidate((int)imageX, (int) imageY, (int) (imageX + imageW), (int) (imageY + imageH)); } } if (forceCrossfade && crossfadeWithOldImage && crossfadeImage != null) { @@ -687,6 +709,9 @@ public class ImageReceiver implements NotificationCenter.NotificationCenterDeleg thumbShader = null; } clearImage(); + if (isPressed == 0) { + pressedProgress = 0f; + } } private boolean setBackupImage() { @@ -696,7 +721,7 @@ public class ImageReceiver implements NotificationCenter.NotificationCenterDeleg setImage(temp.mediaLocation, temp.mediaFilter, temp.imageLocation, temp.imageFilter, temp.thumbLocation, temp.thumbFilter, temp.thumb, temp.size, temp.ext, temp.parentObject, temp.cacheType); temp.clear(); setImageBackup = temp; - if (currentOpenedLayerFlags == 0) { + if (allowStartLottieAnimation && currentOpenedLayerFlags == 0) { RLottieDrawable lottieDrawable = getLottieAnimation(); if (lottieDrawable != null) { lottieDrawable.start(); @@ -716,7 +741,7 @@ public class ImageReceiver implements NotificationCenter.NotificationCenterDeleg if (setBackupImage()) { return true; } - if (currentOpenedLayerFlags == 0) { + if (allowStartLottieAnimation && currentOpenedLayerFlags == 0) { RLottieDrawable lottieDrawable = getLottieAnimation(); if (lottieDrawable != null) { lottieDrawable.start(); @@ -726,6 +751,28 @@ public class ImageReceiver implements NotificationCenter.NotificationCenterDeleg } private void drawDrawable(Canvas canvas, Drawable drawable, int alpha, BitmapShader shader, int orientation) { + if (isPressed == 0 && pressedProgress != 0) { + pressedProgress -= 16 / 150f; + if (pressedProgress < 0) { + pressedProgress = 0; + } + if (parentView != null) { + parentView.invalidate(); + } + } + if (isPressed != 0) { + pressedProgress = 1f; + animateFromIsPressed = isPressed; + } + if (pressedProgress == 0 || pressedProgress == 1f) { + drawDrawable(canvas, drawable, alpha, shader, orientation, isPressed); + } else { + drawDrawable(canvas, drawable, alpha, shader, orientation, isPressed); + drawDrawable(canvas, drawable, (int) (alpha * pressedProgress), shader, orientation, animateFromIsPressed); + } + } + + private void drawDrawable(Canvas canvas, Drawable drawable, int alpha, BitmapShader shader, int orientation, int isPressed) { if (drawable instanceof BitmapDrawable) { BitmapDrawable bitmapDrawable = (BitmapDrawable) drawable; @@ -805,14 +852,18 @@ public class ImageReceiver implements NotificationCenter.NotificationCenterDeleg roundPaint.setAlpha(alpha); roundRect.set(drawRegion); - for (int a = 0; a < roundRadius.length; a++) { - radii[a * 2] = roundRadius[a]; - radii[a * 2 + 1] = roundRadius[a]; + if (isRoundRect) { + canvas.drawRoundRect(roundRect,roundRadius[0], roundRadius[0],roundPaint); + } else { + for (int a = 0; a < roundRadius.length; a++) { + radii[a * 2] = roundRadius[a]; + radii[a * 2 + 1] = roundRadius[a]; + } + roundPath.reset(); + roundPath.addRoundRect(roundRect, radii, Path.Direction.CW); + roundPath.close(); + canvas.drawPath(roundPath, roundPaint); } - roundPath.reset(); - roundPath.addRoundRect(roundRect, radii, Path.Direction.CW); - roundPath.close(); - canvas.drawPath(roundPath, roundPaint); } } else { roundPaint.setShader(shader); @@ -851,14 +902,18 @@ public class ImageReceiver implements NotificationCenter.NotificationCenterDeleg shader.setLocalMatrix(shaderMatrix); roundPaint.setAlpha(alpha); - for (int a = 0; a < roundRadius.length; a++) { - radii[a * 2] = roundRadius[a]; - radii[a * 2 + 1] = roundRadius[a]; + if (isRoundRect) { + canvas.drawRoundRect(roundRect,roundRadius[0], roundRadius[0],roundPaint); + } else { + for (int a = 0; a < roundRadius.length; a++) { + radii[a * 2] = roundRadius[a]; + radii[a * 2 + 1] = roundRadius[a]; + } + roundPath.reset(); + roundPath.addRoundRect(roundRect, radii, Path.Direction.CW); + roundPath.close(); + canvas.drawPath(roundPath, roundPaint); } - roundPath.reset(); - roundPath.addRoundRect(roundRect, radii, Path.Direction.CW); - roundPath.close(); - canvas.drawPath(roundPath, roundPaint); } } } else { @@ -1002,7 +1057,7 @@ public class ImageReceiver implements NotificationCenter.NotificationCenterDeleg if (dt > 18) { dt = 18; } - currentAlpha += dt / 150.0f; + currentAlpha += dt / (float) crossfadeDuration; if (currentAlpha > 1) { currentAlpha = 1; if (crossfadeImage != null) { @@ -1016,7 +1071,7 @@ public class ImageReceiver implements NotificationCenter.NotificationCenterDeleg if (invalidateAll) { parentView.invalidate(); } else { - parentView.invalidate(imageX, imageY, imageX + imageW, imageY + imageH); + parentView.invalidate((int)imageX, (int) imageY, (int) (imageX + imageW), (int) (imageY + imageH)); } } } @@ -1262,7 +1317,7 @@ public class ImageReceiver implements NotificationCenter.NotificationCenterDeleg if (invalidateAll) { parentView.invalidate(); } else { - parentView.invalidate(imageX, imageY, imageX + imageW, imageY + imageH); + parentView.invalidate((int) imageX, (int) imageY, (int) (imageX + imageW), (int) (imageY + imageH)); } } } @@ -1329,7 +1384,7 @@ public class ImageReceiver implements NotificationCenter.NotificationCenterDeleg imageW = width; } - public void setImageCoords(int x, int y, int width, int height) { + public void setImageCoords(float x, float y, float width, float height) { imageX = x; imageY = y; imageW = width; @@ -1348,27 +1403,27 @@ public class ImageReceiver implements NotificationCenter.NotificationCenterDeleg return imageY + imageH / 2.0f; } - public int getImageX() { + public float getImageX() { return imageX; } - public int getImageX2() { + public float getImageX2() { return imageX + imageW; } - public int getImageY() { + public float getImageY() { return imageY; } - public int getImageY2() { + public float getImageY2() { return imageY + imageH; } - public int getImageWidth() { + public float getImageWidth() { return imageW; } - public int getImageHeight() { + public float getImageHeight() { return imageH; } @@ -1458,14 +1513,18 @@ public class ImageReceiver implements NotificationCenter.NotificationCenterDeleg public void setRoundRadius(int[] value) { boolean changed = false; + int firstValue = value[0]; + isRoundRect = true; for (int a = 0; a < roundRadius.length; a++) { if (roundRadius[a] != value[a]) { changed = true; - break; } + if (firstValue != value[a]) { + isRoundRect = false; + } + roundRadius[a] = value[a]; } if (changed) { - System.arraycopy(value, 0, roundRadius, 0, roundRadius.length); if (currentImageDrawable != null && imageShader == null) { updateDrawableRadius(currentImageDrawable); } @@ -1534,6 +1593,10 @@ public class ImageReceiver implements NotificationCenter.NotificationCenterDeleg allowStartAnimation = value; } + public void setAllowStartLottieAnimation(boolean value) { + allowStartLottieAnimation = value; + } + public void setAllowDecodeSingleFrame(boolean value) { allowDecodeSingleFrame = value; } @@ -1640,6 +1703,8 @@ public class ImageReceiver implements NotificationCenter.NotificationCenterDeleg } if (!(drawable instanceof AnimatedFileDrawable)) { ImageLoader.getInstance().incrementUseCount(currentImageKey); + } else { + ((AnimatedFileDrawable) drawable).setStartEndTime(startTime, endTime); } currentImageDrawable = drawable; if (drawable instanceof ExtendedBitmapDrawable) { @@ -1668,6 +1733,8 @@ public class ImageReceiver implements NotificationCenter.NotificationCenterDeleg } if (!(drawable instanceof AnimatedFileDrawable)) { ImageLoader.getInstance().incrementUseCount(currentMediaKey); + } else { + ((AnimatedFileDrawable) drawable).setStartEndTime(startTime, endTime); } currentMediaDrawable = drawable; updateDrawableRadius(drawable); @@ -1735,7 +1802,7 @@ public class ImageReceiver implements NotificationCenter.NotificationCenterDeleg } else if (drawable instanceof RLottieDrawable) { RLottieDrawable fileDrawable = (RLottieDrawable) drawable; fileDrawable.addParentView(parentView); - if (currentOpenedLayerFlags == 0) { + if (allowStartLottieAnimation && currentOpenedLayerFlags == 0) { fileDrawable.start(); } fileDrawable.setAllowDecodeSingleFrame(true); @@ -1746,12 +1813,21 @@ public class ImageReceiver implements NotificationCenter.NotificationCenterDeleg if (invalidateAll) { parentView.invalidate(); } else { - parentView.invalidate(imageX, imageY, imageX + imageW, imageY + imageH); + parentView.invalidate((int) imageX, (int) imageY, (int) (imageX + imageW), (int) (imageY + imageH)); } } return true; } + public void setMediaStartEndTime(long startTime, long endTime) { + this.startTime = startTime; + this.endTime = endTime; + + if (currentMediaDrawable instanceof AnimatedFileDrawable) { + ((AnimatedFileDrawable) currentMediaDrawable).setStartEndTime(startTime, endTime); + } + } + private void recycleBitmap(String newKey, int type) { String key; Drawable image; @@ -1816,6 +1892,10 @@ public class ImageReceiver implements NotificationCenter.NotificationCenterDeleg } } + public void setCrossfadeDuration(int duration) { + crossfadeDuration = duration; + } + @Override public void didReceivedNotification(int id, int account, Object... args) { if (id == NotificationCenter.didReplacedPhotoInMemCache) { @@ -1861,7 +1941,7 @@ public class ImageReceiver implements NotificationCenter.NotificationCenterDeleg currentOpenedLayerFlags &=~ layer; if (currentOpenedLayerFlags == 0) { RLottieDrawable lottieDrawable = getLottieAnimation(); - if (lottieDrawable != null) { + if (allowStartLottieAnimation && lottieDrawable != null) { lottieDrawable.start(); } } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/MediaController.java b/TMessagesProj/src/main/java/org/telegram/messenger/MediaController.java index c149e5d6d..c5972b7fe 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/MediaController.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/MediaController.java @@ -63,6 +63,7 @@ import org.telegram.tgnet.ConnectionsManager; import org.telegram.tgnet.TLRPC; import org.telegram.ui.ActionBar.AlertDialog; import org.telegram.ui.ActionBar.BaseFragment; +import org.telegram.ui.ActionBar.Theme; import org.telegram.ui.ChatActivity; import org.telegram.ui.Components.EmbedBottomSheet; import org.telegram.ui.Components.PhotoFilterView; @@ -94,7 +95,7 @@ public class MediaController implements AudioManager.OnAudioFocusChangeListener, public native byte[] getWaveform(String path); public native byte[] getWaveform2(short[] array, int length); - private class AudioBuffer { + private static class AudioBuffer { public AudioBuffer(int capacity) { buffer = ByteBuffer.allocateDirect(capacity); bufferBytes = new byte[capacity]; @@ -183,7 +184,52 @@ public class MediaController implements AudioManager.OnAudioFocusChangeListener, public float blurAngle; } - public static class PhotoEntry { + public static class MediaEditState { + + public CharSequence caption; + + public String thumbPath; + public String imagePath; + public String filterPath; + public String paintPath; + public String fullPaintPath; + public String croppedPath; + + public ArrayList entities; + public SavedFilterState savedFilterState; + public ArrayList mediaEntities; + public ArrayList stickers; + public VideoEditedInfo editedInfo; + public long averageDuration; + public boolean isFiltered; + public boolean isPainted; + public boolean isCropped; + public int ttl; + + public String getPath() { + return null; + } + + public void reset() { + caption = null; + thumbPath = null; + filterPath = null; + imagePath = null; + paintPath = null; + isFiltered = false; + isPainted = false; + isCropped = false; + ttl = 0; + mediaEntities = null; + editedInfo = null; + entities = null; + savedFilterState = null; + croppedPath = null; + stickers = null; + } + } + + public static class PhotoEntry extends MediaEditState { public int bucketId; public int imageId; public long dateTaken; @@ -193,20 +239,9 @@ public class MediaController implements AudioManager.OnAudioFocusChangeListener, public long size; public String path; public int orientation; - public String thumbPath; - public String imagePath; - public VideoEditedInfo editedInfo; public boolean isVideo; - public CharSequence caption; - public ArrayList entities; - public boolean isFiltered; - public boolean isPainted; - public boolean isCropped; public boolean isMuted; - public int ttl; public boolean canDeleteAfter; - public SavedFilterState savedFilterState; - public ArrayList stickers = new ArrayList<>(); public PhotoEntry(int bucketId, int imageId, long dateTaken, String path, int orientation, boolean isVideo, int width, int height, long size) { this.bucketId = bucketId; @@ -224,24 +259,24 @@ public class MediaController implements AudioManager.OnAudioFocusChangeListener, this.isVideo = isVideo; } + @Override + public String getPath() { + return path; + } + + @Override public void reset() { - isFiltered = false; - isPainted = false; - isCropped = false; - ttl = 0; - imagePath = null; - if (!isVideo) { - thumbPath = null; + if (isVideo) { + if (filterPath != null) { + new File(filterPath).delete(); + filterPath = null; + } } - editedInfo = null; - caption = null; - entities = null; - savedFilterState = null; - stickers.clear(); + super.reset(); } } - public static class SearchImage { + public static class SearchImage extends MediaEditState { public String id; public String imageUrl; public String thumbUrl; @@ -250,34 +285,28 @@ public class MediaController implements AudioManager.OnAudioFocusChangeListener, public int size; public int type; public int date; - public String thumbPath; - public String imagePath; public CharSequence caption; - public ArrayList entities; public TLRPC.Document document; public TLRPC.Photo photo; public TLRPC.PhotoSize photoSize; public TLRPC.PhotoSize thumbPhotoSize; - public boolean isFiltered; - public boolean isPainted; - public boolean isCropped; - public int ttl; public TLRPC.BotInlineResult inlineResult; public HashMap params; - public SavedFilterState savedFilterState; - public ArrayList stickers = new ArrayList<>(); + @Override + public String getPath() { + if (photoSize != null) { + return FileLoader.getPathToAttach(photoSize, true).getAbsolutePath(); + } else if (document != null) { + return FileLoader.getPathToAttach(document, true).getAbsolutePath(); + } else { + return ImageLoader.getHttpFilePath(imageUrl, "jpg").getAbsolutePath(); + } + } + + @Override public void reset() { - isFiltered = false; - isPainted = false; - isCropped = false; - ttl = 0; - imagePath = null; - thumbPath = null; - caption = null; - entities = null; - savedFilterState = null; - stickers.clear(); + super.reset(); } public String getAttachName() { @@ -1608,6 +1637,7 @@ public class MediaController implements AudioManager.OnAudioFocusChangeListener, FileLog.e(e); } audioPlayer = null; + Theme.unrefAudioVisualizeDrawable(playingMessageObject); } else if (videoPlayer != null) { currentAspectRatioFrameLayout = null; currentTextureViewContainer = null; @@ -1866,6 +1896,7 @@ public class MediaController implements AudioManager.OnAudioFocusChangeListener, FileLog.e(e); } audioPlayer = null; + Theme.unrefAudioVisualizeDrawable(playingMessageObject); } else if (videoPlayer != null) { currentAspectRatioFrameLayout = null; currentTextureViewContainer = null; @@ -2202,7 +2233,7 @@ public class MediaController implements AudioManager.OnAudioFocusChangeListener, } @Override - public void onError(Exception e) { + public void onError(VideoPlayer player, Exception e) { FileLog.e(e); } @@ -2414,7 +2445,7 @@ public class MediaController implements AudioManager.OnAudioFocusChangeListener, } @Override - public void onError(Exception e) { + public void onError(VideoPlayer player, Exception e) { FileLog.e(e); } @@ -2574,7 +2605,7 @@ public class MediaController implements AudioManager.OnAudioFocusChangeListener, } @Override - public void onError(Exception e) { + public void onError(VideoPlayer player, Exception e) { } @@ -2598,6 +2629,17 @@ public class MediaController implements AudioManager.OnAudioFocusChangeListener, return false; } }); + audioPlayer.setAudioVisualizerDelegate(new VideoPlayer.AudioVisualizerDelegate() { + @Override + public void onVisualizerUpdate(boolean playing, boolean animate, float[] values) { + Theme.getCurrentAudiVisualizerDrawable().setWaveform(playing, animate, values); + } + + @Override + public boolean needUpdate() { + return Theme.getCurrentAudiVisualizerDrawable().getParentView() != null; + } + }); if (exists) { if (!messageObject.mediaExists && cacheFile != file) { AndroidUtilities.runOnUIThread(() -> NotificationCenter.getInstance(messageObject.currentAccount).postNotificationName(NotificationCenter.fileDidLoad, FileLoader.getAttachFileName(messageObject.getDocument()), cacheFile)); @@ -2656,6 +2698,7 @@ public class MediaController implements AudioManager.OnAudioFocusChangeListener, if (audioPlayer != null) { audioPlayer.releasePlayer(true); audioPlayer = null; + Theme.unrefAudioVisualizeDrawable(playingMessageObject); isPaused = false; playingMessageObject = null; downloadingCurrentMessage = false; @@ -3784,7 +3827,7 @@ public class MediaController implements AudioManager.OnAudioFocusChangeListener, rotateRender = 90; } - boolean needCompress = resultWidth != originalWidth || resultHeight != originalHeight || rotateRender != 0 + boolean needCompress = info.mediaEntities != null || info.paintPath != null || info.filterState != null || resultWidth != originalWidth || resultHeight != originalHeight || rotateRender != 0 || info.roundVideo || Build.VERSION.SDK_INT >= 18 && startTime != -1; @@ -3828,6 +3871,10 @@ public class MediaController implements AudioManager.OnAudioFocusChangeListener, framerate, bitrate, startTime, endTime, needCompress, duration, + info.filterState, + info.paintPath, + info.mediaEntities, + info.isPhoto, callback); @@ -3886,10 +3933,13 @@ public class MediaController implements AudioManager.OnAudioFocusChangeListener, int remeasuredBitrate = (int) (originalBitrate / (Math.min(originalHeight / (float) (height), originalWidth / (float) (width)))); remeasuredBitrate *= compressFactor; int minBitrate = (int) (getVideoBitrateWithFactor(minCompressFactor) / (1280f * 720f / (width * height))); - if (originalBitrate < minBitrate) return remeasuredBitrate; - if (remeasuredBitrate > maxBitrate) return maxBitrate; - if (remeasuredBitrate < minBitrate) return minBitrate; - return remeasuredBitrate; + if (originalBitrate < minBitrate) { + return remeasuredBitrate; + } + if (remeasuredBitrate > maxBitrate) { + return maxBitrate; + } + return Math.max(remeasuredBitrate, minBitrate); } private static int getVideoBitrateWithFactor(float f) { diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/MediaDataController.java b/TMessagesProj/src/main/java/org/telegram/messenger/MediaDataController.java index 6071e3695..aeea5637e 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/MediaDataController.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/MediaDataController.java @@ -66,6 +66,7 @@ import java.util.HashSet; import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.CountDownLatch; @SuppressWarnings("unchecked") @@ -130,7 +131,7 @@ public class MediaDataController extends BaseController { private LongSparseArray stickerSetsById = new LongSparseArray<>(); private LongSparseArray installedStickerSetsById = new LongSparseArray<>(); private LongSparseArray groupStickerSets = new LongSparseArray<>(); - private HashMap stickerSetsByName = new HashMap<>(); + private ConcurrentHashMap stickerSetsByName = new ConcurrentHashMap<>(100, 1.0f, 1); private HashMap diceStickerSetsByEmoji = new HashMap<>(); private LongSparseArray diceEmojiStickerSetsById = new LongSparseArray<>(); private HashSet loadingDiceStickerSets = new HashSet<>(); @@ -141,6 +142,8 @@ public class MediaDataController extends BaseController { private int[] loadHash = new int[5]; private int[] loadDate = new int[5]; + private HashMap> verifyingMessages = new HashMap<>(); + private int[] archivedStickersCount = new int[2]; private LongSparseArray stickersByEmoji = new LongSparseArray<>(); @@ -209,6 +212,7 @@ public class MediaDataController extends BaseController { } }); } + verifyingMessages.clear(); loading = false; loaded = false; @@ -356,7 +360,12 @@ public class MediaDataController extends BaseController { } public void removeRecentGif(final TLRPC.Document document) { - recentGifs.remove(document); + for (int i = 0, N = recentGifs.size(); i < N; i++) { + if (recentGifs.get(i).id == document.id) { + recentGifs.remove(i); + break; + } + } TLRPC.TL_messages_saveGif req = new TLRPC.TL_messages_saveGif(); req.id = new TLRPC.TL_inputDocument(); req.id.id = document.id; @@ -938,6 +947,11 @@ public class MediaDataController extends BaseController { loadHash[type] = calcStickersHash(stickerSets[type]); } + public void storeTempStickerSet(final TLRPC.TL_messages_stickerSet set) { + stickerSetsById.put(set.set.id, set); + stickerSetsByName.put(set.set.short_name, set); + } + public void addNewStickerSet(final TLRPC.TL_messages_stickerSet set) { if (stickerSetsById.indexOfKey(set.set.id) >= 0 || stickerSetsByName.containsKey(set.set.short_name)) { return; @@ -1200,6 +1214,76 @@ public class MediaDataController extends BaseController { return archivedStickersCount[type]; } + + public void verifyAnimatedStickerMessage(TLRPC.Message message) { + verifyAnimatedStickerMessage(message, false); + } + + public void verifyAnimatedStickerMessage(TLRPC.Message message, boolean safe) { + if (message == null) { + return; + } + TLRPC.Document document = MessageObject.getDocument(message); + String name = MessageObject.getStickerSetName(document); + if (TextUtils.isEmpty(name)) { + return; + } + TLRPC.TL_messages_stickerSet stickerSet = stickerSetsByName.get(name); + if (stickerSet != null) { + for (int a = 0, N = stickerSet.documents.size(); a < N; a++) { + TLRPC.Document sticker = stickerSet.documents.get(a); + if (sticker.id == document.id && sticker.dc_id == document.dc_id) { + message.stickerVerified = 1; + break; + } + } + return; + } + if (safe) { + AndroidUtilities.runOnUIThread(() -> verifyAnimatedStickerMessageInternal(message, name)); + } else { + verifyAnimatedStickerMessageInternal(message, name); + } + } + + private void verifyAnimatedStickerMessageInternal(TLRPC.Message message, String name) { + ArrayList messages = verifyingMessages.get(name); + if (messages == null) { + messages = new ArrayList<>(); + verifyingMessages.put(name, messages); + } + messages.add(message); + TLRPC.TL_messages_getStickerSet req = new TLRPC.TL_messages_getStickerSet(); + req.stickerset = MessageObject.getInputStickerSet(message); + getConnectionsManager().sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> { + ArrayList arrayList = verifyingMessages.get(name); + if (response != null) { + TLRPC.TL_messages_stickerSet set = (TLRPC.TL_messages_stickerSet) response; + storeTempStickerSet(set); + for (int b = 0, N2 = arrayList.size(); b < N2; b++) { + TLRPC.Message m = arrayList.get(b); + TLRPC.Document d = MessageObject.getDocument(m); + for (int a = 0, N = set.documents.size(); a < N; a++) { + TLRPC.Document sticker = set.documents.get(a); + if (sticker.id == d.id && sticker.dc_id == d.dc_id) { + m.stickerVerified = 1; + break; + } + } + if (m.stickerVerified == 0) { + m.stickerVerified = 2; + } + } + } else { + for (int b = 0, N2 = arrayList.size(); b < N2; b++) { + arrayList.get(b).stickerVerified = 2; + } + } + getNotificationCenter().postNotificationName(NotificationCenter.didVerifyMessagesStickers, arrayList); + getMessagesStorage().updateMessageVerifyFlags(arrayList); + })); + } + public void loadArchivedStickersCount(final int type, boolean cache) { if (cache) { SharedPreferences preferences = MessagesController.getNotificationsSettings(currentAccount); @@ -1504,7 +1588,6 @@ public class MediaDataController extends BaseController { TLRPC.TL_messages_stickerSet stickerSet = stickerSetsById.get(setId); if (stickerSet != null) { return stickerSet.set.short_name; - } TLRPC.StickerSetCovered stickerSetCovered = featuredStickerSetsById.get(setId); if (stickerSetCovered != null) { @@ -2390,7 +2473,7 @@ public class MediaDataController extends BaseController { putMediaDatabase(uid, type, res.messages, max_id, topReached); } - Utilities.globalQueue.postRunnable(() -> { + Utilities.searchQueue.postRunnable(() -> { final SparseArray usersDict = new SparseArray<>(); for (int a = 0; a < res.users.size(); a++) { TLRPC.User u = res.users.get(a); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/MessageObject.java b/TMessagesProj/src/main/java/org/telegram/messenger/MessageObject.java index 246d68310..94192d65a 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/MessageObject.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/MessageObject.java @@ -32,6 +32,7 @@ import org.telegram.tgnet.SerializedData; import org.telegram.tgnet.TLObject; import org.telegram.tgnet.TLRPC; import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.Cells.ChatMessageCell; import org.telegram.ui.Components.TextStyleSpan; import org.telegram.ui.Components.TypefaceSpan; import org.telegram.ui.Components.URLSpanBotCommand; @@ -104,6 +105,7 @@ public class MessageObject { public ArrayList photoThumbs; public ArrayList photoThumbs2; public VideoEditedInfo videoEditedInfo; + public boolean shouldRemoveVideoEditedInfo; public boolean viewsReloaded; public boolean pollVisibleOnScreen; public long pollLastCheckTime; @@ -117,6 +119,8 @@ public class MessageObject { public boolean isRestrictedMessage; public long loadedFileSize; + public int stableId; + public boolean wasUnread; public boolean hadAnimationNotReadyLoading; @@ -352,12 +356,14 @@ public class MessageObject { public static class GroupedMessages { public long groupId; public boolean hasSibling; + public boolean hasCaption; public ArrayList messages = new ArrayList<>(); public ArrayList posArray = new ArrayList<>(); public HashMap positions = new HashMap<>(); private int maxSizeWidth = 800; - private int firstSpanAdditionalSize = 200; + + public final TransitionParams transitionParams = new TransitionParams(); private static class MessageGroupedLayoutAttempt { @@ -391,6 +397,10 @@ public class MessageObject { public void calculate() { posArray.clear(); positions.clear(); + + maxSizeWidth = 800; + int firstSpanAdditionalSize = 200; + int count = messages.size(); if (count <= 1) { return; @@ -405,6 +415,8 @@ public class MessageObject { boolean needShare = false; hasSibling = false; + hasCaption = false; + for (int a = 0; a < count; a++) { MessageObject messageObject = messages.get(a); if (a == 0) { @@ -436,6 +448,10 @@ public class MessageObject { positions.put(messageObject, position); posArray.add(position); + + if (messageObject.caption != null) { + hasCaption = true; + } } if (needShare) { @@ -748,6 +764,29 @@ public class MessageObject { } return null; } + + public static class TransitionParams { + public int left; + public int top; + public int right; + public int bottom; + + public float offsetLeft; + public float offsetTop; + public float offsetRight; + public float offsetBottom; + + public boolean drawBackgroundForDeletedItems; + public boolean backgroundChangeBounds; + + public boolean pinnedTop; + public boolean pinnedBotton; + + public ChatMessageCell cell; + public float captionEnterProgress = 1f; + public boolean drawCaptionLayout; + public boolean isNewGroup; + } } private static final int LINES_PER_BLOCK = 10; @@ -2492,8 +2531,8 @@ public class MessageObject { } else if (messageOwner.media instanceof TLRPC.TL_messageMediaUnsupported) { messageText = LocaleController.getString("UnsupportedMedia", R.string.UnsupportedMedia); } else if (messageOwner.media instanceof TLRPC.TL_messageMediaDocument) { - if (isSticker() || isAnimatedSticker()) { - String sch = getStrickerChar(); + if (isSticker() || isAnimatedStickerDocument(getDocument(), true)) { + String sch = getStickerChar(); if (sch != null && sch.length() > 0) { messageText = String.format("%s %s", sch, LocaleController.getString("AttachSticker", R.string.AttachSticker)); } else { @@ -2524,6 +2563,7 @@ public class MessageObject { public void setType() { int oldType = type; + type = 1000; isRoundVideoCached = 0; if (messageOwner instanceof TLRPC.TL_message || messageOwner instanceof TLRPC.TL_messageForwarded_old2) { if (isRestrictedMessage) { @@ -4277,8 +4317,8 @@ public class MessageObject { } for (int a = 0, N = document.attributes.size(); a < N; a++) { TLRPC.DocumentAttribute attribute = document.attributes.get(a); - if (attribute instanceof TLRPC.TL_documentAttributeSticker && attribute.stickerset != null && !(attribute.stickerset instanceof TLRPC.TL_inputStickerSetEmpty)) { - return true; + if (attribute instanceof TLRPC.TL_documentAttributeSticker) { + return attribute.stickerset instanceof TLRPC.TL_inputStickerSetShortName; } } } @@ -4345,34 +4385,41 @@ public class MessageObject { return false; } - public static boolean isVideoDocument(TLRPC.Document document) { - if (document != null) { - boolean isAnimated = false; - boolean isVideo = false; - int width = 0; - int height = 0; - for (int a = 0; a < document.attributes.size(); a++) { - TLRPC.DocumentAttribute attribute = document.attributes.get(a); - if (attribute instanceof TLRPC.TL_documentAttributeVideo) { - if (attribute.round_message) { - return false; - } - isVideo = true; - width = attribute.w; - height = attribute.h; - } else if (attribute instanceof TLRPC.TL_documentAttributeAnimated) { - isAnimated = true; - } - } - if (isAnimated && (width > 1280 || height > 1280)) { - isAnimated = false; - } - if (SharedConfig.streamMkv && !isVideo && "video/x-matroska".equals(document.mime_type)) { - isVideo = true; - } - return isVideo && !isAnimated; + public static TLRPC.TL_videoSize getDocumentVideoThumb(TLRPC.Document document) { + if (document == null || document.video_thumbs.isEmpty()) { + return null; } - return false; + return document.video_thumbs.get(0); + } + + public static boolean isVideoDocument(TLRPC.Document document) { + if (document == null) { + return false; + } + boolean isAnimated = false; + boolean isVideo = false; + int width = 0; + int height = 0; + for (int a = 0; a < document.attributes.size(); a++) { + TLRPC.DocumentAttribute attribute = document.attributes.get(a); + if (attribute instanceof TLRPC.TL_documentAttributeVideo) { + if (attribute.round_message) { + return false; + } + isVideo = true; + width = attribute.w; + height = attribute.h; + } else if (attribute instanceof TLRPC.TL_documentAttributeAnimated) { + isAnimated = true; + } + } + if (isAnimated && (width > 1280 || height > 1280)) { + isAnimated = false; + } + if (SharedConfig.streamMkv && !isVideo && "video/x-matroska".equals(document.mime_type)) { + isVideo = true; + } + return isVideo && !isAnimated; } public TLRPC.Document getDocument() { @@ -4403,7 +4450,11 @@ public class MessageObject { } public static boolean isAnimatedStickerMessage(TLRPC.Message message) { - return message.media != null && isAnimatedStickerDocument(message.media.document, !DialogObject.isSecretDialogId(message.dialog_id)); + boolean isSecretChat = DialogObject.isSecretDialogId(message.dialog_id); + if (isSecretChat && message.stickerVerified != 1) { + return false; + } + return message.media != null && isAnimatedStickerDocument(message.media.document, !isSecretChat || message.out); } public static boolean isLocationMessage(TLRPC.Message message) { @@ -4514,7 +4565,23 @@ public class MessageObject { return -1; } - public String getStrickerChar() { + public static String getStickerSetName(TLRPC.Document document) { + if (document == null) { + return null; + } + for (int a = 0; a < document.attributes.size(); a++) { + TLRPC.DocumentAttribute attribute = document.attributes.get(a); + if (attribute instanceof TLRPC.TL_documentAttributeSticker) { + if (attribute.stickerset instanceof TLRPC.TL_inputStickerSetEmpty) { + return null; + } + return attribute.stickerset.short_name; + } + } + return null; + } + + public String getStickerChar() { TLRPC.Document document = getDocument(); if (document != null) { for (TLRPC.DocumentAttribute attribute : document.attributes) { @@ -4673,7 +4740,11 @@ public class MessageObject { if (type != 1000) { return type == TYPE_ANIMATED_STICKER; } - return isAnimatedStickerDocument(getDocument(), !DialogObject.isSecretDialogId(getDialogId())); + boolean isSecretChat = DialogObject.isSecretDialogId(getDialogId()); + if (isSecretChat && messageOwner.stickerVerified != 1) { + return false; + } + return isAnimatedStickerDocument(getDocument(), emojiAnimatedSticker != null || !isSecretChat || isOut()); } public boolean isAnyKindOfSticker() { @@ -4727,8 +4798,21 @@ public class MessageObject { return isRoundVideoCached == 1; } - public boolean hasPhotoStickers() { - return messageOwner.media != null && messageOwner.media.photo != null && messageOwner.media.photo.has_stickers; + public boolean hasAttachedStickers() { + if (messageOwner.media instanceof TLRPC.TL_messageMediaPhoto) { + return messageOwner.media.photo != null && messageOwner.media.photo.has_stickers; + } else if (messageOwner.media instanceof TLRPC.TL_messageMediaDocument) { + TLRPC.Document document = messageOwner.media.document; + if (document != null) { + for (int a = 0; a < document.attributes.size(); a++) { + TLRPC.DocumentAttribute attribute = document.attributes.get(a); + if (attribute instanceof TLRPC.TL_documentAttributeHasStickers) { + return true; + } + } + } + } + return false; } public boolean isGif() { @@ -5212,10 +5296,6 @@ public class MessageObject { mediaExists = FileLoader.getPathToAttach(currentPhotoObject, true).exists(); } } - - if (!mediaExists && document != null) { - loadedFileSize = FileLoader.getTempFileSize(document, MessageObject.isVideoDocument(document) && shouldEncryptPhotoOrVideo()); - } } } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/MessagesController.java b/TMessagesProj/src/main/java/org/telegram/messenger/MessagesController.java index 3b6bd08c6..1a92eee1d 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/MessagesController.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/MessagesController.java @@ -273,6 +273,7 @@ public class MessagesController extends BaseController implements NotificationCe public String suggestedLangCode; public boolean qrLoginCamera; private String installReferer; + public ArrayList gifSearchEmojies = new ArrayList<>(); public HashSet diceEmojies; public HashMap diceSuccess = new HashMap<>(); @@ -367,6 +368,66 @@ public class MessagesController extends BaseController implements NotificationCe public ArrayList neverShow = new ArrayList<>(); public LongSparseArray pinnedDialogs = new LongSparseArray<>(); public ArrayList dialogs = new ArrayList<>(); + + public boolean includesDialog(AccountInstance accountInstance, int lowerId) { + MessagesController messagesController = accountInstance.getMessagesController(); + TLRPC.Dialog dialog = messagesController.dialogs_dict.get(lowerId); + if (dialog == null) { + return false; + } + return includesDialog(accountInstance, lowerId, dialog); + } + + public boolean includesDialog(AccountInstance accountInstance, int lowerId, TLRPC.Dialog d) { + if (alwaysShow.contains(lowerId)) { + return true; + } + if (d.folder_id != 0 && (flags & DIALOG_FILTER_FLAG_EXCLUDE_ARCHIVED) != 0) { + return false; + } + MessagesController messagesController = accountInstance.getMessagesController(); + ContactsController contactsController = accountInstance.getContactsController(); + boolean skip = false; + if ((flags & DIALOG_FILTER_FLAG_EXCLUDE_MUTED) != 0 && messagesController.isDialogMuted(d.id) && d.unread_mentions_count == 0 || + (flags & DIALOG_FILTER_FLAG_EXCLUDE_READ) != 0 && d.unread_count == 0 && !d.unread_mark && d.unread_mentions_count == 0 || + neverShow.contains(lowerId)) { + return false; + } + if (lowerId > 0) { + TLRPC.User user = messagesController.getUser(lowerId); + if (user != null) { + if (!user.bot) { + if (user.self || user.contact || contactsController.isContact(lowerId)) { + if ((flags & DIALOG_FILTER_FLAG_CONTACTS) != 0) { + return true; + } + } else { + if ((flags & DIALOG_FILTER_FLAG_NON_CONTACTS) != 0) { + return true; + } + } + } else { + if ((flags & DIALOG_FILTER_FLAG_BOTS) != 0) { + return true; + } + } + } + } else if (lowerId < 0) { + TLRPC.Chat chat = messagesController.getChat(-lowerId); + if (chat != null) { + if (ChatObject.isChannel(chat) && !chat.megagroup) { + if ((flags & DIALOG_FILTER_FLAG_CHANNELS) != 0) { + return true; + } + } else { + if ((flags & DIALOG_FILTER_FLAG_GROUPS) != 0) { + return true; + } + } + } + } + return false; + } } private DialogFilter sortingDialogFilter; @@ -571,12 +632,12 @@ public class MessagesController extends BaseController implements NotificationCe } else { diceEmojies = new HashSet<>(emojies); } - String success = mainPreferences.getString("diceSuccess", null); - if (success == null) { + String text = mainPreferences.getString("diceSuccess", null); + if (text == null) { diceSuccess.put("\uD83C\uDFAF", new DiceFrameSuccess(62, 6)); } else { try { - byte[] bytes = Base64.decode(success, Base64.DEFAULT); + byte[] bytes = Base64.decode(text, Base64.DEFAULT); if (bytes != null) { SerializedData data = new SerializedData(bytes); int count = data.readInt32(true); @@ -589,9 +650,37 @@ public class MessagesController extends BaseController implements NotificationCe FileLog.e(e); } } + + text = mainPreferences.getString("gifSearchEmojies", null); + if (text == null) { + gifSearchEmojies.add("👍"); + gifSearchEmojies.add("👎"); + gifSearchEmojies.add("😍"); + gifSearchEmojies.add("😂"); + gifSearchEmojies.add("😮"); + gifSearchEmojies.add("🙄"); + gifSearchEmojies.add("😥"); + gifSearchEmojies.add("😡"); + gifSearchEmojies.add("🥳"); + gifSearchEmojies.add("😎"); + } else { + try { + byte[] bytes = Base64.decode(text, Base64.DEFAULT); + if (bytes != null) { + SerializedData data = new SerializedData(bytes); + int count = data.readInt32(true); + for (int a = 0; a < count; a++) { + gifSearchEmojies.add(data.readString(true)); + } + data.cleanup(); + } + } catch (Exception e) { + FileLog.e(e); + } + } } - private void sendLoadPeersRequest(TLObject req, ArrayList requests, TLRPC.messages_Dialogs pinnedDialogs, TLRPC.messages_Dialogs pinnedRemoteDialogs, ArrayList users, ArrayList chats, ArrayList filtersToSave, SparseArray filtersToDelete, ArrayList filtersOrder, HashMap> filterDialogRemovals, HashMap> filterUserRemovals, HashSet filtersUnreadCounterReset) { + private void sendLoadPeersRequest(TLObject req, ArrayList requests, TLRPC.messages_Dialogs pinnedDialogs, TLRPC.messages_Dialogs pinnedRemoteDialogs, ArrayList users, ArrayList chats, ArrayList filtersToSave, SparseArray filtersToDelete, ArrayList filtersOrder, HashMap> filterDialogRemovals, HashMap> filterUserRemovals, HashSet filtersUnreadCounterReset) { getConnectionsManager().sendRequest(req, (response, error) -> { if (response instanceof TLRPC.TL_messages_chats) { TLRPC.TL_messages_chats res = (TLRPC.TL_messages_chats) response; @@ -618,7 +707,7 @@ public class MessagesController extends BaseController implements NotificationCe }); } - protected void loadFilterPeers(HashMap dialogsToLoadMap, HashMap usersToLoadMap, HashMap chatsToLoadMap, TLRPC.messages_Dialogs pinnedDialogs, TLRPC.messages_Dialogs pinnedRemoteDialogs, ArrayList users, ArrayList chats, ArrayList filtersToSave, SparseArray filtersToDelete, ArrayList filtersOrder, HashMap> filterDialogRemovals, HashMap> filterUserRemovals, HashSet filtersUnreadCounterReset) { + protected void loadFilterPeers(HashMap dialogsToLoadMap, HashMap usersToLoadMap, HashMap chatsToLoadMap, TLRPC.messages_Dialogs pinnedDialogs, TLRPC.messages_Dialogs pinnedRemoteDialogs, ArrayList users, ArrayList chats, ArrayList filtersToSave, SparseArray filtersToDelete, ArrayList filtersOrder, HashMap> filterDialogRemovals, HashMap> filterUserRemovals, HashSet filtersUnreadCounterReset) { Utilities.stageQueue.postRunnable(() -> { ArrayList requests = new ArrayList<>(); TLRPC.TL_users_getUsers req = null; @@ -1143,6 +1232,31 @@ public class MessagesController extends BaseController implements NotificationCe } break; } + case "gif_search_emojies": { + ArrayList newEmojies = new ArrayList<>(); + if (value.value instanceof TLRPC.TL_jsonArray) { + TLRPC.TL_jsonArray array = (TLRPC.TL_jsonArray) value.value; + for (int b = 0, N2 = array.value.size(); b < N2; b++) { + TLRPC.JSONValue val = array.value.get(b); + if (val instanceof TLRPC.TL_jsonString) { + TLRPC.TL_jsonString string = (TLRPC.TL_jsonString) val; + newEmojies.add(string.value.replace("\uFE0F", "")); + } + } + } + if (!gifSearchEmojies.equals(newEmojies)) { + gifSearchEmojies = newEmojies; + SerializedData serializedData = new SerializedData(); + serializedData.writeInt32(gifSearchEmojies.size()); + for (int b = 0, N2 = gifSearchEmojies.size(); b < N2; b++) { + serializedData.writeString(gifSearchEmojies.get(b)); + } + editor.putString("gifSearchEmojies", Base64.encodeToString(serializedData.toByteArray(), Base64.DEFAULT)); + serializedData.cleanup(); + changed = true; + } + break; + } case "emojies_send_dice_success": { try { HashMap newEmojies = new HashMap<>(); @@ -1181,6 +1295,7 @@ public class MessagesController extends BaseController implements NotificationCe serializedData.writeInt32(frameSuccess.num); } editor.putString("diceSuccess", Base64.encodeToString(serializedData.toByteArray(), Base64.DEFAULT)); + serializedData.cleanup(); changed = true; } } catch (Exception e) { @@ -3794,6 +3909,9 @@ public class MessagesController extends BaseController implements NotificationCe if (onlyHistory == 0 || onlyHistory == 3) { getNotificationsController().deleteNotificationChannel(did); } + if (onlyHistory == 0) { + getMediaDataController().cleanDraft(did, false); + } if (dialog != null) { if (emptyMax) { max_id_delete = Math.max(0, dialog.top_message); @@ -4893,21 +5011,21 @@ public class MessagesController extends BaseController implements NotificationCe } } - public void loadMessages(final long dialog_id, final int count, final int max_id, final int offset_date, boolean fromCache, int midDate, final int classGuid, final int load_type, final int last_message_id, final boolean isChannel, boolean scheduled, final int loadIndex) { - loadMessages(dialog_id, count, max_id, offset_date, fromCache, midDate, classGuid, load_type, last_message_id, isChannel, scheduled, loadIndex, 0, 0, 0, false, 0); + public void loadMessages(long dialogId, long mergeDialogId, boolean loadInfo, int count, int max_id, int offset_date, boolean fromCache, int midDate, int classGuid, int load_type, int last_message_id, boolean isChannel, boolean scheduled, int loadIndex) { + loadMessages(dialogId, mergeDialogId, loadInfo, count, max_id, offset_date, fromCache, midDate, classGuid, load_type, last_message_id, isChannel, scheduled, loadIndex, 0, 0, 0, false, 0); } - public void loadMessages(final long dialog_id, final int count, final int max_id, final int offset_date, final boolean fromCache, final int midDate, final int classGuid, final int load_type, final int last_message_id, final boolean isChannel, boolean scheduled, final int loadIndex, final int first_unread, final int unread_count, final int last_date, final boolean queryFromServer, final int mentionsCount) { - loadMessagesInternal(dialog_id, count, max_id, offset_date, fromCache, midDate, classGuid, load_type, last_message_id, isChannel, scheduled, loadIndex, first_unread, unread_count, last_date, queryFromServer, mentionsCount, true); + public void loadMessages(long dialogId, long mergeDialogId, boolean loadInfo, int count, int max_id, int offset_date, boolean fromCache, int midDate, int classGuid, int load_type, int last_message_id, boolean isChannel, boolean scheduled, int loadIndex, int first_unread, int unread_count, int last_date, boolean queryFromServer, int mentionsCount) { + loadMessagesInternal(dialogId, mergeDialogId, loadInfo, count, max_id, offset_date, fromCache, midDate, classGuid, load_type, last_message_id, isChannel, scheduled, loadIndex, first_unread, unread_count, last_date, queryFromServer, mentionsCount, true); } - private void loadMessagesInternal(final long dialog_id, final int count, final int max_id, final int offset_date, final boolean fromCache, final int minDate, final int classGuid, final int load_type, final int last_message_id, final boolean isChannel, boolean scheduled, final int loadIndex, final int first_unread, final int unread_count, final int last_date, final boolean queryFromServer, final int mentionsCount, boolean loadDialog) { + private void loadMessagesInternal(long dialogId, long mergeDialogId, boolean loadInfo, int count, int max_id, int offset_date, boolean fromCache, int minDate, int classGuid, int load_type, int last_message_id, boolean isChannel, boolean scheduled, int loadIndex, int first_unread, int unread_count, int last_date, boolean queryFromServer, int mentionsCount, boolean loadDialog) { if (BuildVars.LOGS_ENABLED) { - FileLog.d("load messages in chat " + dialog_id + " count " + count + " max_id " + max_id + " cache " + fromCache + " mindate = " + minDate + " guid " + classGuid + " load_type " + load_type + " last_message_id " + last_message_id + " scheduled " + scheduled + " index " + loadIndex + " firstUnread " + first_unread + " unread_count " + unread_count + " last_date " + last_date + " queryFromServer " + queryFromServer); + FileLog.d("load messages in chat " + dialogId + " count " + count + " max_id " + max_id + " cache " + fromCache + " mindate = " + minDate + " guid " + classGuid + " load_type " + load_type + " last_message_id " + last_message_id + " scheduled " + scheduled + " index " + loadIndex + " firstUnread " + first_unread + " unread_count " + unread_count + " last_date " + last_date + " queryFromServer " + queryFromServer); } - int lower_part = (int) dialog_id; + int lower_part = (int) dialogId; if (fromCache || lower_part == 0) { - getMessagesStorage().getMessages(dialog_id, count, max_id, offset_date, minDate, classGuid, load_type, isChannel, scheduled, loadIndex); + getMessagesStorage().getMessages(dialogId, mergeDialogId, loadInfo, count, max_id, offset_date, minDate, classGuid, load_type, isChannel, scheduled, loadIndex); } else { if (scheduled) { TLRPC.TL_messages_getScheduledHistory req = new TLRPC.TL_messages_getScheduledHistory(); @@ -4930,14 +5048,14 @@ public class MessagesController extends BaseController implements NotificationCe } } } - processLoadedMessages(res, dialog_id, count, mid, offset_date, false, classGuid, first_unread, last_message_id, unread_count, last_date, load_type, isChannel, false, true, loadIndex, queryFromServer, mentionsCount); + processLoadedMessages(res, dialogId, mergeDialogId, count, mid, offset_date, false, classGuid, first_unread, last_message_id, unread_count, last_date, load_type, isChannel, false, true, loadIndex, queryFromServer, mentionsCount); } }); getConnectionsManager().bindRequestToGuid(reqId, classGuid); } else { if (loadDialog && (load_type == 3 || load_type == 2) && last_message_id == 0) { TLRPC.TL_messages_getPeerDialogs req = new TLRPC.TL_messages_getPeerDialogs(); - TLRPC.InputPeer inputPeer = getInputPeer((int) dialog_id); + TLRPC.InputPeer inputPeer = getInputPeer((int) dialogId); TLRPC.TL_inputDialogPeer inputDialogPeer = new TLRPC.TL_inputDialogPeer(); inputDialogPeer.peer = inputPeer; req.peers.add(inputDialogPeer); @@ -4957,8 +5075,12 @@ public class MessagesController extends BaseController implements NotificationCe getMessagesStorage().putDialogs(dialogs, 0); } - loadMessagesInternal(dialog_id, count, max_id, offset_date, false, minDate, classGuid, load_type, dialog.top_message, isChannel, false, loadIndex, first_unread, dialog.unread_count, last_date, queryFromServer, dialog.unread_mentions_count, false); + loadMessagesInternal(dialogId, mergeDialogId, loadInfo, count, max_id, offset_date, false, minDate, classGuid, load_type, dialog.top_message, isChannel, false, loadIndex, first_unread, dialog.unread_count, last_date, queryFromServer, dialog.unread_mentions_count, false); } + } else { + AndroidUtilities.runOnUIThread(() -> { + getNotificationCenter().postNotificationName(NotificationCenter.loadingMessagesFailed, classGuid, req, error); + }); } }); return; @@ -4988,7 +5110,7 @@ public class MessagesController extends BaseController implements NotificationCe int reqId = getConnectionsManager().sendRequest(req, (response, error) -> { if (response != null) { final TLRPC.messages_Messages res = (TLRPC.messages_Messages) response; - removeDeletedMessagesFromArray(dialog_id, res.messages); + removeDeletedMessagesFromArray(dialogId, res.messages); if (res.messages.size() > count) { res.messages.remove(0); } @@ -5003,7 +5125,11 @@ public class MessagesController extends BaseController implements NotificationCe } } } - processLoadedMessages(res, dialog_id, count, mid, offset_date, false, classGuid, first_unread, last_message_id, unread_count, last_date, load_type, isChannel, false, false, loadIndex, queryFromServer, mentionsCount); + processLoadedMessages(res, dialogId, mergeDialogId, count, mid, offset_date, false, classGuid, first_unread, last_message_id, unread_count, last_date, load_type, isChannel, false, false, loadIndex, queryFromServer, mentionsCount); + } else { + AndroidUtilities.runOnUIThread(() -> { + getNotificationCenter().postNotificationName(NotificationCenter.loadingMessagesFailed, classGuid, req, error); + }); } }); getConnectionsManager().bindRequestToGuid(reqId, classGuid); @@ -5059,187 +5185,185 @@ public class MessagesController extends BaseController implements NotificationCe } } - public void processLoadedMessages(final TLRPC.messages_Messages messagesRes, final long dialog_id, final int count, final int max_id, final int offset_date, final boolean isCache, final int classGuid, - final int first_unread, final int last_message_id, final int unread_count, final int last_date, final int load_type, final boolean isChannel, final boolean isEnd, final boolean scheduled, final int loadIndex, final boolean queryFromServer, final int mentionsCount) { + public void processLoadedMessages(TLRPC.messages_Messages messagesRes, long dialogId, long mergeDialogId, int count, int max_id, int offset_date, boolean isCache, int classGuid, + int first_unread, int last_message_id, int unread_count, int last_date, int load_type, boolean isChannel, boolean isEnd, boolean scheduled, int loadIndex, boolean queryFromServer, int mentionsCount) { if (BuildVars.LOGS_ENABLED) { - FileLog.d("processLoadedMessages size " + messagesRes.messages.size() + " in chat " + dialog_id + " count " + count + " max_id " + max_id + " cache " + isCache + " guid " + classGuid + " load_type " + load_type + " last_message_id " + last_message_id + " isChannel " + isChannel + " index " + loadIndex + " firstUnread " + first_unread + " unread_count " + unread_count + " last_date " + last_date + " queryFromServer " + queryFromServer); + FileLog.d("processLoadedMessages size " + messagesRes.messages.size() + " in chat " + dialogId + " count " + count + " max_id " + max_id + " cache " + isCache + " guid " + classGuid + " load_type " + load_type + " last_message_id " + last_message_id + " isChannel " + isChannel + " index " + loadIndex + " firstUnread " + first_unread + " unread_count " + unread_count + " last_date " + last_date + " queryFromServer " + queryFromServer); } - Utilities.stageQueue.postRunnable(() -> { - boolean createDialog = false; - boolean isMegagroup = false; - if (messagesRes instanceof TLRPC.TL_messages_channelMessages) { - int channelId = -(int) dialog_id; - if (!scheduled) { - int channelPts = channelsPts.get(channelId); + boolean createDialog = false; + boolean isMegagroup = false; + if (messagesRes instanceof TLRPC.TL_messages_channelMessages) { + int channelId = -(int) dialogId; + if (!scheduled) { + int channelPts = channelsPts.get(channelId); + if (channelPts == 0) { + channelPts = getMessagesStorage().getChannelPtsSync(channelId); if (channelPts == 0) { - channelPts = getMessagesStorage().getChannelPtsSync(channelId); - if (channelPts == 0) { - channelsPts.put(channelId, messagesRes.pts); - createDialog = true; - if (needShortPollChannels.indexOfKey(channelId) >= 0 && shortPollChannels.indexOfKey(channelId) < 0) { - getChannelDifference(channelId, 2, 0, null); - } else { - getChannelDifference(channelId); - } + channelsPts.put(channelId, messagesRes.pts); + createDialog = true; + if (needShortPollChannels.indexOfKey(channelId) >= 0 && shortPollChannels.indexOfKey(channelId) < 0) { + getChannelDifference(channelId, 2, 0, null); + } else { + getChannelDifference(channelId); } } } - for (int a = 0; a < messagesRes.chats.size(); a++) { - TLRPC.Chat chat = messagesRes.chats.get(a); - if (chat.id == channelId) { - isMegagroup = chat.megagroup; - break; - } - } - } - int lower_id = (int) dialog_id; - int high_id = (int) (dialog_id >> 32); - if (!isCache) { - ImageLoader.saveMessagesThumbs(messagesRes.messages); - } - if (high_id != 1 && lower_id != 0 && isCache && (messagesRes.messages.size() == 0 || scheduled && (SystemClock.elapsedRealtime() - lastScheduledServerQueryTime.get(dialog_id, 0L)) > 60 * 1000)) { - int hash; - if (scheduled) { - lastScheduledServerQueryTime.put(dialog_id, SystemClock.elapsedRealtime()); - long h = 0; - for (int a = 0, N = messagesRes.messages.size(); a < N; a++) { - TLRPC.Message message = messagesRes.messages.get(a); - if (message.id < 0) { - continue; - } - h = ((h * 20261) + 0x80000000L + message.id) % 0x80000000L; - h = ((h * 20261) + 0x80000000L + message.edit_date) % 0x80000000L; - h = ((h * 20261) + 0x80000000L + message.date) % 0x80000000L; - } - hash = (int) h - 1; - } else { - hash = 0; - } - AndroidUtilities.runOnUIThread(() -> loadMessages(dialog_id, count, load_type == 2 && queryFromServer ? first_unread : max_id, offset_date, false, hash, classGuid, load_type, last_message_id, isChannel, scheduled, loadIndex, first_unread, unread_count, last_date, queryFromServer, mentionsCount)); - if (messagesRes.messages.isEmpty()) { - return; - } - } - final SparseArray usersDict = new SparseArray<>(); - final SparseArray chatsDict = new SparseArray<>(); - for (int a = 0; a < messagesRes.users.size(); a++) { - TLRPC.User u = messagesRes.users.get(a); - usersDict.put(u.id, u); } for (int a = 0; a < messagesRes.chats.size(); a++) { - TLRPC.Chat c = messagesRes.chats.get(a); - chatsDict.put(c.id, c); + TLRPC.Chat chat = messagesRes.chats.get(a); + if (chat.id == channelId) { + isMegagroup = chat.megagroup; + break; + } } - int size = messagesRes.messages.size(); - if (!isCache) { - Integer inboxValue = dialogs_read_inbox_max.get(dialog_id); - if (inboxValue == null) { - inboxValue = getMessagesStorage().getDialogReadMax(false, dialog_id); - dialogs_read_inbox_max.put(dialog_id, inboxValue); - } - - Integer outboxValue = dialogs_read_outbox_max.get(dialog_id); - if (outboxValue == null) { - outboxValue = getMessagesStorage().getDialogReadMax(true, dialog_id); - dialogs_read_outbox_max.put(dialog_id, outboxValue); - } - - for (int a = 0; a < size; a++) { + } + int lower_id = (int) dialogId; + int high_id = (int) (dialogId >> 32); + if (!isCache) { + ImageLoader.saveMessagesThumbs(messagesRes.messages); + } + if (high_id != 1 && lower_id != 0 && isCache && (messagesRes.messages.size() == 0 || scheduled && (SystemClock.elapsedRealtime() - lastScheduledServerQueryTime.get(dialogId, 0L)) > 60 * 1000)) { + int hash; + if (scheduled) { + lastScheduledServerQueryTime.put(dialogId, SystemClock.elapsedRealtime()); + long h = 0; + for (int a = 0, N = messagesRes.messages.size(); a < N; a++) { TLRPC.Message message = messagesRes.messages.get(a); - if (isMegagroup) { - message.flags |= TLRPC.MESSAGE_FLAG_MEGAGROUP; - } - - if (!scheduled) { - if (message.action instanceof TLRPC.TL_messageActionChatDeleteUser) { - TLRPC.User user = usersDict.get(message.action.user_id); - if (user != null && user.bot) { - message.reply_markup = new TLRPC.TL_replyKeyboardHide(); - message.flags |= 64; - } - } - - if (message.action instanceof TLRPC.TL_messageActionChatMigrateTo || message.action instanceof TLRPC.TL_messageActionChannelCreate) { - message.unread = false; - message.media_unread = false; - } else { - message.unread = (message.out ? outboxValue : inboxValue) < message.id; - } + if (message.id < 0) { + continue; } + h = ((h * 20261) + 0x80000000L + message.id) % 0x80000000L; + h = ((h * 20261) + 0x80000000L + message.edit_date) % 0x80000000L; + h = ((h * 20261) + 0x80000000L + message.date) % 0x80000000L; } - getMessagesStorage().putMessages(messagesRes, dialog_id, load_type, max_id, createDialog, scheduled); + hash = (int) h - 1; + } else { + hash = 0; + } + AndroidUtilities.runOnUIThread(() -> loadMessages(dialogId, mergeDialogId, false, count, load_type == 2 && queryFromServer ? first_unread : max_id, offset_date, false, hash, classGuid, load_type, last_message_id, isChannel, scheduled, loadIndex, first_unread, unread_count, last_date, queryFromServer, mentionsCount)); + if (messagesRes.messages.isEmpty()) { + return; + } + } + final SparseArray usersDict = new SparseArray<>(); + final SparseArray chatsDict = new SparseArray<>(); + for (int a = 0; a < messagesRes.users.size(); a++) { + TLRPC.User u = messagesRes.users.get(a); + usersDict.put(u.id, u); + } + for (int a = 0; a < messagesRes.chats.size(); a++) { + TLRPC.Chat c = messagesRes.chats.get(a); + chatsDict.put(c.id, c); + } + int size = messagesRes.messages.size(); + if (!isCache) { + Integer inboxValue = dialogs_read_inbox_max.get(dialogId); + if (inboxValue == null) { + inboxValue = getMessagesStorage().getDialogReadMax(false, dialogId); + dialogs_read_inbox_max.put(dialogId, inboxValue); + } + + Integer outboxValue = dialogs_read_outbox_max.get(dialogId); + if (outboxValue == null) { + outboxValue = getMessagesStorage().getDialogReadMax(true, dialogId); + dialogs_read_outbox_max.put(dialogId, outboxValue); } - final ArrayList objects = new ArrayList<>(); - final ArrayList messagesToReload = new ArrayList<>(); - final HashMap> webpagesToReload = new HashMap<>(); - TLRPC.InputChannel inputChannel = null; for (int a = 0; a < size; a++) { TLRPC.Message message = messagesRes.messages.get(a); - message.dialog_id = dialog_id; - MessageObject messageObject = new MessageObject(currentAccount, message, usersDict, chatsDict, true); - messageObject.scheduled = scheduled; - objects.add(messageObject); - if (isCache) { - if (message.legacy && message.layer < TLRPC.LAYER) { - messagesToReload.add(message.id); - } else if (message.media instanceof TLRPC.TL_messageMediaUnsupported) { - if (message.media.bytes != null && (message.media.bytes.length == 0 || message.media.bytes.length == 1 && message.media.bytes[0] < TLRPC.LAYER)) { - messagesToReload.add(message.id); + if (isMegagroup) { + message.flags |= TLRPC.MESSAGE_FLAG_MEGAGROUP; + } + + if (!scheduled) { + if (message.action instanceof TLRPC.TL_messageActionChatDeleteUser) { + TLRPC.User user = usersDict.get(message.action.user_id); + if (user != null && user.bot) { + message.reply_markup = new TLRPC.TL_replyKeyboardHide(); + message.flags |= 64; } } - if (message.media instanceof TLRPC.TL_messageMediaWebPage) { - if (message.media.webpage instanceof TLRPC.TL_webPagePending && message.media.webpage.date <= getConnectionsManager().getCurrentTime()) { - messagesToReload.add(message.id); - } else if (message.media.webpage instanceof TLRPC.TL_webPageUrlPending) { - ArrayList arrayList = webpagesToReload.get(message.media.webpage.url); - if (arrayList == null) { - arrayList = new ArrayList<>(); - webpagesToReload.put(message.media.webpage.url, arrayList); - } - arrayList.add(messageObject); - } + + if (message.action instanceof TLRPC.TL_messageActionChatMigrateTo || message.action instanceof TLRPC.TL_messageActionChannelCreate) { + message.unread = false; + message.media_unread = false; + } else { + message.unread = (message.out ? outboxValue : inboxValue) < message.id; } } } - AndroidUtilities.runOnUIThread(() -> { - putUsers(messagesRes.users, isCache); - putChats(messagesRes.chats, isCache); - int first_unread_final; - if (scheduled) { - first_unread_final = 0; - } else { - first_unread_final = Integer.MAX_VALUE; - if (queryFromServer && load_type == 2) { - for (int a = 0; a < messagesRes.messages.size(); a++) { - TLRPC.Message message = messagesRes.messages.get(a); - if ((!message.out || message.from_scheduled) && message.id > first_unread && message.id < first_unread_final) { - first_unread_final = message.id; - } + getMessagesStorage().putMessages(messagesRes, dialogId, load_type, max_id, createDialog, scheduled); + } + + final ArrayList objects = new ArrayList<>(); + final ArrayList messagesToReload = new ArrayList<>(); + final HashMap> webpagesToReload = new HashMap<>(); + TLRPC.InputChannel inputChannel = null; + for (int a = 0; a < size; a++) { + TLRPC.Message message = messagesRes.messages.get(a); + message.dialog_id = dialogId; + MessageObject messageObject = new MessageObject(currentAccount, message, usersDict, chatsDict, true); + messageObject.scheduled = scheduled; + objects.add(messageObject); + if (isCache) { + if (message.legacy && message.layer < TLRPC.LAYER) { + messagesToReload.add(message.id); + } else if (message.media instanceof TLRPC.TL_messageMediaUnsupported) { + if (message.media.bytes != null && (message.media.bytes.length == 0 || message.media.bytes.length == 1 && message.media.bytes[0] < TLRPC.LAYER)) { + messagesToReload.add(message.id); + } + } + if (message.media instanceof TLRPC.TL_messageMediaWebPage) { + if (message.media.webpage instanceof TLRPC.TL_webPagePending && message.media.webpage.date <= getConnectionsManager().getCurrentTime()) { + messagesToReload.add(message.id); + } else if (message.media.webpage instanceof TLRPC.TL_webPageUrlPending) { + ArrayList arrayList = webpagesToReload.get(message.media.webpage.url); + if (arrayList == null) { + arrayList = new ArrayList<>(); + webpagesToReload.put(message.media.webpage.url, arrayList); + } + arrayList.add(messageObject); + } + } + } + } + AndroidUtilities.runOnUIThread(() -> { + putUsers(messagesRes.users, isCache); + putChats(messagesRes.chats, isCache); + int first_unread_final; + if (scheduled) { + first_unread_final = 0; + } else { + first_unread_final = Integer.MAX_VALUE; + if (queryFromServer && load_type == 2) { + for (int a = 0; a < messagesRes.messages.size(); a++) { + TLRPC.Message message = messagesRes.messages.get(a); + if ((!message.out || message.from_scheduled) && message.id > first_unread && message.id < first_unread_final) { + first_unread_final = message.id; } } - if (first_unread_final == Integer.MAX_VALUE) { - first_unread_final = first_unread; - } } - if (scheduled && count == 1) { - getNotificationCenter().postNotificationName(NotificationCenter.scheduledMessagesUpdated, dialog_id, objects.size()); + if (first_unread_final == Integer.MAX_VALUE) { + first_unread_final = first_unread; } + } + if (scheduled && count == 1) { + getNotificationCenter().postNotificationName(NotificationCenter.scheduledMessagesUpdated, dialogId, objects.size()); + } - if ((int) dialog_id != 0) { - int finalFirst_unread_final = first_unread_final; - getMediaDataController().loadReplyMessagesForMessages(objects, dialog_id, scheduled, () -> getNotificationCenter().postNotificationName(NotificationCenter.messagesDidLoad, dialog_id, count, objects, isCache, finalFirst_unread_final, last_message_id, unread_count, last_date, load_type, isEnd, classGuid, loadIndex, max_id, mentionsCount, scheduled)); - } else { - getNotificationCenter().postNotificationName(NotificationCenter.messagesDidLoad, dialog_id, count, objects, isCache, first_unread_final, last_message_id, unread_count, last_date, load_type, isEnd, classGuid, loadIndex, max_id, mentionsCount, scheduled); - } + if ((int) dialogId != 0) { + int finalFirst_unread_final = first_unread_final; + getMediaDataController().loadReplyMessagesForMessages(objects, dialogId, scheduled, () -> getNotificationCenter().postNotificationName(NotificationCenter.messagesDidLoad, dialogId, count, objects, isCache, finalFirst_unread_final, last_message_id, unread_count, last_date, load_type, isEnd, classGuid, loadIndex, max_id, mentionsCount, scheduled)); + } else { + getNotificationCenter().postNotificationName(NotificationCenter.messagesDidLoad, dialogId, count, objects, isCache, first_unread_final, last_message_id, unread_count, last_date, load_type, isEnd, classGuid, loadIndex, max_id, mentionsCount, scheduled); + } - if (!messagesToReload.isEmpty()) { - reloadMessages(messagesToReload, dialog_id, scheduled); - } - if (!webpagesToReload.isEmpty()) { - reloadWebPages(dialog_id, webpagesToReload, scheduled); - } - }); + if (!messagesToReload.isEmpty()) { + reloadMessages(messagesToReload, dialogId, scheduled); + } + if (!webpagesToReload.isEmpty()) { + reloadWebPages(dialogId, webpagesToReload, scheduled); + } }); } @@ -12144,62 +12268,17 @@ public class MessagesController extends BaseController implements NotificationCe for (int a = 0, N = allDialogs.size(); a < N; a++) { TLRPC.Dialog d = allDialogs.get(a); - int high_id = (int) (d.id >> 32); - int lower_id = (int) d.id; - if (lower_id == 0 && high_id != 0) { - TLRPC.EncryptedChat encryptedChat = getEncryptedChat(high_id); - if (encryptedChat != null) { - lower_id = encryptedChat.user_id; - } - } if (d instanceof TLRPC.TL_dialog) { - if (selectedDialogFilter[b].alwaysShow.contains(lower_id)) { + int high_id = (int) (d.id >> 32); + int lower_id = (int) d.id; + if (lower_id == 0 && high_id != 0) { + TLRPC.EncryptedChat encryptedChat = getEncryptedChat(high_id); + if (encryptedChat != null) { + lower_id = encryptedChat.user_id; + } + } + if (selectedDialogFilter[b].includesDialog(getAccountInstance(), lower_id, d)) { dialogsByFilter.add(d); - } else { - if (d.folder_id != 0 && (selectedDialogFilter[b].flags & DIALOG_FILTER_FLAG_EXCLUDE_ARCHIVED) != 0) { - continue; - } - boolean skip = false; - if ((selectedDialogFilter[b].flags & DIALOG_FILTER_FLAG_EXCLUDE_MUTED) != 0 && isDialogMuted(d.id) && d.unread_mentions_count == 0 || - (selectedDialogFilter[b].flags & DIALOG_FILTER_FLAG_EXCLUDE_READ) != 0 && d.unread_count == 0 && !d.unread_mark && d.unread_mentions_count == 0 || - selectedDialogFilter[b].neverShow.contains(lower_id)) { - skip = true; - } - if (!skip) { - if (lower_id > 0) { - TLRPC.User user = getUser(lower_id); - if (user != null) { - if (!user.bot) { - if (user.self || user.contact || getContactsController().isContact(lower_id)) { - if ((selectedDialogFilter[b].flags & DIALOG_FILTER_FLAG_CONTACTS) != 0) { - dialogsByFilter.add(d); - } - } else { - if ((selectedDialogFilter[b].flags & DIALOG_FILTER_FLAG_NON_CONTACTS) != 0) { - dialogsByFilter.add(d); - } - } - } else { - if ((selectedDialogFilter[b].flags & DIALOG_FILTER_FLAG_BOTS) != 0) { - dialogsByFilter.add(d); - } - } - } - } else if (lower_id < 0) { - TLRPC.Chat chat = getChat(-lower_id); - if (chat != null) { - if (ChatObject.isChannel(chat) && !chat.megagroup) { - if ((selectedDialogFilter[b].flags & DIALOG_FILTER_FLAG_CHANNELS) != 0) { - dialogsByFilter.add(d); - } - } else { - if ((selectedDialogFilter[b].flags & DIALOG_FILTER_FLAG_GROUPS) != 0) { - dialogsByFilter.add(d); - } - } - } - } - } } } } @@ -12527,7 +12606,7 @@ public class MessagesController extends BaseController implements NotificationCe } } - public void ensureMessagesLoaded(long dialog_id, boolean isChannel, int messageId, Runnable callback) { + public void ensureMessagesLoaded(long dialog_id, boolean isChannel, int messageId, Runnable callback, Runnable doOnError) { SharedPreferences sharedPreferences = MessagesController.getNotificationsSettings(currentAccount); if (messageId == 0) { messageId = sharedPreferences.getInt("diditem" + dialog_id, 0); @@ -12538,7 +12617,7 @@ public class MessagesController extends BaseController implements NotificationCe } int finalMessageId = messageId; final int classGuid = ConnectionsManager.generateClassGuid(); - getNotificationCenter().addObserver(new NotificationCenter.NotificationCenterDelegate() { + NotificationCenter.NotificationCenterDelegate delegate = new NotificationCenter.NotificationCenterDelegate() { @SuppressWarnings("unchecked") @Override public void didReceivedNotification(int id, int account, Object... args) { @@ -12546,14 +12625,27 @@ public class MessagesController extends BaseController implements NotificationCe ArrayList messArr = (ArrayList) args[2]; boolean isCache = (Boolean) args[3]; if (messArr.isEmpty() && isCache) { - loadMessages(dialog_id, 20, 3, 0, false, 0, classGuid, 3, 0, false, false, 0); + loadMessages(dialog_id, 0, false, 20, 3, 0, false, 0, classGuid, 3, 0, false, false, 0); } else { getNotificationCenter().removeObserver(this, NotificationCenter.didReceiveNewMessages); + getNotificationCenter().removeObserver(this, NotificationCenter.loadingMessagesFailed); callback.run(); } } + if (id == NotificationCenter.loadingMessagesFailed && (Integer) args[0] == classGuid) { + getNotificationCenter().removeObserver(this, NotificationCenter.didReceiveNewMessages); + getNotificationCenter().removeObserver(this, NotificationCenter.loadingMessagesFailed); + if (doOnError != null) { + doOnError.run(); + } + } } - }, NotificationCenter.messagesDidLoad); - loadMessages(dialog_id, 1, finalMessageId, 0, true, 0, classGuid, 3, 0, false, false, 0); + }; + + getNotificationCenter().addObserver(delegate, NotificationCenter.messagesDidLoad); + getNotificationCenter().addObserver(delegate, NotificationCenter.loadingMessagesFailed); + + + loadMessages(dialog_id, 0, false, 1, finalMessageId, 0, true, 0, classGuid, 3, 0, false, false, 0); } } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/MessagesStorage.java b/TMessagesProj/src/main/java/org/telegram/messenger/MessagesStorage.java index 2d916015d..6623bf8b7 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/MessagesStorage.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/MessagesStorage.java @@ -279,7 +279,7 @@ public class MessagesStorage extends BaseController { database.executeFast("CREATE INDEX IF NOT EXISTS uid_date_idx_scheduled_messages ON scheduled_messages(uid, date);").stepThis().dispose(); database.executeFast("CREATE TABLE messages(mid INTEGER PRIMARY KEY, uid INTEGER, read_state INTEGER, send_state INTEGER, date INTEGER, data BLOB, out INTEGER, ttl INTEGER, media INTEGER, replydata BLOB, imp INTEGER, mention INTEGER)").stepThis().dispose(); - database.executeFast("CREATE INDEX IF NOT EXISTS uid_mid_idx_messages ON messages(uid, mid);").stepThis().dispose(); + database.executeFast("CREATE INDEX IF NOT EXISTS uid_mid_read_out_idx_messages ON messages(uid, mid, read_state, out);").stepThis().dispose(); database.executeFast("CREATE INDEX IF NOT EXISTS uid_date_mid_idx_messages ON messages(uid, date, mid);").stepThis().dispose(); database.executeFast("CREATE INDEX IF NOT EXISTS mid_out_idx_messages ON messages(mid, out);").stepThis().dispose(); database.executeFast("CREATE INDEX IF NOT EXISTS task_idx_messages ON messages(uid, out, read_state, ttl, date, send_state);").stepThis().dispose(); @@ -3312,7 +3312,13 @@ public class MessagesStorage extends BaseController { } else { state.bindInteger(9, getMessageMediaType(message)); } - state.bindInteger(10, 0); + int flags = 0; + if (message.stickerVerified == 0) { + flags |= 1; + } else if (message.stickerVerified == 2) { + flags |= 2; + } + state.bindInteger(10, flags); state.bindInteger(11, message.mentioned ? 1 : 0); state.step(); @@ -4895,95 +4901,99 @@ public class MessagesStorage extends BaseController { return result[0]; } - public TLRPC.ChatFull loadChatInfo(final int chat_id, final CountDownLatch countDownLatch, final boolean force, final boolean byChannelUsers) { - TLRPC.ChatFull[] result = new TLRPC.ChatFull[1]; - storageQueue.postRunnable(() -> { - MessageObject pinnedMessageObject = null; - TLRPC.ChatFull info = null; - ArrayList loadedUsers = new ArrayList<>(); - try { - SQLiteCursor cursor = database.queryFinalized("SELECT info, pinned, online FROM chat_settings_v2 WHERE uid = " + chat_id); - if (cursor.next()) { - NativeByteBuffer data = cursor.byteBufferValue(0); - if (data != null) { - info = TLRPC.ChatFull.TLdeserialize(data, data.readInt32(false), false); - data.reuse(); - info.pinned_msg_id = cursor.intValue(1); - info.online_count = cursor.intValue(2); + private TLRPC.ChatFull loadChatInfoInternal(final int chat_id, final boolean force, final boolean byChannelUsers) { + MessageObject pinnedMessageObject = null; + TLRPC.ChatFull info = null; + ArrayList loadedUsers = new ArrayList<>(); + try { + SQLiteCursor cursor = database.queryFinalized("SELECT info, pinned, online FROM chat_settings_v2 WHERE uid = " + chat_id); + if (cursor.next()) { + NativeByteBuffer data = cursor.byteBufferValue(0); + if (data != null) { + info = TLRPC.ChatFull.TLdeserialize(data, data.readInt32(false), false); + data.reuse(); + info.pinned_msg_id = cursor.intValue(1); + info.online_count = cursor.intValue(2); + } + } + cursor.dispose(); + + if (info instanceof TLRPC.TL_chatFull) { + StringBuilder usersToLoad = new StringBuilder(); + for (int a = 0; a < info.participants.participants.size(); a++) { + TLRPC.ChatParticipant c = info.participants.participants.get(a); + if (usersToLoad.length() != 0) { + usersToLoad.append(","); + } + usersToLoad.append(c.user_id); + } + if (usersToLoad.length() != 0) { + getUsersInternal(usersToLoad.toString(), loadedUsers); + } + } else if (info instanceof TLRPC.TL_channelFull) { + cursor = database.queryFinalized("SELECT us.data, us.status, cu.data, cu.date FROM channel_users_v2 as cu LEFT JOIN users as us ON us.uid = cu.uid WHERE cu.did = " + (-chat_id) + " ORDER BY cu.date DESC"); + info.participants = new TLRPC.TL_chatParticipants(); + while (cursor.next()) { + try { + TLRPC.User user = null; + TLRPC.ChannelParticipant participant = null; + NativeByteBuffer data = cursor.byteBufferValue(0); + if (data != null) { + user = TLRPC.User.TLdeserialize(data, data.readInt32(false), false); + data.reuse(); + } + data = cursor.byteBufferValue(2); + if (data != null) { + participant = TLRPC.ChannelParticipant.TLdeserialize(data, data.readInt32(false), false); + data.reuse(); + } + if (user != null && participant != null) { + if (user.status != null) { + user.status.expires = cursor.intValue(1); + } + loadedUsers.add(user); + participant.date = cursor.intValue(3); + TLRPC.TL_chatChannelParticipant chatChannelParticipant = new TLRPC.TL_chatChannelParticipant(); + chatChannelParticipant.user_id = participant.user_id; + chatChannelParticipant.date = participant.date; + chatChannelParticipant.inviter_id = participant.inviter_id; + chatChannelParticipant.channelParticipant = participant; + info.participants.participants.add(chatChannelParticipant); + } + } catch (Exception e) { + FileLog.e(e); } } cursor.dispose(); + StringBuilder usersToLoad = new StringBuilder(); + for (int a = 0; a < info.bot_info.size(); a++) { + TLRPC.BotInfo botInfo = info.bot_info.get(a); + if (usersToLoad.length() != 0) { + usersToLoad.append(","); + } + usersToLoad.append(botInfo.user_id); + } + if (usersToLoad.length() != 0) { + getUsersInternal(usersToLoad.toString(), loadedUsers); + } + } + if (info != null && info.pinned_msg_id != 0) { + pinnedMessageObject = getMediaDataController().loadPinnedMessage(-chat_id, info instanceof TLRPC.TL_channelFull ? chat_id : 0, info.pinned_msg_id, false); + } + } catch (Exception e) { + FileLog.e(e); + } finally { + getMessagesController().processChatInfo(chat_id, info, loadedUsers, true, force, byChannelUsers, pinnedMessageObject); + } + return info; + } - if (info instanceof TLRPC.TL_chatFull) { - StringBuilder usersToLoad = new StringBuilder(); - for (int a = 0; a < info.participants.participants.size(); a++) { - TLRPC.ChatParticipant c = info.participants.participants.get(a); - if (usersToLoad.length() != 0) { - usersToLoad.append(","); - } - usersToLoad.append(c.user_id); - } - if (usersToLoad.length() != 0) { - getUsersInternal(usersToLoad.toString(), loadedUsers); - } - } else if (info instanceof TLRPC.TL_channelFull) { - cursor = database.queryFinalized("SELECT us.data, us.status, cu.data, cu.date FROM channel_users_v2 as cu LEFT JOIN users as us ON us.uid = cu.uid WHERE cu.did = " + (-chat_id) + " ORDER BY cu.date DESC"); - info.participants = new TLRPC.TL_chatParticipants(); - while (cursor.next()) { - try { - TLRPC.User user = null; - TLRPC.ChannelParticipant participant = null; - NativeByteBuffer data = cursor.byteBufferValue(0); - if (data != null) { - user = TLRPC.User.TLdeserialize(data, data.readInt32(false), false); - data.reuse(); - } - data = cursor.byteBufferValue(2); - if (data != null) { - participant = TLRPC.ChannelParticipant.TLdeserialize(data, data.readInt32(false), false); - data.reuse(); - } - if (user != null && participant != null) { - if (user.status != null) { - user.status.expires = cursor.intValue(1); - } - loadedUsers.add(user); - participant.date = cursor.intValue(3); - TLRPC.TL_chatChannelParticipant chatChannelParticipant = new TLRPC.TL_chatChannelParticipant(); - chatChannelParticipant.user_id = participant.user_id; - chatChannelParticipant.date = participant.date; - chatChannelParticipant.inviter_id = participant.inviter_id; - chatChannelParticipant.channelParticipant = participant; - info.participants.participants.add(chatChannelParticipant); - } - } catch (Exception e) { - FileLog.e(e); - } - } - cursor.dispose(); - StringBuilder usersToLoad = new StringBuilder(); - for (int a = 0; a < info.bot_info.size(); a++) { - TLRPC.BotInfo botInfo = info.bot_info.get(a); - if (usersToLoad.length() != 0) { - usersToLoad.append(","); - } - usersToLoad.append(botInfo.user_id); - } - if (usersToLoad.length() != 0) { - getUsersInternal(usersToLoad.toString(), loadedUsers); - } - } - if (info != null && info.pinned_msg_id != 0) { - pinnedMessageObject = getMediaDataController().loadPinnedMessage(-chat_id, info instanceof TLRPC.TL_channelFull ? chat_id : 0, info.pinned_msg_id, false); - } - } catch (Exception e) { - FileLog.e(e); - } finally { - result[0] = info; - getMessagesController().processChatInfo(chat_id, info, loadedUsers, true, force, byChannelUsers, pinnedMessageObject); - if (countDownLatch != null) { - countDownLatch.countDown(); - } + public TLRPC.ChatFull loadChatInfo(final int chat_id, final CountDownLatch countDownLatch, final boolean force, final boolean byChannelUsers) { + TLRPC.ChatFull[] result = new TLRPC.ChatFull[1]; + storageQueue.postRunnable(() -> { + result[0] = loadChatInfoInternal(chat_id, force, byChannelUsers); + if (countDownLatch != null) { + countDownLatch.countDown(); } }); if (countDownLatch != null) { @@ -5621,70 +5631,522 @@ public class MessagesStorage extends BaseController { }); } - public void getMessages(final long dialog_id, final int count, final int max_id, final int offset_date, final int minDate, final int classGuid, final int load_type, final boolean isChannel, final boolean scheduled, final int loadIndex) { - storageQueue.postRunnable(() -> { - TLRPC.TL_messages_messages res = new TLRPC.TL_messages_messages(); - int currentUserId = getUserConfig().clientUserId; - int count_unread = 0; - int mentions_unread = 0; - int count_query = count; - int offset_query = 0; - int min_unread_id = 0; - int last_message_id = 0; - boolean queryFromServer = false; - int max_unread_date = 0; - long messageMaxId = max_id; - int max_id_query = max_id; - boolean unreadCountIsLocal = false; - int max_id_override = max_id; - int channelId = 0; - if (isChannel) { - channelId = -(int) dialog_id; - } - if (messageMaxId != 0 && channelId != 0) { - messageMaxId |= ((long) channelId) << 32; - } - boolean isEnd = false; - int num = dialog_id == 777000 ? 10 : 1; - try { - ArrayList usersToLoad = new ArrayList<>(); - ArrayList chatsToLoad = new ArrayList<>(); - ArrayList replyMessages = new ArrayList<>(); - SparseArray> replyMessageOwners = new SparseArray<>(); - LongSparseArray> replyMessageRandomOwners = new LongSparseArray<>(); - SQLiteCursor cursor; - if (scheduled) { + public Runnable getMessagesInternal(long dialogId, long mergeDialogId, int count, int max_id, int offset_date, int minDate, int classGuid, int load_type, boolean isChannel, boolean scheduled, int loadIndex) { + TLRPC.TL_messages_messages res = new TLRPC.TL_messages_messages(); + int currentUserId = getUserConfig().clientUserId; + int count_unread = 0; + int mentions_unread = 0; + int count_query = count; + int offset_query = 0; + int min_unread_id = 0; + int last_message_id = 0; + boolean queryFromServer = false; + int max_unread_date = 0; + long messageMaxId = max_id; + int max_id_query = max_id; + boolean unreadCountIsLocal = false; + int max_id_override = max_id; + int channelId = 0; + if (isChannel) { + channelId = -(int) dialogId; + } + if (messageMaxId != 0 && channelId != 0) { + messageMaxId |= ((long) channelId) << 32; + } + boolean isEnd = false; + int num = dialogId == 777000 ? 10 : 1; + try { + ArrayList usersToLoad = new ArrayList<>(); + ArrayList chatsToLoad = new ArrayList<>(); + ArrayList replyMessages = new ArrayList<>(); + SparseArray> replyMessageOwners = new SparseArray<>(); + LongSparseArray> replyMessageRandomOwners = new LongSparseArray<>(); + SQLiteCursor cursor; + if (scheduled) { + isEnd = true; + cursor = database.queryFinalized(String.format(Locale.US, "SELECT m.data, m.send_state, m.mid, m.date, r.random_id, m.replydata, m.ttl FROM scheduled_messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d ORDER BY m.date DESC", dialogId)); + while (cursor.next()) { + NativeByteBuffer data = cursor.byteBufferValue(0); + if (data != null) { + TLRPC.Message message = TLRPC.Message.TLdeserialize(data, data.readInt32(false), false); + message.send_state = cursor.intValue(1); + message.id = cursor.intValue(2); + if (message.id > 0 && message.send_state != 0 && message.send_state != 3) { + message.send_state = 0; + } + if (dialogId == currentUserId) { + message.out = true; + message.unread = false; + } else { + message.unread = true; + } + message.readAttachPath(data, currentUserId); + data.reuse(); + message.date = cursor.intValue(3); + message.dialog_id = dialogId; + if (message.ttl == 0) { + message.ttl = cursor.intValue(6); + } + res.messages.add(message); + + addUsersAndChatsFromMessage(message, usersToLoad, chatsToLoad); + + if (message.reply_to_msg_id != 0 || message.reply_to_random_id != 0) { + if (!cursor.isNull(5)) { + data = cursor.byteBufferValue(5); + if (data != null) { + message.replyMessage = TLRPC.Message.TLdeserialize(data, data.readInt32(false), false); + message.replyMessage.readAttachPath(data, currentUserId); + data.reuse(); + if (message.replyMessage != null) { + if (MessageObject.isMegagroup(message)) { + message.replyMessage.flags |= TLRPC.MESSAGE_FLAG_MEGAGROUP; + } + addUsersAndChatsFromMessage(message.replyMessage, usersToLoad, chatsToLoad); + } + } + } + if (message.replyMessage == null) { + if (message.reply_to_msg_id != 0) { + long messageId = message.reply_to_msg_id; + if (message.to_id.channel_id != 0) { + messageId |= ((long) message.to_id.channel_id) << 32; + } + if (!replyMessages.contains(messageId)) { + replyMessages.add(messageId); + } + ArrayList messages = replyMessageOwners.get(message.reply_to_msg_id); + if (messages == null) { + messages = new ArrayList<>(); + replyMessageOwners.put(message.reply_to_msg_id, messages); + } + messages.add(message); + } else { + if (!replyMessages.contains(message.reply_to_random_id)) { + replyMessages.add(message.reply_to_random_id); + } + ArrayList messages = replyMessageRandomOwners.get(message.reply_to_random_id); + if (messages == null) { + messages = new ArrayList<>(); + replyMessageRandomOwners.put(message.reply_to_random_id, messages); + } + messages.add(message); + } + } + } + } + } + cursor.dispose(); + } else { + int lower_id = (int) dialogId; + if (lower_id != 0) { + if (load_type == 3 && minDate == 0) { + cursor = database.queryFinalized("SELECT inbox_max, unread_count, date, unread_count_i FROM dialogs WHERE did = " + dialogId); + if (cursor.next()) { + min_unread_id = cursor.intValue(0) + 1; + count_unread = cursor.intValue(1); + max_unread_date = cursor.intValue(2); + mentions_unread = cursor.intValue(3); + } + cursor.dispose(); + } else if (load_type != 1 && load_type != 3 && load_type != 4 && minDate == 0) { + if (load_type == 2) { + cursor = database.queryFinalized("SELECT inbox_max, unread_count, date, unread_count_i FROM dialogs WHERE did = " + dialogId); + if (cursor.next()) { + messageMaxId = max_id_query = min_unread_id = cursor.intValue(0); + count_unread = cursor.intValue(1); + max_unread_date = cursor.intValue(2); + mentions_unread = cursor.intValue(3); + queryFromServer = true; + if (messageMaxId != 0 && channelId != 0) { + messageMaxId |= ((long) channelId) << 32; + } + if (dialogId == currentUserId) { + count_unread = 0; + } + } + cursor.dispose(); + if (!queryFromServer) { + cursor = database.queryFinalized(String.format(Locale.US, "SELECT min(mid), max(date) FROM messages WHERE uid = %d AND out = 0 AND read_state IN(0,2) AND mid > 0", dialogId)); + if (cursor.next()) { + min_unread_id = cursor.intValue(0); + max_unread_date = cursor.intValue(1); + } + cursor.dispose(); + if (min_unread_id != 0) { + cursor = database.queryFinalized(String.format(Locale.US, "SELECT COUNT(*) FROM messages WHERE uid = %d AND mid >= %d AND out = 0 AND read_state IN(0,2)", dialogId, min_unread_id)); + if (cursor.next()) { + count_unread = cursor.intValue(0); + } + cursor.dispose(); + } + } else if (max_id_query == 0) { + int existingUnreadCount = 0; + cursor = database.queryFinalized(String.format(Locale.US, "SELECT COUNT(*) FROM messages WHERE uid = %d AND mid > 0 AND out = 0 AND read_state IN(0,2)", dialogId)); + if (cursor.next()) { + existingUnreadCount = cursor.intValue(0); + } + cursor.dispose(); + if (existingUnreadCount == count_unread) { + cursor = database.queryFinalized(String.format(Locale.US, "SELECT min(mid) FROM messages WHERE uid = %d AND out = 0 AND read_state IN(0,2) AND mid > 0", dialogId)); + if (cursor.next()) { + messageMaxId = max_id_query = min_unread_id = cursor.intValue(0); + if (messageMaxId != 0 && channelId != 0) { + messageMaxId |= ((long) channelId) << 32; + } + } + cursor.dispose(); + } + } else { + cursor = database.queryFinalized(String.format(Locale.US, "SELECT start, end FROM messages_holes WHERE uid = %d AND start < %d AND end > %d", dialogId, max_id_query, max_id_query)); + boolean containMessage = !cursor.next(); + cursor.dispose(); + + if (containMessage) { + cursor = database.queryFinalized(String.format(Locale.US, "SELECT min(mid) FROM messages WHERE uid = %d AND out = 0 AND read_state IN(0,2) AND mid > %d", dialogId, max_id_query)); + if (cursor.next()) { + messageMaxId = max_id_query = cursor.intValue(0); + if (messageMaxId != 0 && channelId != 0) { + messageMaxId |= ((long) channelId) << 32; + } + } + cursor.dispose(); + } + } + } + + if (count_query > count_unread || count_unread < num) { + count_query = Math.max(count_query, count_unread + 10); + if (count_unread < num) { + count_unread = 0; + min_unread_id = 0; + messageMaxId = 0; + last_message_id = 0; + queryFromServer = false; + } + } else { + offset_query = count_unread - count_query; + count_query += 10; + } + } + + cursor = database.queryFinalized(String.format(Locale.US, "SELECT start FROM messages_holes WHERE uid = %d AND start IN (0, 1)", dialogId)); + if (cursor.next()) { + isEnd = cursor.intValue(0) == 1; + cursor.dispose(); + } else { + cursor.dispose(); + cursor = database.queryFinalized(String.format(Locale.US, "SELECT min(mid) FROM messages WHERE uid = %d AND mid > 0", dialogId)); + if (cursor.next()) { + int mid = cursor.intValue(0); + if (mid != 0) { + SQLitePreparedStatement state = database.executeFast("REPLACE INTO messages_holes VALUES(?, ?, ?)"); + state.requery(); + state.bindLong(1, dialogId); + state.bindInteger(2, 0); + state.bindInteger(3, mid); + state.step(); + state.dispose(); + } + } + cursor.dispose(); + } + + if (load_type == 3 || load_type == 4 || queryFromServer && load_type == 2) { + cursor = database.queryFinalized(String.format(Locale.US, "SELECT max(mid) FROM messages WHERE uid = %d AND mid > 0", dialogId)); + if (cursor.next()) { + last_message_id = cursor.intValue(0); + } + cursor.dispose(); + + if (load_type == 4 && offset_date != 0) { + int startMid; + int endMid; + + cursor = database.queryFinalized(String.format(Locale.US, "SELECT max(mid) FROM messages WHERE uid = %d AND date <= %d AND mid > 0", dialogId, offset_date)); + if (cursor.next()) { + startMid = cursor.intValue(0); + } else { + startMid = -1; + } + cursor.dispose(); + cursor = database.queryFinalized(String.format(Locale.US, "SELECT min(mid) FROM messages WHERE uid = %d AND date >= %d AND mid > 0", dialogId, offset_date)); + if (cursor.next()) { + endMid = cursor.intValue(0); + } else { + endMid = -1; + } + cursor.dispose(); + if (startMid != -1 && endMid != -1) { + if (startMid == endMid) { + max_id_query = startMid; + } else { + cursor = database.queryFinalized(String.format(Locale.US, "SELECT start FROM messages_holes WHERE uid = %d AND start <= %d AND end > %d", dialogId, startMid, startMid)); + if (cursor.next()) { + startMid = -1; + } + cursor.dispose(); + if (startMid != -1) { + cursor = database.queryFinalized(String.format(Locale.US, "SELECT start FROM messages_holes WHERE uid = %d AND start <= %d AND end > %d", dialogId, endMid, endMid)); + if (cursor.next()) { + endMid = -1; + } + cursor.dispose(); + if (endMid != -1) { + max_id_override = endMid; + messageMaxId = max_id_query = endMid; + if (messageMaxId != 0 && channelId != 0) { + messageMaxId |= ((long) channelId) << 32; + } + } + } + } + } + } + + boolean containMessage = max_id_query != 0; + if (containMessage) { + cursor = database.queryFinalized(String.format(Locale.US, "SELECT start FROM messages_holes WHERE uid = %d AND start < %d AND end > %d", dialogId, max_id_query, max_id_query)); + if (cursor.next()) { + containMessage = false; + } + cursor.dispose(); + } + + if (containMessage) { + long holeMessageMaxId = 0; + long holeMessageMinId = 1; + cursor = database.queryFinalized(String.format(Locale.US, "SELECT start FROM messages_holes WHERE uid = %d AND start >= %d ORDER BY start ASC LIMIT 1", dialogId, max_id_query)); + if (cursor.next()) { + holeMessageMaxId = cursor.intValue(0); + if (channelId != 0) { + holeMessageMaxId |= ((long) channelId) << 32; + } + } + cursor.dispose(); + cursor = database.queryFinalized(String.format(Locale.US, "SELECT end FROM messages_holes WHERE uid = %d AND end <= %d ORDER BY end DESC LIMIT 1", dialogId, max_id_query)); + if (cursor.next()) { + holeMessageMinId = cursor.intValue(0); + if (channelId != 0) { + holeMessageMinId |= ((long) channelId) << 32; + } + } + cursor.dispose(); + if (holeMessageMaxId != 0 || holeMessageMinId != 1) { + if (holeMessageMaxId == 0) { + holeMessageMaxId = 1000000000; + if (channelId != 0) { + holeMessageMaxId |= ((long) channelId) << 32; + } + } + cursor = database.queryFinalized(String.format(Locale.US, "SELECT * FROM (SELECT m.read_state, m.data, m.send_state, m.mid, m.date, r.random_id, m.replydata, m.media, m.ttl, m.mention, m.imp FROM messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d AND m.mid <= %d AND (m.mid >= %d OR m.mid < 0) ORDER BY m.date DESC, m.mid DESC LIMIT %d) UNION " + + "SELECT * FROM (SELECT m.read_state, m.data, m.send_state, m.mid, m.date, r.random_id, m.replydata, m.media, m.ttl, m.mention, m.imp FROM messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d AND m.mid > %d AND (m.mid <= %d OR m.mid < 0) ORDER BY m.date ASC, m.mid ASC LIMIT %d)", dialogId, messageMaxId, holeMessageMinId, count_query / 2, dialogId, messageMaxId, holeMessageMaxId, count_query / 2)); + } else { + cursor = database.queryFinalized(String.format(Locale.US, "SELECT * FROM (SELECT m.read_state, m.data, m.send_state, m.mid, m.date, r.random_id, m.replydata, m.media, m.ttl, m.mention, m.imp FROM messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d AND m.mid <= %d ORDER BY m.date DESC, m.mid DESC LIMIT %d) UNION " + + "SELECT * FROM (SELECT m.read_state, m.data, m.send_state, m.mid, m.date, r.random_id, m.replydata, m.media, m.ttl, m.mention, m.imp FROM messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d AND m.mid > %d ORDER BY m.date ASC, m.mid ASC LIMIT %d)", dialogId, messageMaxId, count_query / 2, dialogId, messageMaxId, count_query / 2)); + } + } else { + if (load_type == 2) { + int existingUnreadCount = 0; + cursor = database.queryFinalized(String.format(Locale.US, "SELECT COUNT(*) FROM messages WHERE uid = %d AND mid != 0 AND out = 0 AND read_state IN(0,2)", dialogId)); + if (cursor.next()) { + existingUnreadCount = cursor.intValue(0); + } + cursor.dispose(); + if (existingUnreadCount == count_unread) { + unreadCountIsLocal = true; + cursor = database.queryFinalized(String.format(Locale.US, "SELECT * FROM (SELECT m.read_state, m.data, m.send_state, m.mid, m.date, r.random_id, m.replydata, m.media, m.ttl, m.mention, m.imp FROM messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d AND m.mid <= %d ORDER BY m.date DESC, m.mid DESC LIMIT %d) UNION " + + "SELECT * FROM (SELECT m.read_state, m.data, m.send_state, m.mid, m.date, r.random_id, m.replydata, m.media, m.ttl, m.mention, m.imp FROM messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d AND m.mid > %d ORDER BY m.date ASC, m.mid ASC LIMIT %d)", dialogId, messageMaxId, count_query / 2, dialogId, messageMaxId, count_query / 2)); + } else { + cursor = null; + } + } else { + cursor = null; + } + } + } else if (load_type == 1) { + long holeMessageId = 0; + cursor = database.queryFinalized(String.format(Locale.US, "SELECT start, end FROM messages_holes WHERE uid = %d AND start >= %d AND start != 1 AND end != 1 ORDER BY start ASC LIMIT 1", dialogId, max_id)); + if (cursor.next()) { + holeMessageId = cursor.intValue(0); + if (channelId != 0) { + holeMessageId |= ((long) channelId) << 32; + } + } + cursor.dispose(); + if (holeMessageId != 0) { + cursor = database.queryFinalized(String.format(Locale.US, "SELECT m.read_state, m.data, m.send_state, m.mid, m.date, r.random_id, m.replydata, m.media, m.ttl, m.mention, m.imp FROM messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d AND m.date >= %d AND m.mid > %d AND m.mid <= %d ORDER BY m.date ASC, m.mid ASC LIMIT %d", dialogId, minDate, messageMaxId, holeMessageId, count_query)); + } else { + cursor = database.queryFinalized(String.format(Locale.US, "SELECT m.read_state, m.data, m.send_state, m.mid, m.date, r.random_id, m.replydata, m.media, m.ttl, m.mention, m.imp FROM messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d AND m.date >= %d AND m.mid > %d ORDER BY m.date ASC, m.mid ASC LIMIT %d", dialogId, minDate, messageMaxId, count_query)); + } + } else if (minDate != 0) { + if (messageMaxId != 0) { + long holeMessageId = 0; + cursor = database.queryFinalized(String.format(Locale.US, "SELECT end FROM messages_holes WHERE uid = %d AND end <= %d ORDER BY end DESC LIMIT 1", dialogId, max_id)); + if (cursor.next()) { + holeMessageId = cursor.intValue(0); + if (channelId != 0) { + holeMessageId |= ((long) channelId) << 32; + } + } + cursor.dispose(); + if (holeMessageId != 0) { + cursor = database.queryFinalized(String.format(Locale.US, "SELECT m.read_state, m.data, m.send_state, m.mid, m.date, r.random_id, m.replydata, m.media, m.ttl, m.mention, m.imp FROM messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d AND m.date <= %d AND m.mid < %d AND (m.mid >= %d OR m.mid < 0) ORDER BY m.date DESC, m.mid DESC LIMIT %d", dialogId, minDate, messageMaxId, holeMessageId, count_query)); + } else { + cursor = database.queryFinalized(String.format(Locale.US, "SELECT m.read_state, m.data, m.send_state, m.mid, m.date, r.random_id, m.replydata, m.media, m.ttl, m.mention, m.imp FROM messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d AND m.date <= %d AND m.mid < %d ORDER BY m.date DESC, m.mid DESC LIMIT %d", dialogId, minDate, messageMaxId, count_query)); + } + } else { + cursor = database.queryFinalized(String.format(Locale.US, "SELECT m.read_state, m.data, m.send_state, m.mid, m.date, r.random_id, m.replydata, m.media, m.ttl, m.mention, m.imp FROM messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d AND m.date <= %d ORDER BY m.date DESC, m.mid DESC LIMIT %d,%d", dialogId, minDate, offset_query, count_query)); + } + } else { + cursor = database.queryFinalized(String.format(Locale.US, "SELECT max(mid) FROM messages WHERE uid = %d AND mid > 0", dialogId)); + if (cursor.next()) { + last_message_id = cursor.intValue(0); + } + cursor.dispose(); + + long holeMessageId = 0; + cursor = database.queryFinalized(String.format(Locale.US, "SELECT max(end) FROM messages_holes WHERE uid = %d", dialogId)); + if (cursor.next()) { + holeMessageId = cursor.intValue(0); + if (channelId != 0) { + holeMessageId |= ((long) channelId) << 32; + } + } + cursor.dispose(); + if (holeMessageId != 0) { + cursor = database.queryFinalized(String.format(Locale.US, "SELECT m.read_state, m.data, m.send_state, m.mid, m.date, r.random_id, m.replydata, m.media, m.ttl, m.mention, m.imp FROM messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d AND (m.mid >= %d OR m.mid < 0) ORDER BY m.date DESC, m.mid DESC LIMIT %d,%d", dialogId, holeMessageId, offset_query, count_query)); + } else { + cursor = database.queryFinalized(String.format(Locale.US, "SELECT m.read_state, m.data, m.send_state, m.mid, m.date, r.random_id, m.replydata, m.media, m.ttl, m.mention, m.imp FROM messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d ORDER BY m.date DESC, m.mid DESC LIMIT %d,%d", dialogId, offset_query, count_query)); + } + } + } else { isEnd = true; - cursor = database.queryFinalized(String.format(Locale.US, "SELECT m.data, m.send_state, m.mid, m.date, r.random_id, m.replydata, m.ttl FROM scheduled_messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d ORDER BY m.date DESC", dialog_id)); + + if (load_type == 3 && minDate == 0) { + cursor = database.queryFinalized(String.format(Locale.US, "SELECT min(mid) FROM messages WHERE uid = %d AND mid < 0", dialogId)); + if (cursor.next()) { + min_unread_id = cursor.intValue(0); + } + cursor.dispose(); + + int min_unread_id2 = 0; + cursor = database.queryFinalized(String.format(Locale.US, "SELECT max(mid), max(date) FROM messages WHERE uid = %d AND out = 0 AND read_state IN(0,2) AND mid < 0", dialogId)); + if (cursor.next()) { + min_unread_id2 = cursor.intValue(0); + max_unread_date = cursor.intValue(1); + } + cursor.dispose(); + if (min_unread_id2 != 0) { + min_unread_id = min_unread_id2; + cursor = database.queryFinalized(String.format(Locale.US, "SELECT COUNT(*) FROM messages WHERE uid = %d AND mid <= %d AND out = 0 AND read_state IN(0,2)", dialogId, min_unread_id2)); + if (cursor.next()) { + count_unread = cursor.intValue(0); + } + cursor.dispose(); + } + } + + if (load_type == 3 || load_type == 4) { + cursor = database.queryFinalized(String.format(Locale.US, "SELECT min(mid) FROM messages WHERE uid = %d AND mid < 0", dialogId)); + if (cursor.next()) { + last_message_id = cursor.intValue(0); + } + cursor.dispose(); + + cursor = database.queryFinalized(String.format(Locale.US, "SELECT * FROM (SELECT m.read_state, m.data, m.send_state, m.mid, m.date, r.random_id, m.replydata, m.media, m.ttl, m.mention, m.imp FROM messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d AND m.mid <= %d ORDER BY m.mid DESC LIMIT %d) UNION " + + "SELECT * FROM (SELECT m.read_state, m.data, m.send_state, m.mid, m.date, r.random_id, m.replydata, m.media, m.ttl, m.mention, m.imp FROM messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d AND m.mid > %d ORDER BY m.mid ASC LIMIT %d)", dialogId, messageMaxId, count_query / 2, dialogId, messageMaxId, count_query / 2)); + } else if (load_type == 1) { + cursor = database.queryFinalized(String.format(Locale.US, "SELECT m.read_state, m.data, m.send_state, m.mid, m.date, r.random_id, m.replydata, m.media, m.ttl, m.mention, m.imp FROM messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d AND m.mid < %d ORDER BY m.mid DESC LIMIT %d", dialogId, max_id, count_query)); + } else if (minDate != 0) { + if (max_id != 0) { + cursor = database.queryFinalized(String.format(Locale.US, "SELECT m.read_state, m.data, m.send_state, m.mid, m.date, r.random_id, m.replydata, m.media, m.ttl, m.mention, m.imp FROM messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d AND m.mid > %d ORDER BY m.mid ASC LIMIT %d", dialogId, max_id, count_query)); + } else { + cursor = database.queryFinalized(String.format(Locale.US, "SELECT m.read_state, m.data, m.send_state, m.mid, m.date, r.random_id, m.replydata, m.media, m.ttl, m.mention, m.imp FROM messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d AND m.date <= %d ORDER BY m.mid ASC LIMIT %d,%d", dialogId, minDate, offset_query, count_query)); + } + } else { + if (load_type == 2) { + cursor = database.queryFinalized(String.format(Locale.US, "SELECT min(mid) FROM messages WHERE uid = %d AND mid < 0", dialogId)); + if (cursor.next()) { + last_message_id = cursor.intValue(0); + } + cursor.dispose(); + + cursor = database.queryFinalized(String.format(Locale.US, "SELECT max(mid), max(date) FROM messages WHERE uid = %d AND out = 0 AND read_state IN(0,2) AND mid < 0", dialogId)); + if (cursor.next()) { + min_unread_id = cursor.intValue(0); + max_unread_date = cursor.intValue(1); + } + cursor.dispose(); + if (min_unread_id != 0) { + cursor = database.queryFinalized(String.format(Locale.US, "SELECT COUNT(*) FROM messages WHERE uid = %d AND mid <= %d AND out = 0 AND read_state IN(0,2)", dialogId, min_unread_id)); + if (cursor.next()) { + count_unread = cursor.intValue(0); + } + cursor.dispose(); + } + } + + if (count_query > count_unread || count_unread < num) { + count_query = Math.max(count_query, count_unread + 10); + if (count_unread < num) { + count_unread = 0; + min_unread_id = 0; + last_message_id = 0; + } + } else { + offset_query = count_unread - count_query; + count_query += 10; + } + cursor = database.queryFinalized(String.format(Locale.US, "SELECT m.read_state, m.data, m.send_state, m.mid, m.date, r.random_id, m.replydata, m.media, m.ttl, m.mention, m.imp FROM messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d ORDER BY m.mid ASC LIMIT %d,%d", dialogId, offset_query, count_query)); + } + } + int minId = Integer.MAX_VALUE; + int maxId = Integer.MIN_VALUE; + if (cursor != null) { while (cursor.next()) { - NativeByteBuffer data = cursor.byteBufferValue(0); + NativeByteBuffer data = cursor.byteBufferValue(1); if (data != null) { TLRPC.Message message = TLRPC.Message.TLdeserialize(data, data.readInt32(false), false); - message.send_state = cursor.intValue(1); - message.id = cursor.intValue(2); + message.send_state = cursor.intValue(2); + message.id = cursor.intValue(3); if (message.id > 0 && message.send_state != 0 && message.send_state != 3) { message.send_state = 0; } - if (dialog_id == currentUserId) { + if (dialogId == currentUserId) { message.out = true; - message.unread = false; - } else { - message.unread = true; } message.readAttachPath(data, currentUserId); data.reuse(); - message.date = cursor.intValue(3); - message.dialog_id = dialog_id; - if (message.ttl == 0) { - message.ttl = cursor.intValue(6); + MessageObject.setUnreadFlags(message, cursor.intValue(0)); + if (message.id > 0) { + minId = Math.min(message.id, minId); + maxId = Math.max(message.id, maxId); + } + message.date = cursor.intValue(4); + message.dialog_id = dialogId; + if ((message.flags & TLRPC.MESSAGE_FLAG_HAS_VIEWS) != 0) { + message.views = cursor.intValue(7); + } + if (lower_id != 0 && message.ttl == 0) { + message.ttl = cursor.intValue(8); + } + if (cursor.intValue(9) != 0) { + message.mentioned = true; + } + int flags = cursor.intValue(10); + if ((flags & 1) != 0) { + message.stickerVerified = 0; + } else if ((flags & 2) != 0) { + message.stickerVerified = 2; } res.messages.add(message); addUsersAndChatsFromMessage(message, usersToLoad, chatsToLoad); if (message.reply_to_msg_id != 0 || message.reply_to_random_id != 0) { - if (!cursor.isNull(5)) { - data = cursor.byteBufferValue(5); + if (!cursor.isNull(6)) { + data = cursor.byteBufferValue(6); if (data != null) { message.replyMessage = TLRPC.Message.TLdeserialize(data, data.readInt32(false), false); message.replyMessage.readAttachPath(data, currentUserId); @@ -5725,590 +6187,174 @@ public class MessagesStorage extends BaseController { } } } + if (lower_id == 0 && !cursor.isNull(5)) { + message.random_id = cursor.longValue(5); + } + if (MessageObject.isSecretMedia(message)) { + try { + SQLiteCursor cursor2 = database.queryFinalized(String.format(Locale.US, "SELECT date FROM enc_tasks_v2 WHERE mid = %d", message.id)); + if (cursor2.next()) { + message.destroyTime = cursor2.intValue(0); + } + cursor2.dispose(); + } catch (Exception e) { + FileLog.e(e); + } + } } } cursor.dispose(); - } else { - int lower_id = (int) dialog_id; - if (lower_id != 0) { - if (load_type == 3 && minDate == 0) { - cursor = database.queryFinalized("SELECT inbox_max, unread_count, date, unread_count_i FROM dialogs WHERE did = " + dialog_id); - if (cursor.next()) { - min_unread_id = cursor.intValue(0) + 1; - count_unread = cursor.intValue(1); - max_unread_date = cursor.intValue(2); - mentions_unread = cursor.intValue(3); - } - cursor.dispose(); - } else if (load_type != 1 && load_type != 3 && load_type != 4 && minDate == 0) { - if (load_type == 2) { - cursor = database.queryFinalized("SELECT inbox_max, unread_count, date, unread_count_i FROM dialogs WHERE did = " + dialog_id); - if (cursor.next()) { - messageMaxId = max_id_query = min_unread_id = cursor.intValue(0); - count_unread = cursor.intValue(1); - max_unread_date = cursor.intValue(2); - mentions_unread = cursor.intValue(3); - queryFromServer = true; - if (messageMaxId != 0 && channelId != 0) { - messageMaxId |= ((long) channelId) << 32; - } - if (dialog_id == currentUserId) { - count_unread = 0; - } - } - cursor.dispose(); - if (!queryFromServer) { - cursor = database.queryFinalized(String.format(Locale.US, "SELECT min(mid), max(date) FROM messages WHERE uid = %d AND out = 0 AND read_state IN(0,2) AND mid > 0", dialog_id)); - if (cursor.next()) { - min_unread_id = cursor.intValue(0); - max_unread_date = cursor.intValue(1); - } - cursor.dispose(); - if (min_unread_id != 0) { - cursor = database.queryFinalized(String.format(Locale.US, "SELECT COUNT(*) FROM messages WHERE uid = %d AND mid >= %d AND out = 0 AND read_state IN(0,2)", dialog_id, min_unread_id)); - if (cursor.next()) { - count_unread = cursor.intValue(0); - } - cursor.dispose(); - } - } else if (max_id_query == 0) { - int existingUnreadCount = 0; - cursor = database.queryFinalized(String.format(Locale.US, "SELECT COUNT(*) FROM messages WHERE uid = %d AND mid > 0 AND out = 0 AND read_state IN(0,2)", dialog_id)); - if (cursor.next()) { - existingUnreadCount = cursor.intValue(0); - } - cursor.dispose(); - if (existingUnreadCount == count_unread) { - cursor = database.queryFinalized(String.format(Locale.US, "SELECT min(mid) FROM messages WHERE uid = %d AND out = 0 AND read_state IN(0,2) AND mid > 0", dialog_id)); - if (cursor.next()) { - messageMaxId = max_id_query = min_unread_id = cursor.intValue(0); - if (messageMaxId != 0 && channelId != 0) { - messageMaxId |= ((long) channelId) << 32; - } - } - cursor.dispose(); - } - } else { - cursor = database.queryFinalized(String.format(Locale.US, "SELECT start, end FROM messages_holes WHERE uid = %d AND start < %d AND end > %d", dialog_id, max_id_query, max_id_query)); - boolean containMessage = !cursor.next(); - cursor.dispose(); + } - if (containMessage) { - cursor = database.queryFinalized(String.format(Locale.US, "SELECT min(mid) FROM messages WHERE uid = %d AND out = 0 AND read_state IN(0,2) AND mid > %d", dialog_id, max_id_query)); - if (cursor.next()) { - messageMaxId = max_id_query = cursor.intValue(0); - if (messageMaxId != 0 && channelId != 0) { - messageMaxId |= ((long) channelId) << 32; - } - } - cursor.dispose(); - } - } - } - - if (count_query > count_unread || count_unread < num) { - count_query = Math.max(count_query, count_unread + 10); - if (count_unread < num) { - count_unread = 0; - min_unread_id = 0; - messageMaxId = 0; - last_message_id = 0; - queryFromServer = false; - } - } else { - offset_query = count_unread - count_query; - count_query += 10; - } + Collections.sort(res.messages, (lhs, rhs) -> { + if (lhs.id > 0 && rhs.id > 0) { + if (lhs.id > rhs.id) { + return -1; + } else if (lhs.id < rhs.id) { + return 1; } - - cursor = database.queryFinalized(String.format(Locale.US, "SELECT start FROM messages_holes WHERE uid = %d AND start IN (0, 1)", dialog_id)); - if (cursor.next()) { - isEnd = cursor.intValue(0) == 1; - cursor.dispose(); - } else { - cursor.dispose(); - cursor = database.queryFinalized(String.format(Locale.US, "SELECT min(mid) FROM messages WHERE uid = %d AND mid > 0", dialog_id)); - if (cursor.next()) { - int mid = cursor.intValue(0); - if (mid != 0) { - SQLitePreparedStatement state = database.executeFast("REPLACE INTO messages_holes VALUES(?, ?, ?)"); - state.requery(); - state.bindLong(1, dialog_id); - state.bindInteger(2, 0); - state.bindInteger(3, mid); - state.step(); - state.dispose(); - } - } - cursor.dispose(); - } - - if (load_type == 3 || load_type == 4 || queryFromServer && load_type == 2) { - cursor = database.queryFinalized(String.format(Locale.US, "SELECT max(mid) FROM messages WHERE uid = %d AND mid > 0", dialog_id)); - if (cursor.next()) { - last_message_id = cursor.intValue(0); - } - cursor.dispose(); - - if (load_type == 4 && offset_date != 0) { - int startMid; - int endMid; - - cursor = database.queryFinalized(String.format(Locale.US, "SELECT max(mid) FROM messages WHERE uid = %d AND date <= %d AND mid > 0", dialog_id, offset_date)); - if (cursor.next()) { - startMid = cursor.intValue(0); - } else { - startMid = -1; - } - cursor.dispose(); - cursor = database.queryFinalized(String.format(Locale.US, "SELECT min(mid) FROM messages WHERE uid = %d AND date >= %d AND mid > 0", dialog_id, offset_date)); - if (cursor.next()) { - endMid = cursor.intValue(0); - } else { - endMid = -1; - } - cursor.dispose(); - if (startMid != -1 && endMid != -1) { - if (startMid == endMid) { - max_id_query = startMid; - } else { - cursor = database.queryFinalized(String.format(Locale.US, "SELECT start FROM messages_holes WHERE uid = %d AND start <= %d AND end > %d", dialog_id, startMid, startMid)); - if (cursor.next()) { - startMid = -1; - } - cursor.dispose(); - if (startMid != -1) { - cursor = database.queryFinalized(String.format(Locale.US, "SELECT start FROM messages_holes WHERE uid = %d AND start <= %d AND end > %d", dialog_id, endMid, endMid)); - if (cursor.next()) { - endMid = -1; - } - cursor.dispose(); - if (endMid != -1) { - max_id_override = endMid; - messageMaxId = max_id_query = endMid; - if (messageMaxId != 0 && channelId != 0) { - messageMaxId |= ((long) channelId) << 32; - } - } - } - } - } - } - - boolean containMessage = max_id_query != 0; - if (containMessage) { - cursor = database.queryFinalized(String.format(Locale.US, "SELECT start FROM messages_holes WHERE uid = %d AND start < %d AND end > %d", dialog_id, max_id_query, max_id_query)); - if (cursor.next()) { - containMessage = false; - } - cursor.dispose(); - } - - if (containMessage) { - long holeMessageMaxId = 0; - long holeMessageMinId = 1; - cursor = database.queryFinalized(String.format(Locale.US, "SELECT start FROM messages_holes WHERE uid = %d AND start >= %d ORDER BY start ASC LIMIT 1", dialog_id, max_id_query)); - if (cursor.next()) { - holeMessageMaxId = cursor.intValue(0); - if (channelId != 0) { - holeMessageMaxId |= ((long) channelId) << 32; - } - } - cursor.dispose(); - cursor = database.queryFinalized(String.format(Locale.US, "SELECT end FROM messages_holes WHERE uid = %d AND end <= %d ORDER BY end DESC LIMIT 1", dialog_id, max_id_query)); - if (cursor.next()) { - holeMessageMinId = cursor.intValue(0); - if (channelId != 0) { - holeMessageMinId |= ((long) channelId) << 32; - } - } - cursor.dispose(); - if (holeMessageMaxId != 0 || holeMessageMinId != 1) { - if (holeMessageMaxId == 0) { - holeMessageMaxId = 1000000000; - if (channelId != 0) { - holeMessageMaxId |= ((long) channelId) << 32; - } - } - cursor = database.queryFinalized(String.format(Locale.US, "SELECT * FROM (SELECT m.read_state, m.data, m.send_state, m.mid, m.date, r.random_id, m.replydata, m.media, m.ttl, m.mention FROM messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d AND m.mid <= %d AND (m.mid >= %d OR m.mid < 0) ORDER BY m.date DESC, m.mid DESC LIMIT %d) UNION " + - "SELECT * FROM (SELECT m.read_state, m.data, m.send_state, m.mid, m.date, r.random_id, m.replydata, m.media, m.ttl, m.mention FROM messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d AND m.mid > %d AND (m.mid <= %d OR m.mid < 0) ORDER BY m.date ASC, m.mid ASC LIMIT %d)", dialog_id, messageMaxId, holeMessageMinId, count_query / 2, dialog_id, messageMaxId, holeMessageMaxId, count_query / 2)); - } else { - cursor = database.queryFinalized(String.format(Locale.US, "SELECT * FROM (SELECT m.read_state, m.data, m.send_state, m.mid, m.date, r.random_id, m.replydata, m.media, m.ttl, m.mention FROM messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d AND m.mid <= %d ORDER BY m.date DESC, m.mid DESC LIMIT %d) UNION " + - "SELECT * FROM (SELECT m.read_state, m.data, m.send_state, m.mid, m.date, r.random_id, m.replydata, m.media, m.ttl, m.mention FROM messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d AND m.mid > %d ORDER BY m.date ASC, m.mid ASC LIMIT %d)", dialog_id, messageMaxId, count_query / 2, dialog_id, messageMaxId, count_query / 2)); - } - } else { - if (load_type == 2) { - int existingUnreadCount = 0; - cursor = database.queryFinalized(String.format(Locale.US, "SELECT COUNT(*) FROM messages WHERE uid = %d AND mid != 0 AND out = 0 AND read_state IN(0,2)", dialog_id)); - if (cursor.next()) { - existingUnreadCount = cursor.intValue(0); - } - cursor.dispose(); - if (existingUnreadCount == count_unread) { - unreadCountIsLocal = true; - cursor = database.queryFinalized(String.format(Locale.US, "SELECT * FROM (SELECT m.read_state, m.data, m.send_state, m.mid, m.date, r.random_id, m.replydata, m.media, m.ttl, m.mention FROM messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d AND m.mid <= %d ORDER BY m.date DESC, m.mid DESC LIMIT %d) UNION " + - "SELECT * FROM (SELECT m.read_state, m.data, m.send_state, m.mid, m.date, r.random_id, m.replydata, m.media, m.ttl, m.mention FROM messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d AND m.mid > %d ORDER BY m.date ASC, m.mid ASC LIMIT %d)", dialog_id, messageMaxId, count_query / 2, dialog_id, messageMaxId, count_query / 2)); - } else { - cursor = null; - } - } else { - cursor = null; - } - } - } else if (load_type == 1) { - long holeMessageId = 0; - cursor = database.queryFinalized(String.format(Locale.US, "SELECT start, end FROM messages_holes WHERE uid = %d AND start >= %d AND start != 1 AND end != 1 ORDER BY start ASC LIMIT 1", dialog_id, max_id)); - if (cursor.next()) { - holeMessageId = cursor.intValue(0); - if (channelId != 0) { - holeMessageId |= ((long) channelId) << 32; - } - } - cursor.dispose(); - if (holeMessageId != 0) { - cursor = database.queryFinalized(String.format(Locale.US, "SELECT m.read_state, m.data, m.send_state, m.mid, m.date, r.random_id, m.replydata, m.media, m.ttl, m.mention FROM messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d AND m.date >= %d AND m.mid > %d AND m.mid <= %d ORDER BY m.date ASC, m.mid ASC LIMIT %d", dialog_id, minDate, messageMaxId, holeMessageId, count_query)); - } else { - cursor = database.queryFinalized(String.format(Locale.US, "SELECT m.read_state, m.data, m.send_state, m.mid, m.date, r.random_id, m.replydata, m.media, m.ttl, m.mention FROM messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d AND m.date >= %d AND m.mid > %d ORDER BY m.date ASC, m.mid ASC LIMIT %d", dialog_id, minDate, messageMaxId, count_query)); - } - } else if (minDate != 0) { - if (messageMaxId != 0) { - long holeMessageId = 0; - cursor = database.queryFinalized(String.format(Locale.US, "SELECT end FROM messages_holes WHERE uid = %d AND end <= %d ORDER BY end DESC LIMIT 1", dialog_id, max_id)); - if (cursor.next()) { - holeMessageId = cursor.intValue(0); - if (channelId != 0) { - holeMessageId |= ((long) channelId) << 32; - } - } - cursor.dispose(); - if (holeMessageId != 0) { - cursor = database.queryFinalized(String.format(Locale.US, "SELECT m.read_state, m.data, m.send_state, m.mid, m.date, r.random_id, m.replydata, m.media, m.ttl, m.mention FROM messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d AND m.date <= %d AND m.mid < %d AND (m.mid >= %d OR m.mid < 0) ORDER BY m.date DESC, m.mid DESC LIMIT %d", dialog_id, minDate, messageMaxId, holeMessageId, count_query)); - } else { - cursor = database.queryFinalized(String.format(Locale.US, "SELECT m.read_state, m.data, m.send_state, m.mid, m.date, r.random_id, m.replydata, m.media, m.ttl, m.mention FROM messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d AND m.date <= %d AND m.mid < %d ORDER BY m.date DESC, m.mid DESC LIMIT %d", dialog_id, minDate, messageMaxId, count_query)); - } - } else { - cursor = database.queryFinalized(String.format(Locale.US, "SELECT m.read_state, m.data, m.send_state, m.mid, m.date, r.random_id, m.replydata, m.media, m.ttl, m.mention FROM messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d AND m.date <= %d ORDER BY m.date DESC, m.mid DESC LIMIT %d,%d", dialog_id, minDate, offset_query, count_query)); - } - } else { - cursor = database.queryFinalized(String.format(Locale.US, "SELECT max(mid) FROM messages WHERE uid = %d AND mid > 0", dialog_id)); - if (cursor.next()) { - last_message_id = cursor.intValue(0); - } - cursor.dispose(); - - long holeMessageId = 0; - cursor = database.queryFinalized(String.format(Locale.US, "SELECT max(end) FROM messages_holes WHERE uid = %d", dialog_id)); - if (cursor.next()) { - holeMessageId = cursor.intValue(0); - if (channelId != 0) { - holeMessageId |= ((long) channelId) << 32; - } - } - cursor.dispose(); - if (holeMessageId != 0) { - cursor = database.queryFinalized(String.format(Locale.US, "SELECT m.read_state, m.data, m.send_state, m.mid, m.date, r.random_id, m.replydata, m.media, m.ttl, m.mention FROM messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d AND (m.mid >= %d OR m.mid < 0) ORDER BY m.date DESC, m.mid DESC LIMIT %d,%d", dialog_id, holeMessageId, offset_query, count_query)); - } else { - cursor = database.queryFinalized(String.format(Locale.US, "SELECT m.read_state, m.data, m.send_state, m.mid, m.date, r.random_id, m.replydata, m.media, m.ttl, m.mention FROM messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d ORDER BY m.date DESC, m.mid DESC LIMIT %d,%d", dialog_id, offset_query, count_query)); - } + } else if (lhs.id < 0 && rhs.id < 0) { + if (lhs.id < rhs.id) { + return -1; + } else if (lhs.id > rhs.id) { + return 1; } } else { - isEnd = true; - - if (load_type == 3 && minDate == 0) { - cursor = database.queryFinalized(String.format(Locale.US, "SELECT min(mid) FROM messages WHERE uid = %d AND mid < 0", dialog_id)); - if (cursor.next()) { - min_unread_id = cursor.intValue(0); - } - cursor.dispose(); - - int min_unread_id2 = 0; - cursor = database.queryFinalized(String.format(Locale.US, "SELECT max(mid), max(date) FROM messages WHERE uid = %d AND out = 0 AND read_state IN(0,2) AND mid < 0", dialog_id)); - if (cursor.next()) { - min_unread_id2 = cursor.intValue(0); - max_unread_date = cursor.intValue(1); - } - cursor.dispose(); - if (min_unread_id2 != 0) { - min_unread_id = min_unread_id2; - cursor = database.queryFinalized(String.format(Locale.US, "SELECT COUNT(*) FROM messages WHERE uid = %d AND mid <= %d AND out = 0 AND read_state IN(0,2)", dialog_id, min_unread_id2)); - if (cursor.next()) { - count_unread = cursor.intValue(0); - } - cursor.dispose(); - } - } - - if (load_type == 3 || load_type == 4) { - cursor = database.queryFinalized(String.format(Locale.US, "SELECT min(mid) FROM messages WHERE uid = %d AND mid < 0", dialog_id)); - if (cursor.next()) { - last_message_id = cursor.intValue(0); - } - cursor.dispose(); - - cursor = database.queryFinalized(String.format(Locale.US, "SELECT * FROM (SELECT m.read_state, m.data, m.send_state, m.mid, m.date, r.random_id, m.replydata, m.media, m.ttl, m.mention FROM messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d AND m.mid <= %d ORDER BY m.mid DESC LIMIT %d) UNION " + - "SELECT * FROM (SELECT m.read_state, m.data, m.send_state, m.mid, m.date, r.random_id, m.replydata, m.media, m.ttl, m.mention FROM messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d AND m.mid > %d ORDER BY m.mid ASC LIMIT %d)", dialog_id, messageMaxId, count_query / 2, dialog_id, messageMaxId, count_query / 2)); - } else if (load_type == 1) { - cursor = database.queryFinalized(String.format(Locale.US, "SELECT m.read_state, m.data, m.send_state, m.mid, m.date, r.random_id, m.replydata, m.media, m.ttl, m.mention FROM messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d AND m.mid < %d ORDER BY m.mid DESC LIMIT %d", dialog_id, max_id, count_query)); - } else if (minDate != 0) { - if (max_id != 0) { - cursor = database.queryFinalized(String.format(Locale.US, "SELECT m.read_state, m.data, m.send_state, m.mid, m.date, r.random_id, m.replydata, m.media, m.ttl, m.mention FROM messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d AND m.mid > %d ORDER BY m.mid ASC LIMIT %d", dialog_id, max_id, count_query)); - } else { - cursor = database.queryFinalized(String.format(Locale.US, "SELECT m.read_state, m.data, m.send_state, m.mid, m.date, r.random_id, m.replydata, m.media, m.ttl, m.mention FROM messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d AND m.date <= %d ORDER BY m.mid ASC LIMIT %d,%d", dialog_id, minDate, offset_query, count_query)); - } - } else { - if (load_type == 2) { - cursor = database.queryFinalized(String.format(Locale.US, "SELECT min(mid) FROM messages WHERE uid = %d AND mid < 0", dialog_id)); - if (cursor.next()) { - last_message_id = cursor.intValue(0); - } - cursor.dispose(); - - cursor = database.queryFinalized(String.format(Locale.US, "SELECT max(mid), max(date) FROM messages WHERE uid = %d AND out = 0 AND read_state IN(0,2) AND mid < 0", dialog_id)); - if (cursor.next()) { - min_unread_id = cursor.intValue(0); - max_unread_date = cursor.intValue(1); - } - cursor.dispose(); - if (min_unread_id != 0) { - cursor = database.queryFinalized(String.format(Locale.US, "SELECT COUNT(*) FROM messages WHERE uid = %d AND mid <= %d AND out = 0 AND read_state IN(0,2)", dialog_id, min_unread_id)); - if (cursor.next()) { - count_unread = cursor.intValue(0); - } - cursor.dispose(); - } - } - - if (count_query > count_unread || count_unread < num) { - count_query = Math.max(count_query, count_unread + 10); - if (count_unread < num) { - count_unread = 0; - min_unread_id = 0; - last_message_id = 0; - } - } else { - offset_query = count_unread - count_query; - count_query += 10; - } - cursor = database.queryFinalized(String.format(Locale.US, "SELECT m.read_state, m.data, m.send_state, m.mid, m.date, r.random_id, m.replydata, m.media, m.ttl, m.mention FROM messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d ORDER BY m.mid ASC LIMIT %d,%d", dialog_id, offset_query, count_query)); + if (lhs.date > rhs.date) { + return -1; + } else if (lhs.date < rhs.date) { + return 1; } } - int minId = Integer.MAX_VALUE; - int maxId = Integer.MIN_VALUE; - if (cursor != null) { - while (cursor.next()) { - NativeByteBuffer data = cursor.byteBufferValue(1); - if (data != null) { - TLRPC.Message message = TLRPC.Message.TLdeserialize(data, data.readInt32(false), false); - message.send_state = cursor.intValue(2); - message.id = cursor.intValue(3); - if (message.id > 0 && message.send_state != 0 && message.send_state != 3) { - message.send_state = 0; - } - if (dialog_id == currentUserId) { - message.out = true; - } - message.readAttachPath(data, currentUserId); - data.reuse(); - MessageObject.setUnreadFlags(message, cursor.intValue(0)); - if (message.id > 0) { - minId = Math.min(message.id, minId); - maxId = Math.max(message.id, maxId); - } - message.date = cursor.intValue(4); - message.dialog_id = dialog_id; - if ((message.flags & TLRPC.MESSAGE_FLAG_HAS_VIEWS) != 0) { - message.views = cursor.intValue(7); - } - if (lower_id != 0 && message.ttl == 0) { - message.ttl = cursor.intValue(8); - } - if (cursor.intValue(9) != 0) { - message.mentioned = true; - } - res.messages.add(message); + return 0; + }); - addUsersAndChatsFromMessage(message, usersToLoad, chatsToLoad); - - if (message.reply_to_msg_id != 0 || message.reply_to_random_id != 0) { - if (!cursor.isNull(6)) { - data = cursor.byteBufferValue(6); - if (data != null) { - message.replyMessage = TLRPC.Message.TLdeserialize(data, data.readInt32(false), false); - message.replyMessage.readAttachPath(data, currentUserId); - data.reuse(); - if (message.replyMessage != null) { - if (MessageObject.isMegagroup(message)) { - message.replyMessage.flags |= TLRPC.MESSAGE_FLAG_MEGAGROUP; - } - addUsersAndChatsFromMessage(message.replyMessage, usersToLoad, chatsToLoad); - } - } - } - if (message.replyMessage == null) { - if (message.reply_to_msg_id != 0) { - long messageId = message.reply_to_msg_id; - if (message.to_id.channel_id != 0) { - messageId |= ((long) message.to_id.channel_id) << 32; - } - if (!replyMessages.contains(messageId)) { - replyMessages.add(messageId); - } - ArrayList messages = replyMessageOwners.get(message.reply_to_msg_id); - if (messages == null) { - messages = new ArrayList<>(); - replyMessageOwners.put(message.reply_to_msg_id, messages); - } - messages.add(message); - } else { - if (!replyMessages.contains(message.reply_to_random_id)) { - replyMessages.add(message.reply_to_random_id); - } - ArrayList messages = replyMessageRandomOwners.get(message.reply_to_random_id); - if (messages == null) { - messages = new ArrayList<>(); - replyMessageRandomOwners.put(message.reply_to_random_id, messages); - } - messages.add(message); - } - } - } - if (lower_id == 0 && !cursor.isNull(5)) { - message.random_id = cursor.longValue(5); - } - if (MessageObject.isSecretMedia(message)) { - try { - SQLiteCursor cursor2 = database.queryFinalized(String.format(Locale.US, "SELECT date FROM enc_tasks_v2 WHERE mid = %d", message.id)); - if (cursor2.next()) { - message.destroyTime = cursor2.intValue(0); - } - cursor2.dispose(); - } catch (Exception e) { - FileLog.e(e); - } - } - } - } - cursor.dispose(); - } - - Collections.sort(res.messages, (lhs, rhs) -> { - if (lhs.id > 0 && rhs.id > 0) { - if (lhs.id > rhs.id) { - return -1; - } else if (lhs.id < rhs.id) { - return 1; - } - } else if (lhs.id < 0 && rhs.id < 0) { - if (lhs.id < rhs.id) { - return -1; - } else if (lhs.id > rhs.id) { - return 1; - } - } else { - if (lhs.date > rhs.date) { - return -1; - } else if (lhs.date < rhs.date) { - return 1; - } - } - return 0; - }); - - if (lower_id != 0) { - if ((load_type == 3 || load_type == 4 || load_type == 2 && queryFromServer && !unreadCountIsLocal) && !res.messages.isEmpty()) { - if (!(minId <= max_id_query && maxId >= max_id_query)) { - replyMessages.clear(); - usersToLoad.clear(); - chatsToLoad.clear(); - res.messages.clear(); - } - } - if ((load_type == 4 || load_type == 3) && res.messages.size() == 1) { + if (lower_id != 0) { + if ((load_type == 3 || load_type == 4 || load_type == 2 && queryFromServer && !unreadCountIsLocal) && !res.messages.isEmpty()) { + if (!(minId <= max_id_query && maxId >= max_id_query)) { + replyMessages.clear(); + usersToLoad.clear(); + chatsToLoad.clear(); res.messages.clear(); } } - if (mentions_unread != 0) { - cursor = database.queryFinalized(String.format(Locale.US, "SELECT COUNT(mid) FROM messages WHERE uid = %d AND mention = 1 AND read_state IN(0, 1)", dialog_id)); - if (cursor.next()) { - if (mentions_unread != cursor.intValue(0)) { - mentions_unread *= -1; - } - } else { + if ((load_type == 4 || load_type == 3) && res.messages.size() == 1) { + res.messages.clear(); + } + } + if (mentions_unread != 0) { + cursor = database.queryFinalized(String.format(Locale.US, "SELECT COUNT(mid) FROM messages WHERE uid = %d AND mention = 1 AND read_state IN(0, 1)", dialogId)); + if (cursor.next()) { + if (mentions_unread != cursor.intValue(0)) { mentions_unread *= -1; } - cursor.dispose(); - } - } - if (!replyMessages.isEmpty()) { - if (replyMessageOwners.size() > 0) { - cursor = database.queryFinalized(String.format(Locale.US, "SELECT data, mid, date FROM messages WHERE mid IN(%s)", TextUtils.join(",", replyMessages))); } else { - cursor = database.queryFinalized(String.format(Locale.US, "SELECT m.data, m.mid, m.date, r.random_id FROM randoms as r INNER JOIN messages as m ON r.mid = m.mid WHERE r.random_id IN(%s)", TextUtils.join(",", replyMessages))); - } - while (cursor.next()) { - NativeByteBuffer data = cursor.byteBufferValue(0); - if (data != null) { - TLRPC.Message message = TLRPC.Message.TLdeserialize(data, data.readInt32(false), false); - message.readAttachPath(data, currentUserId); - data.reuse(); - message.id = cursor.intValue(1); - message.date = cursor.intValue(2); - message.dialog_id = dialog_id; - - addUsersAndChatsFromMessage(message, usersToLoad, chatsToLoad); - - if (replyMessageOwners.size() > 0) { - ArrayList arrayList = replyMessageOwners.get(message.id); - if (arrayList != null) { - for (int a = 0; a < arrayList.size(); a++) { - TLRPC.Message object = arrayList.get(a); - object.replyMessage = message; - if (MessageObject.isMegagroup(object)) { - object.replyMessage.flags |= TLRPC.MESSAGE_FLAG_MEGAGROUP; - } - } - } - } else { - long value = cursor.longValue(3); - ArrayList arrayList = replyMessageRandomOwners.get(value); - replyMessageRandomOwners.remove(value); - if (arrayList != null) { - for (int a = 0; a < arrayList.size(); a++) { - TLRPC.Message object = arrayList.get(a); - object.replyMessage = message; - object.reply_to_msg_id = message.id; - if (MessageObject.isMegagroup(object)) { - object.replyMessage.flags |= TLRPC.MESSAGE_FLAG_MEGAGROUP; - } - } - } - } - } + mentions_unread *= -1; } cursor.dispose(); - if (replyMessageRandomOwners.size() > 0) { - for (int b = 0; b < replyMessageRandomOwners.size(); b++) { - ArrayList arrayList = replyMessageRandomOwners.valueAt(b); - for (int a = 0; a < arrayList.size(); a++) { - arrayList.get(a).reply_to_random_id = 0; + } + } + if (!replyMessages.isEmpty()) { + if (replyMessageOwners.size() > 0) { + cursor = database.queryFinalized(String.format(Locale.US, "SELECT data, mid, date FROM messages WHERE mid IN(%s)", TextUtils.join(",", replyMessages))); + } else { + cursor = database.queryFinalized(String.format(Locale.US, "SELECT m.data, m.mid, m.date, r.random_id FROM randoms as r INNER JOIN messages as m ON r.mid = m.mid WHERE r.random_id IN(%s)", TextUtils.join(",", replyMessages))); + } + while (cursor.next()) { + NativeByteBuffer data = cursor.byteBufferValue(0); + if (data != null) { + TLRPC.Message message = TLRPC.Message.TLdeserialize(data, data.readInt32(false), false); + message.readAttachPath(data, currentUserId); + data.reuse(); + message.id = cursor.intValue(1); + message.date = cursor.intValue(2); + message.dialog_id = dialogId; + + addUsersAndChatsFromMessage(message, usersToLoad, chatsToLoad); + + if (replyMessageOwners.size() > 0) { + ArrayList arrayList = replyMessageOwners.get(message.id); + if (arrayList != null) { + for (int a = 0; a < arrayList.size(); a++) { + TLRPC.Message object = arrayList.get(a); + object.replyMessage = message; + if (MessageObject.isMegagroup(object)) { + object.replyMessage.flags |= TLRPC.MESSAGE_FLAG_MEGAGROUP; + } + } + } + } else { + long value = cursor.longValue(3); + ArrayList arrayList = replyMessageRandomOwners.get(value); + replyMessageRandomOwners.remove(value); + if (arrayList != null) { + for (int a = 0; a < arrayList.size(); a++) { + TLRPC.Message object = arrayList.get(a); + object.replyMessage = message; + object.reply_to_msg_id = message.id; + if (MessageObject.isMegagroup(object)) { + object.replyMessage.flags |= TLRPC.MESSAGE_FLAG_MEGAGROUP; + } + } } } } } - if (!usersToLoad.isEmpty()) { - getUsersInternal(TextUtils.join(",", usersToLoad), res.users); + cursor.dispose(); + if (replyMessageRandomOwners.size() > 0) { + for (int b = 0; b < replyMessageRandomOwners.size(); b++) { + ArrayList arrayList = replyMessageRandomOwners.valueAt(b); + for (int a = 0; a < arrayList.size(); a++) { + arrayList.get(a).reply_to_random_id = 0; + } + } } - if (!chatsToLoad.isEmpty()) { - getChatsInternal(TextUtils.join(",", chatsToLoad), res.chats); - } - } catch (Exception e) { - res.messages.clear(); - res.chats.clear(); - res.users.clear(); - FileLog.e(e); - } finally { - getMessagesController().processLoadedMessages(res, dialog_id, count_query, max_id_override, offset_date, true, classGuid, min_unread_id, last_message_id, count_unread, max_unread_date, load_type, isChannel, isEnd, scheduled, loadIndex, queryFromServer, mentions_unread); } + if (!usersToLoad.isEmpty()) { + getUsersInternal(TextUtils.join(",", usersToLoad), res.users); + } + if (!chatsToLoad.isEmpty()) { + getChatsInternal(TextUtils.join(",", chatsToLoad), res.chats); + } + } catch (Exception e) { + res.messages.clear(); + res.chats.clear(); + res.users.clear(); + FileLog.e(e); + } + int countQueryFinal = count_query; + int maxIdOverrideFinal = max_id_override; + int minUnreadIdFinal = min_unread_id; + int lastMessageIdFinal = last_message_id; + boolean isEndFinal = isEnd; + boolean queryFromServerFinal = queryFromServer; + int mentionsUnreadFinal = mentions_unread; + int countUnreadFinal = count_unread; + int maxUnreadDateFinal = max_unread_date; + if (!scheduled && mergeDialogId != 0 && res.messages.size() < count && isEnd && load_type == 2) { + Runnable runnable = getMessagesInternal(mergeDialogId, 0, count, Integer.MAX_VALUE, 0, 0, classGuid, 0, false, false, loadIndex); + return () -> { + getMessagesController().processLoadedMessages(res, dialogId, mergeDialogId, countQueryFinal, maxIdOverrideFinal, offset_date, true, classGuid, minUnreadIdFinal, lastMessageIdFinal, countUnreadFinal, maxUnreadDateFinal, load_type, isChannel, isEndFinal, scheduled, -loadIndex, queryFromServerFinal, mentionsUnreadFinal); + runnable.run(); + }; + } else { + return () -> getMessagesController().processLoadedMessages(res, dialogId, mergeDialogId, countQueryFinal, maxIdOverrideFinal, offset_date, true, classGuid, minUnreadIdFinal, lastMessageIdFinal, countUnreadFinal, maxUnreadDateFinal, load_type, isChannel, isEndFinal, scheduled, loadIndex, queryFromServerFinal, mentionsUnreadFinal); + } + } + + public void getMessages(long dialogId, long mergeDialogId, boolean loadInfo, int count, int max_id, int offset_date, int minDate, int classGuid, int load_type, boolean isChannel, boolean scheduled, int loadIndex) { + storageQueue.postRunnable(() -> { + long mergeDialogIdFinal = mergeDialogId; + int lowerId = (int) dialogId; + if (loadInfo) { + if (lowerId < 0) { + TLRPC.ChatFull info = loadChatInfoInternal(-lowerId, true, false); + if (info != null) { + mergeDialogIdFinal = -info.migrated_from_chat_id; + } + } + } + Utilities.stageQueue.postRunnable(getMessagesInternal(dialogId, mergeDialogIdFinal, count, max_id, offset_date, minDate, classGuid, load_type, isChannel, scheduled, loadIndex)); }); } @@ -7272,6 +7318,33 @@ public class MessagesStorage extends BaseController { return message.reply_markup != null && !(message.reply_markup instanceof TLRPC.TL_replyInlineMarkup) && (!message.reply_markup.selective || message.mentioned); } + public void updateMessageVerifyFlags(ArrayList messages) { + Utilities.stageQueue.postRunnable(() -> { + try { + database.beginTransaction(); + SQLitePreparedStatement state = database.executeFast("UPDATE messages SET imp = ? WHERE mid = ?"); + for (int a = 0, N = messages.size(); a < N; a++) { + TLRPC.Message message = messages.get(a); + state.requery(); + int flags = 0; + if (message.stickerVerified == 0) { + flags |= 1; + } else if (message.stickerVerified == 2) { + flags |= 2; + } + state.bindInteger(1, flags); + state.bindLong(2, message.id); + state.step(); + } + state.dispose(); + database.commitTransaction(); + } catch (Exception e) { + FileLog.e(e); + } + }); + + } + private void putMessagesInternal(final ArrayList messages, final boolean withTransaction, final boolean doNotUpdateDialogDate, final int downloadMask, boolean ifNoLastMessage, boolean scheduled) { try { if (scheduled) { @@ -7563,7 +7636,13 @@ public class MessagesStorage extends BaseController { } else { state_messages.bindInteger(9, getMessageMediaType(message)); } - state_messages.bindInteger(10, 0); + int flags = 0; + if (message.stickerVerified == 0) { + flags |= 1; + } else if (message.stickerVerified == 2) { + flags |= 2; + } + state_messages.bindInteger(10, flags); state_messages.bindInteger(11, message.mentioned ? 1 : 0); state_messages.step(); @@ -8909,7 +8988,7 @@ public class MessagesStorage extends BaseController { } } - public void replaceMessageIfExists(final TLRPC.Message message, int currentAccount, ArrayList users, ArrayList chats, boolean broadcast) { + public void replaceMessageIfExists(final TLRPC.Message message, ArrayList users, ArrayList chats, boolean broadcast) { if (message == null) { return; } @@ -8964,7 +9043,13 @@ public class MessagesStorage extends BaseController { } else { state.bindInteger(9, getMessageMediaType(message)); } - state.bindInteger(10, 0); + int flags = 0; + if (message.stickerVerified == 0) { + flags |= 1; + } else if (message.stickerVerified == 2) { + flags |= 2; + } + state.bindInteger(10, flags); state.bindInteger(11, message.mentioned ? 1 : 0); state.step(); @@ -9208,7 +9293,13 @@ public class MessagesStorage extends BaseController { } else { state_messages.bindInteger(9, getMessageMediaType(message)); } - state_messages.bindInteger(10, 0); + int flags = 0; + if (message.stickerVerified == 0) { + flags |= 1; + } else if (message.stickerVerified == 2) { + flags |= 2; + } + state_messages.bindInteger(10, flags); state_messages.bindInteger(11, message.mentioned ? 1 : 0); state_messages.step(); @@ -9723,7 +9814,13 @@ public class MessagesStorage extends BaseController { state_messages.bindInteger(7, (MessageObject.isOut(message) || message.from_scheduled ? 1 : 0)); state_messages.bindInteger(8, 0); state_messages.bindInteger(9, (message.flags & TLRPC.MESSAGE_FLAG_HAS_VIEWS) != 0 ? message.views : 0); - state_messages.bindInteger(10, 0); + int flags = 0; + if (message.stickerVerified == 0) { + flags |= 1; + } else if (message.stickerVerified == 2) { + flags |= 2; + } + state_messages.bindInteger(10, flags); state_messages.bindInteger(11, message.mentioned ? 1 : 0); state_messages.step(); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/NotificationCenter.java b/TMessagesProj/src/main/java/org/telegram/messenger/NotificationCenter.java index 8afcbc556..e12a847ad 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/NotificationCenter.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/NotificationCenter.java @@ -12,6 +12,7 @@ import androidx.annotation.UiThread; import android.util.SparseArray; import java.util.ArrayList; +import java.util.HashMap; public class NotificationCenter { @@ -25,6 +26,7 @@ public class NotificationCenter { public static final int historyCleared = totalEvents++; public static final int messagesRead = totalEvents++; public static final int messagesDidLoad = totalEvents++; + public static final int loadingMessagesFailed = totalEvents++; public static final int messageReceivedByAck = totalEvents++; public static final int messageReceivedByServer = totalEvents++; public static final int messageSendError = totalEvents++; @@ -53,7 +55,8 @@ public class NotificationCenter { public static final int updateMessageMedia = totalEvents++; public static final int replaceMessagesObjects = totalEvents++; public static final int didSetPasscode = totalEvents++; - public static final int didSetTwoStepPassword = totalEvents++; + public static final int twoStepPasswordChanged = totalEvents++; + public static final int didSetOrRemoveTwoStepPassword = totalEvents++; public static final int didRemoveTwoStepPassword = totalEvents++; public static final int replyMessagesDidLoad = totalEvents++; public static final int pinnedMessageDidLoad = totalEvents++; @@ -95,6 +98,7 @@ public class NotificationCenter { public static final int startAllHeavyOperations = totalEvents++; public static final int sendingMessagesChanged = totalEvents++; public static final int didUpdateReactions = totalEvents++; + public static final int didVerifyMessagesStickers = totalEvents++; public static final int scheduledMessagesUpdated = totalEvents++; public static final int walletPendingTransactionsChanged = totalEvents++; @@ -192,15 +196,17 @@ public class NotificationCenter { private ArrayList delayedPosts = new ArrayList<>(10); private int broadcasting = 0; - private boolean animationInProgress; - private int[] allowedNotifications; + private int animationInProgressCount; + private int animationInProgressPointer = 1; + + private final HashMap allowedNotifications = new HashMap<>(); public interface NotificationCenterDelegate { void didReceivedNotification(int id, int account, Object... args); } - private class DelayedPost { + private static class DelayedPost { private DelayedPost(int id, Object[] args) { this.id = id; @@ -248,28 +254,52 @@ public class NotificationCenter { currentAccount = account; } - public void setAllowedNotificationsDutingAnimation(int[] notifications) { - allowedNotifications = notifications; + public int setAnimationInProgress(int oldIndex, int[] allowedNotifications) { + onAnimationFinish(oldIndex); + if (animationInProgressCount == 0) { + NotificationCenter.getGlobalInstance().postNotificationName(stopAllHeavyOperations, 512); + } + + animationInProgressCount++; + animationInProgressPointer++; + + if (allowedNotifications == null) { + allowedNotifications = new int[0]; + } + + this.allowedNotifications.put(animationInProgressPointer, allowedNotifications); + + return animationInProgressPointer; } - public void setAnimationInProgress(boolean value) { - if (value) { - NotificationCenter.getGlobalInstance().postNotificationName(stopAllHeavyOperations, 512); - } else { - NotificationCenter.getGlobalInstance().postNotificationName(startAllHeavyOperations, 512); - } - animationInProgress = value; - if (!animationInProgress && !delayedPosts.isEmpty()) { - for (int a = 0; a < delayedPosts.size(); a++) { - DelayedPost delayedPost = delayedPosts.get(a); - postNotificationNameInternal(delayedPost.id, true, delayedPost.args); + public void updateAllowedNotifications(int transitionAnimationIndex, int[] allowedNotifications) { + if (this.allowedNotifications.containsKey(transitionAnimationIndex)) { + if (allowedNotifications == null) { + allowedNotifications = new int[0]; + } + this.allowedNotifications.put(transitionAnimationIndex, allowedNotifications); + } + } + + public void onAnimationFinish(int index) { + int[] notifications = allowedNotifications.remove(index); + if (notifications != null) { + animationInProgressCount--; + if (animationInProgressCount == 0) { + NotificationCenter.getGlobalInstance().postNotificationName(startAllHeavyOperations, 512); + if (!delayedPosts.isEmpty()) { + for (int a = 0; a < delayedPosts.size(); a++) { + DelayedPost delayedPost = delayedPosts.get(a); + postNotificationNameInternal(delayedPost.id, true, delayedPost.args); + } + delayedPosts.clear(); + } } - delayedPosts.clear(); } } public boolean isAnimationInProgress() { - return animationInProgress; + return animationInProgressCount > 0; } public int getCurrentHeavyOperationFlags() { @@ -278,13 +308,23 @@ public class NotificationCenter { public void postNotificationName(int id, Object... args) { boolean allowDuringAnimation = id == startAllHeavyOperations || id == stopAllHeavyOperations; - if (!allowDuringAnimation && allowedNotifications != null) { - for (int a = 0; a < allowedNotifications.length; a++) { - if (allowedNotifications[a] == id) { - allowDuringAnimation = true; + if (!allowDuringAnimation && !allowedNotifications.isEmpty()) { + int size = allowedNotifications.size(); + int allowedCount = 0; + for(Integer key : allowedNotifications.keySet()) { + int[] allowed = allowedNotifications.get(key); + if (allowed != null) { + for (int a = 0; a < allowed.length; a++) { + if (allowed[a] == id) { + allowedCount++; + break; + } + } + } else { break; } } + allowDuringAnimation = size == allowedCount; } if (id == startAllHeavyOperations) { Integer flags = (Integer) args[0]; @@ -303,7 +343,7 @@ public class NotificationCenter { throw new RuntimeException("postNotificationName allowed only from MAIN thread"); } } - if (!allowDuringAnimation && animationInProgress) { + if (!allowDuringAnimation && isAnimationInProgress()) { DelayedPost delayedPost = new DelayedPost(id, args); delayedPosts.add(delayedPost); if (BuildVars.LOGS_ENABLED) { @@ -315,7 +355,7 @@ public class NotificationCenter { ArrayList objects = observers.get(id); if (objects != null && !objects.isEmpty()) { for (int a = 0; a < objects.size(); a++) { - NotificationCenterDelegate obj = objects.get(a); + NotificationCenterDelegate obj = objects.get(a);; obj.didReceivedNotification(id, currentAccount, args); } } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/SecretChatHelper.java b/TMessagesProj/src/main/java/org/telegram/messenger/SecretChatHelper.java index fe3b86068..6ac100a8b 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/SecretChatHelper.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/SecretChatHelper.java @@ -982,6 +982,7 @@ public class SecretChatHelper extends BaseController { newMessage.media.document.id = file.id; newMessage.media.document.access_hash = file.access_hash; newMessage.media.document.date = date; + newMessage.media.document.mime_type = decryptedMessage.media.mime_type; if (decryptedMessage.media instanceof TLRPC.TL_decryptedMessageMediaDocument_layer8) { TLRPC.TL_documentAttributeFilename fileName = new TLRPC.TL_documentAttributeFilename(); fileName.file_name = decryptedMessage.media.file_name; @@ -989,12 +990,13 @@ public class SecretChatHelper extends BaseController { } else { newMessage.media.document.attributes = decryptedMessage.media.attributes; } - newMessage.media.document.mime_type = decryptedMessage.media.mime_type; newMessage.media.document.size = decryptedMessage.media.size != 0 ? Math.min(decryptedMessage.media.size, file.size) : file.size; newMessage.media.document.key = decryptedMessage.media.key; newMessage.media.document.iv = decryptedMessage.media.iv; if (newMessage.media.document.mime_type == null) { newMessage.media.document.mime_type = ""; + } else if (MessageObject.isAnimatedStickerDocument(newMessage.media.document, true)) { + newMessage.media.document.mime_type = "application/x-bad_tgsticker"; } byte[] thumb = ((TLRPC.TL_decryptedMessageMediaDocument) decryptedMessage.media).thumb; TLRPC.PhotoSize photoSize; @@ -1033,6 +1035,10 @@ public class SecretChatHelper extends BaseController { if (newMessage.media.document.mime_type == null) { newMessage.media.document.mime_type = ""; } + if (MessageObject.isAnimatedStickerMessage(newMessage)) { + newMessage.stickerVerified = 0; + getMediaDataController().verifyAnimatedStickerMessage(newMessage, true); + } } else if (decryptedMessage.media instanceof TLRPC.TL_decryptedMessageMediaAudio) { if (decryptedMessage.media.key == null || decryptedMessage.media.key.length != 32 || decryptedMessage.media.iv == null || decryptedMessage.media.iv.length != 32) { return null; diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/SendMessagesHelper.java b/TMessagesProj/src/main/java/org/telegram/messenger/SendMessagesHelper.java index bd4fe12be..c0aca235e 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/SendMessagesHelper.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/SendMessagesHelper.java @@ -8,6 +8,7 @@ package org.telegram.messenger; +import android.content.ClipDescription; import android.content.Context; import android.content.SharedPreferences; import android.graphics.Bitmap; @@ -54,6 +55,8 @@ import org.telegram.ui.PaymentFormActivity; import java.io.File; import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.InputStream; import java.io.RandomAccessFile; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; @@ -117,6 +120,8 @@ public class SendMessagesHelper extends BaseController implements NotificationCe public Uri uri; public String path; public String caption; + public String thumbPath; + public String paintPath; public int ttl; public ArrayList entities; public ArrayList masks; @@ -615,7 +620,7 @@ public class SendMessagesHelper extends BaseController implements NotificationCe for (int b = 0; b < message.messageObjects.size(); b++) { MessageObject obj = message.messageObjects.get(b); if (obj == messageObject) { - obj.videoEditedInfo = null; + message.obj.shouldRemoveVideoEditedInfo = true; obj.messageOwner.params.remove("ve"); obj.messageOwner.media.document.size = (int) finalSize; @@ -626,7 +631,7 @@ public class SendMessagesHelper extends BaseController implements NotificationCe } } } else if (message.obj == messageObject) { - message.obj.videoEditedInfo = null; + message.obj.shouldRemoveVideoEditedInfo = true; message.obj.messageOwner.params.remove("ve"); message.obj.messageOwner.media.document.size = (int) finalSize; @@ -1816,6 +1821,18 @@ public class SendMessagesHelper extends BaseController implements NotificationCe } } else if (type == 3) { TLRPC.TL_inputMediaUploadedDocument uploadedDocument = new TLRPC.TL_inputMediaUploadedDocument(); + if (params != null) { + String masks = params.get("masks"); + if (masks != null) { + SerializedData serializedData = new SerializedData(Utilities.hexToBytes(masks)); + int count = serializedData.readInt32(false); + for (int a = 0; a < count; a++) { + uploadedDocument.stickers.add(TLRPC.InputDocument.TLdeserialize(serializedData, serializedData.readInt32(false), false)); + } + uploadedDocument.flags |= 1; + serializedData.cleanup(); + } + } uploadedDocument.mime_type = document.mime_type; uploadedDocument.attributes = document.attributes; if (!messageObject.isGif() && (videoEditedInfo == null || !videoEditedInfo.muted)) { @@ -2167,10 +2184,10 @@ public class SendMessagesHelper extends BaseController implements NotificationCe parentFragment.showRequestUrlAlert(res, (TLRPC.TL_messages_requestUrlAuth) request[0], button.url); } else if (response instanceof TLRPC.TL_urlAuthResultAccepted) { TLRPC.TL_urlAuthResultAccepted res = (TLRPC.TL_urlAuthResultAccepted) response; - parentFragment.showOpenUrlAlert(res.url, false, false); + AlertsCreator.showOpenUrlAlert(parentFragment, res.url, false, false); } else if (response instanceof TLRPC.TL_urlAuthResultDefault) { TLRPC.TL_urlAuthResultDefault res = (TLRPC.TL_urlAuthResultDefault) response; - parentFragment.showOpenUrlAlert(button.url, false, true); + AlertsCreator.showOpenUrlAlert(parentFragment, button.url, false, true); } } else if (button instanceof TLRPC.TL_keyboardButtonBuy) { if (response instanceof TLRPC.TL_payments_paymentForm) { @@ -2234,7 +2251,7 @@ public class SendMessagesHelper extends BaseController implements NotificationCe } parentFragment.showOpenGameAlert(game, messageObject, res.url, !verified && MessagesController.getNotificationsSettings(currentAccount).getBoolean("askgame_" + uid, true), uid); } else { - parentFragment.showOpenUrlAlert(res.url, false, false); + AlertsCreator.showOpenUrlAlert(parentFragment, res.url, false, false); } } } @@ -2389,6 +2406,7 @@ public class SendMessagesHelper extends BaseController implements NotificationCe int lower_id = (int) peer; int high_id = (int) (peer >> 32); boolean isChannel = false; + boolean forceNoSoundVideo = false; TLRPC.EncryptedChat encryptedChat = null; TLRPC.InputPeer sendToPeer = lower_id != 0 ? getMessagesController().getInputPeer(lower_id) : null; if (lower_id == 0) { @@ -2433,7 +2451,7 @@ public class SendMessagesHelper extends BaseController implements NotificationCe } else if (retryMessageObject.type == 1) { photo = (TLRPC.TL_photo) newMsg.media.photo; type = 2; - } else if (retryMessageObject.type == 3 || retryMessageObject.type == 5 || videoEditedInfo != null) { + } else if (retryMessageObject.type == 3 || retryMessageObject.type == 5 || retryMessageObject.videoEditedInfo != null) { type = 3; document = (TLRPC.TL_document) newMsg.media.document; } else if (retryMessageObject.type == 12) { @@ -2589,6 +2607,18 @@ public class SendMessagesHelper extends BaseController implements NotificationCe } else { newMsg = new TLRPC.TL_message(); } + if (lower_id < 0) { + TLRPC.Chat chat = getMessagesController().getChat(-lower_id); + if (chat != null && !ChatObject.canSendStickers(chat)) { + for (int a = 0, N = document.attributes.size(); a < N; a++) { + if (document.attributes.get(a) instanceof TLRPC.TL_documentAttributeAnimated) { + document.attributes.remove(a); + forceNoSoundVideo = true; + break; + } + } + } + } newMsg.media = new TLRPC.TL_messageMediaDocument(); newMsg.media.flags |= 3; if (ttl != 0) { @@ -2612,12 +2642,12 @@ public class SendMessagesHelper extends BaseController implements NotificationCe } params.put("ve", ve); } - if (encryptedChat != null && document.dc_id > 0 && !MessageObject.isStickerDocument(document)) { + if (encryptedChat != null && document.dc_id > 0 && !MessageObject.isStickerDocument(document) && !MessageObject.isAnimatedStickerDocument(document, true)) { newMsg.attachPath = FileLoader.getPathToAttach(document).toString(); } else { newMsg.attachPath = path; } - if (encryptedChat != null && (MessageObject.isStickerDocument(document) || MessageObject.isAnimatedStickerDocument(document, false))) { + if (encryptedChat != null && (MessageObject.isStickerDocument(document) || MessageObject.isAnimatedStickerDocument(document, true))) { for (int a = 0; a < document.attributes.size(); a++) { TLRPC.DocumentAttribute attribute = document.attributes.get(a); if (attribute instanceof TLRPC.TL_documentAttributeSticker) { @@ -2636,6 +2666,13 @@ public class SendMessagesHelper extends BaseController implements NotificationCe attributeSticker.stickerset = new TLRPC.TL_inputStickerSetShortName(); attributeSticker.stickerset.short_name = name; } else { + if (attribute.stickerset instanceof TLRPC.TL_inputStickerSetID) { + delayedMessage = new DelayedMessage(peer); + delayedMessage.encryptedChat = encryptedChat; + delayedMessage.locationParent = attributeSticker; + delayedMessage.type = 5; + delayedMessage.parentObject = attribute.stickerset; + } attributeSticker.stickerset = new TLRPC.TL_inputStickerSetEmpty(); } } else { @@ -2971,7 +3008,7 @@ public class SendMessagesHelper extends BaseController implements NotificationCe TLRPC.TL_inputMediaUploadedDocument uploadedDocument = new TLRPC.TL_inputMediaUploadedDocument(); uploadedDocument.mime_type = document.mime_type; uploadedDocument.attributes = document.attributes; - if (!MessageObject.isRoundVideoDocument(document) && (videoEditedInfo == null || !videoEditedInfo.muted && !videoEditedInfo.roundVideo)) { + if (forceNoSoundVideo || !MessageObject.isRoundVideoDocument(document) && (videoEditedInfo == null || !videoEditedInfo.muted && !videoEditedInfo.roundVideo)) { uploadedDocument.nosound_video = true; if (BuildVars.DEBUG_VERSION) { FileLog.d("nosound_video = true"); @@ -2981,6 +3018,18 @@ public class SendMessagesHelper extends BaseController implements NotificationCe newMsg.ttl = uploadedDocument.ttl_seconds = ttl; uploadedDocument.flags |= 2; } + if (params != null) { + String masks = params.get("masks"); + if (masks != null) { + SerializedData serializedData = new SerializedData(Utilities.hexToBytes(masks)); + int count = serializedData.readInt32(false); + for (int a = 0; a < count; a++) { + uploadedDocument.stickers.add(TLRPC.InputDocument.TLdeserialize(serializedData, serializedData.readInt32(false), false)); + } + uploadedDocument.flags |= 1; + serializedData.cleanup(); + } + } if (document.access_hash == 0) { inputMedia = uploadedDocument; performMediaUpload = true; @@ -3029,7 +3078,7 @@ public class SendMessagesHelper extends BaseController implements NotificationCe newMsg.ttl = uploadedMedia.ttl_seconds = ttl; uploadedMedia.flags |= 2; } - if (!TextUtils.isEmpty(path) && path.toLowerCase().endsWith("mp4") && (params == null || params.containsKey("forceDocument"))) { + if (forceNoSoundVideo || !TextUtils.isEmpty(path) && path.toLowerCase().endsWith("mp4") && (params == null || params.containsKey("forceDocument"))) { uploadedMedia.nosound_video = true; } uploadedMedia.mime_type = document.mime_type; @@ -3374,7 +3423,7 @@ public class SendMessagesHelper extends BaseController implements NotificationCe reqSend.media.user_id = user.id; getSecretChatHelper().performSendEncryptedRequest(reqSend, newMsgObj.messageOwner, encryptedChat, null, null, newMsgObj); } else if (type == 7 || type == 9 && document != null) { - if (MessageObject.isStickerDocument(document) || MessageObject.isAnimatedStickerDocument(document, false)) { + if (document.access_hash != 0 && (MessageObject.isStickerDocument(document) || MessageObject.isAnimatedStickerDocument(document, true))) { reqSend.media = new TLRPC.TL_decryptedMessageMediaExternalDocument(); reqSend.media.id = document.id; reqSend.media.date = document.date; @@ -3390,7 +3439,13 @@ public class SendMessagesHelper extends BaseController implements NotificationCe ((TLRPC.TL_decryptedMessageMediaExternalDocument) reqSend.media).thumb = new TLRPC.TL_photoSizeEmpty(); ((TLRPC.TL_decryptedMessageMediaExternalDocument) reqSend.media).thumb.type = "s"; } - getSecretChatHelper().performSendEncryptedRequest(reqSend, newMsgObj.messageOwner, encryptedChat, null, null, newMsgObj); + if (delayedMessage != null && delayedMessage.type == 5) { + delayedMessage.sendEncryptedRequest = reqSend; + delayedMessage.obj = newMsgObj; + performSendDelayedMessage(delayedMessage); + } else { + getSecretChatHelper().performSendEncryptedRequest(reqSend, newMsgObj.messageOwner, encryptedChat, null, null, newMsgObj); + } } else { reqSend.media = new TLRPC.TL_decryptedMessageMediaDocument(); reqSend.media.attributes = document.attributes; @@ -3840,6 +3895,31 @@ public class SendMessagesHelper extends BaseController implements NotificationCe putToSendingMessages(message.messageObjects.get(message.messageObjects.size() - 1).messageOwner, message.finalGroupMessage != 0); } sendReadyToSendGroup(message, add, true); + } else if (message.type == 5) { + String key = "stickerset_" + message.obj.getId(); + TLRPC.TL_messages_getStickerSet req = new TLRPC.TL_messages_getStickerSet(); + req.stickerset = (TLRPC.InputStickerSet) message.parentObject; + getConnectionsManager().sendRequest(req, (response, error) -> { + AndroidUtilities.runOnUIThread(() -> { + boolean found = false; + if (response != null) { + TLRPC.TL_messages_stickerSet set = (TLRPC.TL_messages_stickerSet) response; + getMediaDataController().storeTempStickerSet(set); + TLRPC.TL_documentAttributeSticker_layer55 attributeSticker = (TLRPC.TL_documentAttributeSticker_layer55) message.locationParent; + attributeSticker.stickerset = new TLRPC.TL_inputStickerSetShortName(); + attributeSticker.stickerset.short_name = set.set.short_name; + found = true; + } + ArrayList arrayList = delayedMessages.remove(key); + if (arrayList != null && !arrayList.isEmpty()) { + if (found) { + getMessagesStorage().replaceMessageIfExists(arrayList.get(0).obj.messageOwner, null, null, false); + } + getSecretChatHelper().performSendEncryptedRequest((TLRPC.DecryptedMessage) message.sendEncryptedRequest, message.obj.messageOwner, message.encryptedChat, null, null, message.obj); + } + }); + }); + putToDelayedMessages(key, message); } } @@ -4627,7 +4707,7 @@ public class SendMessagesHelper extends BaseController implements NotificationCe newMsg.media.photo.id = sentMessage.media.photo.id; newMsg.media.photo.access_hash = sentMessage.media.photo.access_hash; } else if (sentMessage.media instanceof TLRPC.TL_messageMediaDocument && sentMessage.media.document != null && newMsg.media instanceof TLRPC.TL_messageMediaDocument && newMsg.media.document != null) { - if (sentMessage.media.ttl_seconds == 0) { + if (sentMessage.media.ttl_seconds == 0 && (newMsgObj.videoEditedInfo == null || newMsgObj.videoEditedInfo.mediaEntities == null && TextUtils.isEmpty(newMsgObj.videoEditedInfo.paintPath))) { boolean isVideo = MessageObject.isVideoMessage(sentMessage); if ((isVideo || MessageObject.isGifMessage(sentMessage)) && MessageObject.isGifDocument(sentMessage.media.document) == MessageObject.isGifDocument(newMsg.media.document)) { if (!newMsgObj.scheduled) { @@ -4853,7 +4933,6 @@ public class SendMessagesHelper extends BaseController implements NotificationCe } boolean isEncrypted = (int) dialog_id == 0; - boolean allowSticker = !isEncrypted; String name = f.getName(); String ext = ""; @@ -5013,7 +5092,7 @@ public class SendMessagesHelper extends BaseController implements NotificationCe FileLog.e(e); } } - if (document.mime_type.equals("image/webp") && allowSticker && editingMessageObject == null) { + if (document.mime_type.equals("image/webp") && editingMessageObject == null) { BitmapFactory.Options bmOptions = new BitmapFactory.Options(); try { bmOptions.inJustDecodeBounds = true; @@ -5187,7 +5266,7 @@ public class SendMessagesHelper extends BaseController implements NotificationCe } info.entities = entities; info.ttl = ttl; - if (stickers != null && !stickers.isEmpty()) { + if (stickers != null) { info.masks = new ArrayList<>(stickers); } ArrayList infos = new ArrayList<>(); @@ -5234,7 +5313,13 @@ public class SendMessagesHelper extends BaseController implements NotificationCe } } } else if (result.content != null) { - File f = new File(FileLoader.getDirectory(FileLoader.MEDIA_DIR_CACHE), Utilities.MD5(result.content.url) + "." + ImageLoader.getHttpUrlExtension(result.content.url, "file")); + String ext = ImageLoader.getHttpUrlExtension(result.content.url, null); + if (TextUtils.isEmpty(ext)) { + ext = FileLoader.getExtensionByMimeType(result.content.mime_type); + } else { + ext = "." + ext; + } + File f = new File(FileLoader.getDirectory(FileLoader.MEDIA_DIR_CACHE), Utilities.MD5(result.content.url) + ext); if (f.exists()) { finalPath = f.getAbsolutePath(); } else { @@ -5270,7 +5355,17 @@ public class SendMessagesHelper extends BaseController implements NotificationCe int side = isEncrypted ? 90 : 320; Bitmap bitmap; if (finalPath.endsWith("mp4")) { - bitmap = ThumbnailUtils.createVideoThumbnail(finalPath, MediaStore.Video.Thumbnails.MINI_KIND); + bitmap = createVideoThumbnail(finalPath, MediaStore.Video.Thumbnails.MINI_KIND); + if (bitmap == null && result.thumb instanceof TLRPC.TL_webDocument && "video/mp4".equals(result.thumb.mime_type)) { + ext = ImageLoader.getHttpUrlExtension(result.thumb.url, null); + if (TextUtils.isEmpty(ext)) { + ext = FileLoader.getExtensionByMimeType(result.thumb.mime_type); + } else { + ext = "." + ext; + } + f = new File(FileLoader.getDirectory(FileLoader.MEDIA_DIR_CACHE), Utilities.MD5(result.thumb.url) + ext); + bitmap = createVideoThumbnail(f.getAbsolutePath(), MediaStore.Video.Thumbnails.MINI_KIND); + } } else { bitmap = ImageLoader.loadBitmap(finalPath, null, side, side, true); } @@ -5547,7 +5642,7 @@ public class SendMessagesHelper extends BaseController implements NotificationCe bitmap = ImageLoader.loadBitmap(path, uri, 800, 800, true); } if (!bigExists) { - TLRPC.PhotoSize size = ImageLoader.scaleAndSaveImage(bigSize, bitmap, AndroidUtilities.getPhotoSize(), AndroidUtilities.getPhotoSize(), 80, false, 101, 101,false); + TLRPC.PhotoSize size = ImageLoader.scaleAndSaveImage(bigSize, bitmap, Bitmap.CompressFormat.JPEG, AndroidUtilities.getPhotoSize(), AndroidUtilities.getPhotoSize(), 80, false, 101, 101,false); if (size != bigSize) { photo.sizes.add(0, size); } @@ -5571,9 +5666,9 @@ public class SendMessagesHelper extends BaseController implements NotificationCe } File smallFile = FileLoader.getPathToAttach(photoSize, true); if (!smallFile.exists()) { - Bitmap thumb = createVideoThumbnail(path, startTime); + Bitmap thumb = createVideoThumbnailAtTime(path, startTime); if (thumb == null) { - thumb = ThumbnailUtils.createVideoThumbnail(path, MediaStore.Video.Thumbnails.MINI_KIND); + thumb = SendMessagesHelper.createVideoThumbnail(path, MediaStore.Video.Thumbnails.MINI_KIND); } int side = isEncrypted ? 90 : 320; document.thumbs.set(0, ImageLoader.scaleAndSaveImage(photoSize, thumb, side, side, side > 90 ? 80 : 55, false, true)); @@ -5660,7 +5755,7 @@ public class SendMessagesHelper extends BaseController implements NotificationCe workers = new HashMap<>(); for (int a = 0; a < count; a++) { final SendingMediaInfo info = media.get(a); - if (info.searchImage == null && !info.isVideo) { + if (info.searchImage == null && !info.isVideo && info.videoEditedInfo == null) { String originalPath = info.path; String tempPath = info.path; if (tempPath == null && info.uri != null) { @@ -5739,7 +5834,7 @@ public class SendMessagesHelper extends BaseController implements NotificationCe lastGroupId = groupId = Utilities.random.nextLong(); photosCount = 0; } - if (info.searchImage != null) { + if (info.searchImage != null && info.videoEditedInfo == null) { if (info.searchImage.type == 1) { final HashMap params = new HashMap<>(); TLRPC.TL_document document = null; @@ -5793,7 +5888,7 @@ public class SendMessagesHelper extends BaseController implements NotificationCe int side = isEncrypted || info.ttl != 0 ? 90 : 320; Bitmap bitmap; if (thumbFile.getAbsolutePath().endsWith("mp4")) { - bitmap = ThumbnailUtils.createVideoThumbnail(thumbFile.getAbsolutePath(), MediaStore.Video.Thumbnails.MINI_KIND); + bitmap = SendMessagesHelper.createVideoThumbnail(thumbFile.getAbsolutePath(), MediaStore.Video.Thumbnails.MINI_KIND); } else { bitmap = ImageLoader.loadBitmap(thumbFile.getAbsolutePath(), null, side, side, true); } @@ -5911,7 +6006,7 @@ public class SendMessagesHelper extends BaseController implements NotificationCe } } } else { - if (info.isVideo) { + if (info.isVideo || info.videoEditedInfo != null) { Bitmap thumb = null; String thumbKey = null; @@ -5923,6 +6018,14 @@ public class SendMessagesHelper extends BaseController implements NotificationCe } if (!forceDocument && (videoEditedInfo != null || info.path.endsWith("mp4"))) { + if (info.path == null && info.searchImage != null) { + if (info.searchImage.photo instanceof TLRPC.TL_photo) { + info.path = FileLoader.getPathToAttach(info.searchImage.photo, true).getAbsolutePath(); + } else { + String md5 = Utilities.MD5(info.searchImage.imageUrl) + "." + ImageLoader.getHttpUrlExtension(info.searchImage.imageUrl, "jpg"); + info.path = new File(FileLoader.getDirectory(FileLoader.MEDIA_DIR_CACHE), md5).getAbsolutePath(); + } + } String path = info.path; String originalPath = info.path; File temp = new File(originalPath); @@ -5940,7 +6043,7 @@ public class SendMessagesHelper extends BaseController implements NotificationCe } TLRPC.TL_document document = null; String parentObject = null; - if (!isEncrypted && info.ttl == 0) { + if (!isEncrypted && info.ttl == 0 && (videoEditedInfo == null || videoEditedInfo.filterState == null && videoEditedInfo.paintPath == null && videoEditedInfo.mediaEntities == null)) { Object[] sentData = accountInstance.getMessagesStorage().getSentFile(originalPath, !isEncrypted ? 2 : 5); if (sentData != null) { document = (TLRPC.TL_document) sentData[0]; @@ -5949,10 +6052,16 @@ public class SendMessagesHelper extends BaseController implements NotificationCe } } if (document == null) { - thumb = createVideoThumbnail(info.path, startTime); - if (thumb == null) { - thumb = ThumbnailUtils.createVideoThumbnail(info.path, MediaStore.Video.Thumbnails.MINI_KIND); + if (info.thumbPath != null) { + thumb = BitmapFactory.decodeFile(info.thumbPath); } + if (thumb == null) { + thumb = createVideoThumbnailAtTime(info.path, startTime); + if (thumb == null) { + thumb = createVideoThumbnail(info.path, MediaStore.Video.Thumbnails.MINI_KIND); + } + } + TLRPC.PhotoSize size = null; if (thumb != null) { int side = isEncrypted || info.ttl != 0 ? 90 : Math.max(thumb.getWidth(), thumb.getHeight()); @@ -5979,8 +6088,8 @@ public class SendMessagesHelper extends BaseController implements NotificationCe attributeVideo.supports_streaming = true; } document.attributes.add(attributeVideo); - if (videoEditedInfo != null && videoEditedInfo.needConvert()) { - if (videoEditedInfo.muted) { + if (videoEditedInfo != null && (videoEditedInfo.needConvert() || !info.isVideo)) { + if (info.isVideo && videoEditedInfo.muted) { fillVideoAttribute(info.path, attributeVideo, videoEditedInfo); videoEditedInfo.originalWidth = attributeVideo.w; videoEditedInfo.originalHeight = attributeVideo.h; @@ -6014,7 +6123,7 @@ public class SendMessagesHelper extends BaseController implements NotificationCe document.attributes.add(new TLRPC.TL_documentAttributeAnimated()); } } - if (videoEditedInfo != null && videoEditedInfo.needConvert()) { + if (videoEditedInfo != null && (videoEditedInfo.needConvert() || !info.isVideo)) { String fileName = Integer.MIN_VALUE + "_" + SharedConfig.getLastLocalId() + ".mp4"; File cacheFile = new File(FileLoader.getDirectory(FileLoader.MEDIA_DIR_CACHE), fileName); SharedConfig.saveConfig(); @@ -6041,6 +6150,16 @@ public class SendMessagesHelper extends BaseController implements NotificationCe lastGroupId = 0; } } + if (!isEncrypted && info.masks != null && !info.masks.isEmpty()) { + document.attributes.add(new TLRPC.TL_documentAttributeHasStickers()); + SerializedData serializedData = new SerializedData(4 + info.masks.size() * 20); + serializedData.writeInt32(info.masks.size()); + for (int b = 0; b < info.masks.size(); b++) { + info.masks.get(b).serializeToStream(serializedData); + } + params.put("masks", Utilities.bytesToHex(serializedData.toByteArray())); + serializedData.cleanup(); + } AndroidUtilities.runOnUIThread(() -> { if (thumbFinal != null && thumbKeyFinal != null) { ImageLoader.getInstance().putImageToCache(new BitmapDrawable(thumbFinal), thumbKeyFinal); @@ -6063,6 +6182,42 @@ public class SendMessagesHelper extends BaseController implements NotificationCe } boolean isDocument = false; + if (inputContent != null && info.uri != null) { + ClipDescription description = inputContent.getDescription(); + if (description.hasMimeType("image/png")) { + InputStream inputStream = null; + FileOutputStream stream = null; + try { + BitmapFactory.Options bmOptions = new BitmapFactory.Options(); + inputStream = ApplicationLoader.applicationContext.getContentResolver().openInputStream(info.uri); + Bitmap b = BitmapFactory.decodeStream(inputStream, null, bmOptions); + String fileName = Integer.MIN_VALUE + "_" + SharedConfig.getLastLocalId() + ".webp"; + File fileDir = FileLoader.getDirectory(FileLoader.MEDIA_DIR_CACHE); + final File cacheFile = new File(fileDir, fileName); + stream = new FileOutputStream(cacheFile); + b.compress(Bitmap.CompressFormat.WEBP, 100, stream); + SharedConfig.saveConfig(); + info.uri = Uri.fromFile(cacheFile); + } catch (Throwable e) { + FileLog.e(e); + } finally { + try { + if (inputStream != null) { + inputStream.close(); + } + } catch (Exception ignore) { + + } + try { + if (stream != null) { + stream.close(); + } + } catch (Exception ignore) { + + } + } + } + } if (forceDocument || ImageLoader.shouldSendImageAsDocument(info.path, info.uri)) { isDocument = true; extension = tempPath != null ? FileLoader.getFileExtension(new File(tempPath)) : ""; @@ -6307,7 +6462,30 @@ public class SendMessagesHelper extends BaseController implements NotificationCe } } - private static Bitmap createVideoThumbnail(String filePath, long time) { + public static Bitmap createVideoThumbnail(String filePath, int kind) { + float size; + if (kind == MediaStore.Video.Thumbnails.FULL_SCREEN_KIND) { + size = 1920; + } else if (kind == MediaStore.Video.Thumbnails.MICRO_KIND) { + size = 96; + } else { + size = 512; + } + Bitmap bitmap = createVideoThumbnailAtTime(filePath, 0); + if (bitmap != null) { + int w = bitmap.getWidth(); + int h = bitmap.getHeight(); + if (w > size || h > size) { + float scale = Math.max(w, h) / size; + w /= scale; + h /= scale; + bitmap = Bitmap.createScaledBitmap(bitmap, w, h, true); + } + } + return bitmap; + } + + public static Bitmap createVideoThumbnailAtTime(String filePath, long time) { Bitmap bitmap = null; MediaMetadataRetriever retriever = new MediaMetadataRetriever(); try { @@ -6500,9 +6678,9 @@ public class SendMessagesHelper extends BaseController implements NotificationCe } } if (document == null) { - thumb = createVideoThumbnail(videoPath, startTime); + thumb = createVideoThumbnailAtTime(videoPath, startTime); if (thumb == null) { - thumb = ThumbnailUtils.createVideoThumbnail(videoPath, MediaStore.Video.Thumbnails.MINI_KIND); + thumb = createVideoThumbnail(videoPath, MediaStore.Video.Thumbnails.MINI_KIND); } int side = isEncrypted || ttl != 0 ? 90 : 320; TLRPC.PhotoSize size = ImageLoader.scaleAndSaveImage(thumb, side, side, side > 90 ? 80 : 55, isEncrypted); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/Utilities.java b/TMessagesProj/src/main/java/org/telegram/messenger/Utilities.java index 4bc78151d..281127284 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/Utilities.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/Utilities.java @@ -20,8 +20,6 @@ import java.math.BigInteger; import java.nio.ByteBuffer; import java.security.MessageDigest; import java.security.SecureRandom; -import java.util.ArrayList; -import java.util.Locale; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -54,7 +52,7 @@ public class Utilities { public native static void unpinBitmap(Bitmap bitmap); public native static void blurBitmap(Object bitmap, int radius, int unpin, int width, int height, int stride); public native static int needInvert(Object bitmap, int unpin, int width, int height, int stride); - public native static void calcCDT(ByteBuffer hsvBuffer, int width, int height, ByteBuffer buffer); + public native static void calcCDT(ByteBuffer hsvBuffer, int width, int height, ByteBuffer buffer, ByteBuffer calcBuffer); public native static boolean loadWebpImage(Bitmap bitmap, ByteBuffer buffer, int len, BitmapFactory.Options options, boolean unpin); public native static int convertVideoFrame(ByteBuffer src, ByteBuffer dest, int destFormat, int width, int height, int padding, int swap); private native static void aesIgeEncryption(ByteBuffer buffer, byte[] key, byte[] iv, boolean encrypt, int offset, int length); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/VideoEditedInfo.java b/TMessagesProj/src/main/java/org/telegram/messenger/VideoEditedInfo.java index 228933cc4..ea003907d 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/VideoEditedInfo.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/VideoEditedInfo.java @@ -8,11 +8,19 @@ package org.telegram.messenger; -import org.telegram.tgnet.TLRPC; +import android.graphics.Bitmap; +import android.view.View; +import org.telegram.tgnet.SerializedData; +import org.telegram.tgnet.TLRPC; +import org.telegram.ui.Components.PhotoFilterView; +import org.telegram.ui.Components.Point; + +import java.util.ArrayList; import java.util.Locale; public class VideoEditedInfo { + public long startTime; public long endTime; public float start; @@ -34,14 +42,166 @@ public class VideoEditedInfo { public TLRPC.InputEncryptedFile encryptedFile; public byte[] key; public byte[] iv; + public MediaController.SavedFilterState filterState; + public String paintPath; + public ArrayList mediaEntities; + public boolean isPhoto; public boolean canceled; public boolean videoConvertFirstWrite; public boolean needUpdateProgress = false; + public static class MediaEntity { + public byte type; + public byte subType; + public float x; + public float y; + public float rotation; + public float width; + public float height; + public String text; + public int color; + public int fontSize; + public int viewWidth; + public int viewHeight; + + public float scale; + public float textViewWidth; + public float textViewHeight; + public float textViewX; + public float textViewY; + + public TLRPC.Document document; + public Object parentObject; + + public int[] metadata; + public long ptr; + public float currentFrame; + public float framesPerDraw; + public Bitmap bitmap; + + public View view; + + public MediaEntity() { + + } + + private MediaEntity(SerializedData data) { + type = data.readByte(false); + subType = data.readByte(false); + x = data.readFloat(false); + y = data.readFloat(false); + rotation = data.readFloat(false); + width = data.readFloat(false); + height = data.readFloat(false); + text = data.readString(false); + color = data.readInt32(false); + fontSize = data.readInt32(false); + viewWidth = data.readInt32(false); + viewHeight = data.readInt32(false); + } + + private void serializeTo(SerializedData data) { + data.writeByte(type); + data.writeByte(subType); + data.writeFloat(x); + data.writeFloat(y); + data.writeFloat(rotation); + data.writeFloat(width); + data.writeFloat(height); + data.writeString(text); + data.writeInt32(color); + data.writeInt32(fontSize); + data.writeInt32(viewWidth); + data.writeInt32(viewHeight); + } + } public String getString() { - return String.format(Locale.US, "-1_%d_%d_%d_%d_%d_%d_%d_%d_%d_%d_%s", startTime, endTime, rotationValue, originalWidth, originalHeight, bitrate, resultWidth, resultHeight, originalDuration, framerate, originalPath); + String filters; + if (filterState != null || paintPath != null || mediaEntities != null && !mediaEntities.isEmpty()) { + int len = 2; + if (filterState != null) { + len += 160; + } + byte[] paintPathBytes; + if (paintPath != null) { + paintPathBytes = paintPath.getBytes(); + len += paintPathBytes.length; + } else { + paintPathBytes = null; + } + SerializedData serializedData = new SerializedData(len); + serializedData.writeInt32(1); + if (filterState != null) { + serializedData.writeByte(1); + serializedData.writeFloat(filterState.enhanceValue); + serializedData.writeFloat(filterState.exposureValue); + serializedData.writeFloat(filterState.contrastValue); + serializedData.writeFloat(filterState.warmthValue); + serializedData.writeFloat(filterState.saturationValue); + serializedData.writeFloat(filterState.fadeValue); + serializedData.writeInt32(filterState.tintShadowsColor); + serializedData.writeInt32(filterState.tintHighlightsColor); + serializedData.writeFloat(filterState.highlightsValue); + serializedData.writeFloat(filterState.shadowsValue); + serializedData.writeFloat(filterState.vignetteValue); + serializedData.writeFloat(filterState.grainValue); + serializedData.writeInt32(filterState.blurType); + serializedData.writeFloat(filterState.sharpenValue); + serializedData.writeFloat(filterState.blurExcludeSize); + if (filterState.blurExcludePoint != null) { + serializedData.writeFloat(filterState.blurExcludePoint.x); + serializedData.writeFloat(filterState.blurExcludePoint.y); + } else { + serializedData.writeFloat(0); + serializedData.writeFloat(0); + } + serializedData.writeFloat(filterState.blurExcludeBlurSize); + serializedData.writeFloat(filterState.blurAngle); + + for (int a = 0; a < 4; a++) { + PhotoFilterView.CurvesValue curvesValue; + if (a == 0) { + curvesValue = filterState.curvesToolValue.luminanceCurve; + } else if (a == 1) { + curvesValue = filterState.curvesToolValue.redCurve; + } else if (a == 2) { + curvesValue = filterState.curvesToolValue.greenCurve; + } else { + curvesValue = filterState.curvesToolValue.blueCurve; + } + serializedData.writeFloat(curvesValue.blacksLevel); + serializedData.writeFloat(curvesValue.shadowsLevel); + serializedData.writeFloat(curvesValue.midtonesLevel); + serializedData.writeFloat(curvesValue.highlightsLevel); + serializedData.writeFloat(curvesValue.whitesLevel); + } + } else { + serializedData.writeByte(0); + } + if (paintPathBytes != null) { + serializedData.writeByte(1); + serializedData.writeByteArray(paintPathBytes); + } else { + serializedData.writeByte(0); + } + if (mediaEntities != null && !mediaEntities.isEmpty()) { + serializedData.writeByte(1); + serializedData.writeInt32(mediaEntities.size()); + for (int a = 0, N = mediaEntities.size(); a < N; a++) { + mediaEntities.get(a).serializeTo(serializedData); + } + serializedData.writeByte(isPhoto ? 1 : 0); + } else { + serializedData.writeByte(0); + } + filters = Utilities.bytesToHex(serializedData.toByteArray()); + serializedData.cleanup(); + } else { + filters = ""; + } + return String.format(Locale.US, "-1_%d_%d_%d_%d_%d_%d_%d_%d_%d_%d_-%s_%s", startTime, endTime, rotationValue, originalWidth, originalHeight, bitrate, resultWidth, resultHeight, originalDuration, framerate, filters, originalPath); } public boolean parseString(String string) { @@ -49,7 +209,7 @@ public class VideoEditedInfo { return false; } try { - String args[] = string.split("_"); + String[] args = string.split("_"); if (args.length >= 11) { startTime = Long.parseLong(args[1]); endTime = Long.parseLong(args[2]); @@ -61,8 +221,76 @@ public class VideoEditedInfo { resultHeight = Integer.parseInt(args[8]); originalDuration = Long.parseLong(args[9]); framerate = Integer.parseInt(args[10]); + muted = bitrate == -1; + int start; + if (args[11].startsWith("-")) { + start = 12; + String s = args[11].substring(1); + if (s.length() > 0) { + SerializedData serializedData = new SerializedData(Utilities.hexToBytes(s)); + int version = serializedData.readInt32(false); + byte has = serializedData.readByte(false); + if (has != 0) { + filterState = new MediaController.SavedFilterState(); + filterState.enhanceValue = serializedData.readFloat(false); + filterState.exposureValue = serializedData.readFloat(false); + filterState.contrastValue = serializedData.readFloat(false); + filterState.warmthValue = serializedData.readFloat(false); + filterState.saturationValue = serializedData.readFloat(false); + filterState.fadeValue = serializedData.readFloat(false); + filterState.tintShadowsColor = serializedData.readInt32(false); + filterState.tintHighlightsColor = serializedData.readInt32(false); + filterState.highlightsValue = serializedData.readFloat(false); + filterState.shadowsValue = serializedData.readFloat(false); + filterState.vignetteValue = serializedData.readFloat(false); + filterState.grainValue = serializedData.readFloat(false); + filterState.blurType = serializedData.readInt32(false); + filterState.sharpenValue = serializedData.readFloat(false); + filterState.blurExcludeSize = serializedData.readFloat(false); + filterState.blurExcludePoint = new Point(serializedData.readFloat(false), serializedData.readFloat(false)); + filterState.blurExcludeBlurSize = serializedData.readFloat(false); + filterState.blurAngle = serializedData.readFloat(false); - for (int a = 11; a < args.length; a++) { + for (int a = 0; a < 4; a++) { + PhotoFilterView.CurvesValue curvesValue; + if (a == 0) { + curvesValue = filterState.curvesToolValue.luminanceCurve; + } else if (a == 1) { + curvesValue = filterState.curvesToolValue.redCurve; + } else if (a == 2) { + curvesValue = filterState.curvesToolValue.greenCurve; + } else { + curvesValue = filterState.curvesToolValue.blueCurve; + } + curvesValue.blacksLevel = serializedData.readFloat(false); + curvesValue.shadowsLevel = serializedData.readFloat(false); + curvesValue.midtonesLevel = serializedData.readFloat(false); + curvesValue.highlightsLevel = serializedData.readFloat(false); + curvesValue.whitesLevel = serializedData.readFloat(false); + } + } + has = serializedData.readByte(false); + if (has != 0) { + byte[] bytes = serializedData.readByteArray(false); + paintPath = new String(bytes); + } + + has = serializedData.readByte(false); + if (has != 0) { + int count = serializedData.readInt32(false); + mediaEntities = new ArrayList<>(count); + for (int a = 0; a < count; a++) { + mediaEntities.add(new MediaEntity(serializedData)); + } + isPhoto = serializedData.readByte(false) == 1; + } + serializedData.cleanup(); + } + } else { + start = 11; + } + + for (int a = start; a < args.length; a++) { if (originalPath == null) { originalPath = args[a]; } else { @@ -80,4 +308,8 @@ public class VideoEditedInfo { public boolean needConvert() { return !roundVideo || roundVideo && (startTime > 0 || endTime != -1 && endTime != estimatedDuration); } + + public boolean canAutoPlaySourceVideo() { + return roundVideo;// || (Math.max(originalHeight,originalWidth) <= 1920 && filterState == null) ; + } } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/camera/CameraController.java b/TMessagesProj/src/main/java/org/telegram/messenger/camera/CameraController.java index 788b004a0..354a19ff2 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/camera/CameraController.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/camera/CameraController.java @@ -17,7 +17,6 @@ import android.graphics.drawable.BitmapDrawable; import android.hardware.Camera; import android.media.MediaMetadataRetriever; import android.media.MediaRecorder; -import android.media.ThumbnailUtils; import android.os.Build; import android.provider.MediaStore; import android.util.Base64; @@ -31,6 +30,7 @@ import org.telegram.messenger.FileLog; import org.telegram.messenger.ImageLoader; import org.telegram.messenger.MessagesController; import org.telegram.messenger.NotificationCenter; +import org.telegram.messenger.SendMessagesHelper; import org.telegram.messenger.SharedConfig; import org.telegram.messenger.Utilities; import org.telegram.tgnet.SerializedData; @@ -671,7 +671,7 @@ public class CameraController implements MediaRecorder.OnInfoListener { FileLog.e(e); } } - final Bitmap bitmap = ThumbnailUtils.createVideoThumbnail(recordedFile, MediaStore.Video.Thumbnails.MINI_KIND); + final Bitmap bitmap = SendMessagesHelper.createVideoThumbnail(recordedFile, MediaStore.Video.Thumbnails.MINI_KIND); String fileName = Integer.MIN_VALUE + "_" + SharedConfig.getLastLocalId() + ".jpg"; final File cacheFile = new File(FileLoader.getDirectory(FileLoader.MEDIA_DIR_CACHE), fileName); try { diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/video/MediaCodecVideoConvertor.java b/TMessagesProj/src/main/java/org/telegram/messenger/video/MediaCodecVideoConvertor.java index f4fba4a27..8fd78e9ec 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/video/MediaCodecVideoConvertor.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/video/MediaCodecVideoConvertor.java @@ -1,5 +1,6 @@ package org.telegram.messenger.video; +import android.annotation.TargetApi; import android.media.MediaCodec; import android.media.MediaCodecInfo; import android.media.MediaExtractor; @@ -10,9 +11,11 @@ import org.telegram.messenger.BuildVars; import org.telegram.messenger.FileLog; import org.telegram.messenger.MediaController; import org.telegram.messenger.Utilities; +import org.telegram.messenger.VideoEditedInfo; import java.io.File; import java.nio.ByteBuffer; +import java.util.ArrayList; public class MediaCodecVideoConvertor { @@ -37,19 +40,28 @@ public class MediaCodecVideoConvertor { int framerate, int bitrate, long startTime, long endTime, boolean needCompress, long duration, + MediaController.SavedFilterState savedFilterState, + String paintPath, + ArrayList mediaEntities, + boolean isPhoto, MediaController.VideoConvertorListener callback) { this.callback = callback; return convertVideoInternal(videoPath, cacheFile, rotationValue, isSecret, - resultWidth, resultHeight, framerate, bitrate, startTime, endTime, duration, needCompress, false); + resultWidth, resultHeight, framerate, bitrate, startTime, endTime, duration, needCompress, false, savedFilterState, paintPath, mediaEntities, isPhoto); } + @TargetApi(18) private boolean convertVideoInternal(String videoPath, File cacheFile, int rotationValue, boolean isSecret, int resultWidth, int resultHeight, int framerate, int bitrate, long startTime, long endTime, long duration, - boolean needCompress, boolean increaseTimeout) { + boolean needCompress, boolean increaseTimeout, + MediaController.SavedFilterState savedFilterState, + String paintPath, + ArrayList mediaEntities, + boolean isPhoto) { boolean error = false; boolean repeatWithIncreasedTimeout = false; @@ -61,256 +73,131 @@ public class MediaCodecVideoConvertor { movie.setRotation(rotationValue); movie.setSize(resultWidth, resultHeight); mediaMuxer = new MP4Builder().createMovie(movie, isSecret); - extractor = new MediaExtractor(); - extractor.setDataSource(videoPath); - long currentPts = 0; float durationS = duration / 1000f; - + MediaCodec encoder = null; + InputSurface inputSurface = null; + OutputSurface outputSurface = null; + int prependHeaderSize = 0; checkConversionCanceled(); - int videoIndex = MediaController.findTrack(extractor, false); - int audioIndex = bitrate != -1 ? MediaController.findTrack(extractor, true) : -1; + if (isPhoto) { + try { + boolean outputDone = false; + boolean decoderDone = false; + int videoTrackIndex = -5; + int framesCount = 0; + if (bitrate <= 0) { + bitrate = 921600; + } - boolean needConvertVideo = false; - if (videoIndex >= 0 && !extractor.getTrackFormat(videoIndex).getString(MediaFormat.KEY_MIME).equals(MediaController.VIDEO_MIME_TYPE)) { - needConvertVideo = true; - } - - if (needCompress || needConvertVideo) { - AudioRecoder audioRecoder = null; - ByteBuffer audioBuffer = null; - boolean copyAudioBuffer = true; - - if (videoIndex >= 0) { - MediaCodec decoder = null; - MediaCodec encoder = null; - InputSurface inputSurface = null; - OutputSurface outputSurface = null; - int prependHeaderSize = 0; - - try { - long videoTime = -1; - boolean outputDone = false; - boolean inputDone = false; - boolean decoderDone = false; - int swapUV = 0; - int videoTrackIndex = -5; - int audioTrackIndex = -5; - - int colorFormat; - int processorType = PROCESSOR_TYPE_OTHER; - String manufacturer = Build.MANUFACTURER.toLowerCase(); - if (Build.VERSION.SDK_INT < 18) { - MediaCodecInfo codecInfo = MediaController.selectCodec(MediaController.VIDEO_MIME_TYPE); - colorFormat = MediaController.selectColorFormat(codecInfo, MediaController.VIDEO_MIME_TYPE); - if (colorFormat == 0) { - throw new RuntimeException("no supported color format"); - } - String codecName = codecInfo.getName(); - if (codecName.contains("OMX.qcom.")) { - processorType = PROCESSOR_TYPE_QCOM; - if (Build.VERSION.SDK_INT == 16) { - if (manufacturer.equals("lge") || manufacturer.equals("nokia")) { - swapUV = 1; - } - } - } else if (codecName.contains("OMX.Intel.")) { - processorType = PROCESSOR_TYPE_INTEL; - } else if (codecName.equals("OMX.MTK.VIDEO.ENCODER.AVC")) { - processorType = PROCESSOR_TYPE_MTK; - } else if (codecName.equals("OMX.SEC.AVC.Encoder")) { - processorType = PROCESSOR_TYPE_SEC; - swapUV = 1; - } else if (codecName.equals("OMX.TI.DUCATI1.VIDEO.H264E")) { - processorType = PROCESSOR_TYPE_TI; - } - if (BuildVars.LOGS_ENABLED) { - FileLog.d("codec = " + codecInfo.getName() + " manufacturer = " + manufacturer + "device = " + Build.MODEL); - } - } else { - colorFormat = MediaCodecInfo.CodecCapabilities.COLOR_FormatSurface; - } + if (resultWidth % 16 != 0) { if (BuildVars.LOGS_ENABLED) { - FileLog.d("colorFormat = " + colorFormat); + FileLog.d("changing width from " + resultWidth + " to " + Math.round(resultWidth / 16.0f) * 16); } - - int resultHeightAligned = resultHeight; - int padding = 0; - int bufferSize = resultWidth * resultHeight * 3 / 2; - if (processorType == PROCESSOR_TYPE_OTHER) { - if (resultHeight % 16 != 0) { - resultHeightAligned += (16 - (resultHeight % 16)); - padding = resultWidth * (resultHeightAligned - resultHeight); - bufferSize += padding * 5 / 4; - } - } else if (processorType == PROCESSOR_TYPE_QCOM) { - if (!manufacturer.toLowerCase().equals("lge")) { - int uvoffset = (resultWidth * resultHeight + 2047) & ~2047; - padding = uvoffset - (resultWidth * resultHeight); - bufferSize += padding; - } - } else if (processorType == PROCESSOR_TYPE_TI) { - //resultHeightAligned = 368; - //bufferSize = resultWidth * resultHeightAligned * 3 / 2; - //resultHeightAligned += (16 - (resultHeight % 16)); - //padding = resultWidth * (resultHeightAligned - resultHeight); - //bufferSize += padding * 5 / 4; - } else if (processorType == PROCESSOR_TYPE_MTK) { - if (manufacturer.equals("baidu")) { - resultHeightAligned += (16 - (resultHeight % 16)); - padding = resultWidth * (resultHeightAligned - resultHeight); - bufferSize += padding * 5 / 4; - } + resultWidth = Math.round(resultWidth / 16.0f) * 16; + } + if (resultHeight % 16 != 0) { + if (BuildVars.LOGS_ENABLED) { + FileLog.d("changing height from " + resultHeight + " to " + Math.round(resultHeight / 16.0f) * 16); } + resultHeight = Math.round(resultHeight / 16.0f) * 16; + } - extractor.selectTrack(videoIndex); - MediaFormat videoFormat = extractor.getTrackFormat(videoIndex); + if (BuildVars.LOGS_ENABLED) { + FileLog.d("create photo encoder " + resultWidth + " " + resultHeight + " duration = " + duration); + } - if (startTime > 0) { - extractor.seekTo(startTime, MediaExtractor.SEEK_TO_PREVIOUS_SYNC); - } else { - extractor.seekTo(0, MediaExtractor.SEEK_TO_PREVIOUS_SYNC); - } + MediaFormat outputFormat = MediaFormat.createVideoFormat(MediaController.VIDEO_MIME_TYPE, resultWidth, resultHeight); + outputFormat.setInteger(MediaFormat.KEY_COLOR_FORMAT, MediaCodecInfo.CodecCapabilities.COLOR_FormatSurface); + outputFormat.setInteger(MediaFormat.KEY_BIT_RATE, bitrate); + outputFormat.setInteger(MediaFormat.KEY_FRAME_RATE, framerate); + outputFormat.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, 2); - if (bitrate <= 0) bitrate = 921600; + encoder = MediaCodec.createEncoderByType(MediaController.VIDEO_MIME_TYPE); + encoder.configure(outputFormat, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE); + inputSurface = new InputSurface(encoder.createInputSurface()); + inputSurface.makeCurrent(); + encoder.start(); - MediaFormat outputFormat = MediaFormat.createVideoFormat(MediaController.VIDEO_MIME_TYPE, resultWidth, resultHeight); - outputFormat.setInteger(MediaFormat.KEY_COLOR_FORMAT, colorFormat); - outputFormat.setInteger(MediaFormat.KEY_BIT_RATE, bitrate); - outputFormat.setInteger(MediaFormat.KEY_FRAME_RATE, framerate); - outputFormat.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, 2); + outputSurface = new OutputSurface(savedFilterState, videoPath, paintPath, mediaEntities, resultWidth, resultHeight, framerate, true); - if (Build.VERSION.SDK_INT < 23 && Math.min(resultHeight, resultWidth) <= 480) { - if (bitrate > 921600) bitrate = 921600; - outputFormat.setInteger(MediaFormat.KEY_BIT_RATE, bitrate); - } + ByteBuffer[] encoderOutputBuffers = null; + ByteBuffer[] encoderInputBuffers = null; + if (Build.VERSION.SDK_INT < 21) { + encoderOutputBuffers = encoder.getOutputBuffers(); + } - if (Build.VERSION.SDK_INT < 18) { - outputFormat.setInteger("stride", resultWidth + 32); - outputFormat.setInteger("slice-height", resultHeight); - } + boolean firstEncode = true; - encoder = MediaCodec.createEncoderByType(MediaController.VIDEO_MIME_TYPE); - encoder.configure(outputFormat, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE); - if (Build.VERSION.SDK_INT >= 18) { - inputSurface = new InputSurface(encoder.createInputSurface()); - inputSurface.makeCurrent(); - } - encoder.start(); - - decoder = MediaCodec.createDecoderByType(videoFormat.getString(MediaFormat.KEY_MIME)); - if (Build.VERSION.SDK_INT >= 18) { - outputSurface = new OutputSurface(); - } else { - outputSurface = new OutputSurface(resultWidth, resultHeight, rotationValue); - } - decoder.configure(videoFormat, outputSurface.getSurface(), null, 0); - decoder.start(); - - ByteBuffer[] decoderInputBuffers = null; - ByteBuffer[] encoderOutputBuffers = null; - ByteBuffer[] encoderInputBuffers = null; - if (Build.VERSION.SDK_INT < 21) { - decoderInputBuffers = decoder.getInputBuffers(); - encoderOutputBuffers = encoder.getOutputBuffers(); - if (Build.VERSION.SDK_INT < 18) { - encoderInputBuffers = encoder.getInputBuffers(); - } - } - - if (audioIndex >= 0) { - MediaFormat audioFormat = extractor.getTrackFormat(audioIndex); - copyAudioBuffer = audioFormat.getString(MediaFormat.KEY_MIME).equals(MediaController.AUIDO_MIME_TYPE) - || audioFormat.getString(MediaFormat.KEY_MIME).equals("audio/mpeg"); - - if (audioFormat.getString(MediaFormat.KEY_MIME).equals("audio/unknown")) { - audioIndex = -1; - } - - if (audioIndex >= 0) { - if (copyAudioBuffer) { - audioTrackIndex = mediaMuxer.addTrack(audioFormat, true); - extractor.selectTrack(audioIndex); - int maxBufferSize = audioFormat.getInteger(MediaFormat.KEY_MAX_INPUT_SIZE); - audioBuffer = ByteBuffer.allocateDirect(maxBufferSize); - - if (startTime > 0) { - extractor.seekTo(startTime, MediaExtractor.SEEK_TO_PREVIOUS_SYNC); - } else { - extractor.seekTo(0, MediaExtractor.SEEK_TO_PREVIOUS_SYNC); - } - } else { - MediaExtractor audioExtractor = new MediaExtractor(); - audioExtractor.setDataSource(videoPath); - audioExtractor.selectTrack(audioIndex); - - if (startTime > 0) { - audioExtractor.seekTo(startTime, MediaExtractor.SEEK_TO_PREVIOUS_SYNC); - } else { - audioExtractor.seekTo(0, MediaExtractor.SEEK_TO_PREVIOUS_SYNC); - } - - audioRecoder = new AudioRecoder(audioFormat, audioExtractor, audioIndex); - audioRecoder.startTime = startTime; - audioRecoder.endTime = endTime; - audioTrackIndex = mediaMuxer.addTrack(audioRecoder.format, true); - } - } - } - - boolean audioEncoderDone = audioIndex < 0; - - boolean firstEncode = true; + checkConversionCanceled(); + while (!outputDone) { checkConversionCanceled(); - while (!outputDone || (!copyAudioBuffer && !audioEncoderDone)) { + boolean decoderOutputAvailable = !decoderDone; + boolean encoderOutputAvailable = true; + while (decoderOutputAvailable || encoderOutputAvailable) { checkConversionCanceled(); - - if (!copyAudioBuffer && audioRecoder != null) { - audioEncoderDone = audioRecoder.step(mediaMuxer, audioTrackIndex); - } - - if (!inputDone) { - boolean eof = false; - int index = extractor.getSampleTrackIndex(); - if (index == videoIndex) { - int inputBufIndex = decoder.dequeueInputBuffer(MEDIACODEC_TIMEOUT_DEFAULT); - if (inputBufIndex >= 0) { - ByteBuffer inputBuf; - if (Build.VERSION.SDK_INT < 21) { - inputBuf = decoderInputBuffers[inputBufIndex]; - } else { - inputBuf = decoder.getInputBuffer(inputBufIndex); + int encoderStatus = encoder.dequeueOutputBuffer(info, increaseTimeout ? MEDIACODEC_TIMEOUT_INCREASED : MEDIACODEC_TIMEOUT_DEFAULT); + if (encoderStatus == MediaCodec.INFO_TRY_AGAIN_LATER) { + encoderOutputAvailable = false; + } else if (encoderStatus == MediaCodec.INFO_OUTPUT_BUFFERS_CHANGED) { + if (Build.VERSION.SDK_INT < 21) { + encoderOutputBuffers = encoder.getOutputBuffers(); + } + } else if (encoderStatus == MediaCodec.INFO_OUTPUT_FORMAT_CHANGED) { + MediaFormat newFormat = encoder.getOutputFormat(); + if (BuildVars.LOGS_ENABLED) { + FileLog.d("photo encoder new format " + newFormat); + } + if (videoTrackIndex == -5 && newFormat != null) { + videoTrackIndex = mediaMuxer.addTrack(newFormat, false); + if (newFormat.containsKey(MediaFormat.KEY_PREPEND_HEADER_TO_SYNC_FRAMES) && newFormat.getInteger(MediaFormat.KEY_PREPEND_HEADER_TO_SYNC_FRAMES) == 1) { + ByteBuffer spsBuff = newFormat.getByteBuffer("csd-0"); + ByteBuffer ppsBuff = newFormat.getByteBuffer("csd-1"); + prependHeaderSize = spsBuff.limit() + ppsBuff.limit(); + } + } + } else if (encoderStatus < 0) { + throw new RuntimeException("unexpected result from encoder.dequeueOutputBuffer: " + encoderStatus); + } else { + ByteBuffer encodedData; + if (Build.VERSION.SDK_INT < 21) { + encodedData = encoderOutputBuffers[encoderStatus]; + } else { + encodedData = encoder.getOutputBuffer(encoderStatus); + } + if (encodedData == null) { + throw new RuntimeException("encoderOutputBuffer " + encoderStatus + " was null"); + } + if (info.size > 1) { + if ((info.flags & MediaCodec.BUFFER_FLAG_CODEC_CONFIG) == 0) { + if (prependHeaderSize != 0 && (info.flags & MediaCodec.BUFFER_FLAG_KEY_FRAME) != 0) { + info.offset += prependHeaderSize; + info.size -= prependHeaderSize; } - int chunkSize = extractor.readSampleData(inputBuf, 0); - if (chunkSize < 0) { - decoder.queueInputBuffer(inputBufIndex, 0, 0, 0L, MediaCodec.BUFFER_FLAG_END_OF_STREAM); - inputDone = true; - } else { - decoder.queueInputBuffer(inputBufIndex, 0, chunkSize, extractor.getSampleTime(), 0); - extractor.advance(); + if (firstEncode && (info.flags & MediaCodec.BUFFER_FLAG_KEY_FRAME) != 0) { + if (info.size > 100) { + encodedData.position(info.offset); + byte[] temp = new byte[100]; + encodedData.get(temp); + int nalCount = 0; + for (int a = 0; a < temp.length - 4; a++) { + if (temp[a] == 0 && temp[a + 1] == 0 && temp[a + 2] == 0 && temp[a + 3] == 1) { + nalCount++; + if (nalCount > 1) { + info.offset += a; + info.size -= a; + break; + } + } + } + } + firstEncode = false; } - } - } else if (copyAudioBuffer && audioIndex != -1 && index == audioIndex) { - info.size = extractor.readSampleData(audioBuffer, 0); - if (Build.VERSION.SDK_INT < 21) { - audioBuffer.position(0); - audioBuffer.limit(info.size); - } - if (info.size >= 0) { - info.presentationTimeUs = extractor.getSampleTime(); - extractor.advance(); - } else { - info.size = 0; - inputDone = true; - } - if (info.size > 0 && (endTime < 0 || info.presentationTimeUs < endTime)) { - info.offset = 0; - info.flags = extractor.getSampleFlags(); - long availableSize = mediaMuxer.writeSampleData(audioTrackIndex, audioBuffer, info, false); + long availableSize = mediaMuxer.writeSampleData(videoTrackIndex, encodedData, info, true); if (availableSize != 0) { if (callback != null) { if (info.presentationTimeUs - startTime > currentPts) { @@ -319,78 +206,323 @@ public class MediaCodecVideoConvertor { callback.didWriteData(availableSize, (currentPts / 1000f) / durationS); } } + } else if (videoTrackIndex == -5) { + byte[] csd = new byte[info.size]; + encodedData.limit(info.offset + info.size); + encodedData.position(info.offset); + encodedData.get(csd); + ByteBuffer sps = null; + ByteBuffer pps = null; + for (int a = info.size - 1; a >= 0; a--) { + if (a > 3) { + if (csd[a] == 1 && csd[a - 1] == 0 && csd[a - 2] == 0 && csd[a - 3] == 0) { + sps = ByteBuffer.allocate(a - 3); + pps = ByteBuffer.allocate(info.size - (a - 3)); + sps.put(csd, 0, a - 3).position(0); + pps.put(csd, a - 3, info.size - (a - 3)).position(0); + break; + } + } else { + break; + } + } + + MediaFormat newFormat = MediaFormat.createVideoFormat(MediaController.VIDEO_MIME_TYPE, resultWidth, resultHeight); + if (sps != null && pps != null) { + newFormat.setByteBuffer("csd-0", sps); + newFormat.setByteBuffer("csd-1", pps); + } + videoTrackIndex = mediaMuxer.addTrack(newFormat, false); } - } else if (index == -1) { - eof = true; } - if (eof) { - int inputBufIndex = decoder.dequeueInputBuffer(MEDIACODEC_TIMEOUT_DEFAULT); - if (inputBufIndex >= 0) { - decoder.queueInputBuffer(inputBufIndex, 0, 0, 0L, MediaCodec.BUFFER_FLAG_END_OF_STREAM); - inputDone = true; + outputDone = (info.flags & MediaCodec.BUFFER_FLAG_END_OF_STREAM) != 0; + encoder.releaseOutputBuffer(encoderStatus, false); + } + if (encoderStatus != MediaCodec.INFO_TRY_AGAIN_LATER) { + continue; + } + + if (!decoderDone) { + outputSurface.drawImage(false); + inputSurface.setPresentationTime((long) (framesCount / 30.0f * 1000L * 1000L * 1000L)); + inputSurface.swapBuffers(); + framesCount++; + + if (framesCount >= duration / 1000.0f * 30) { + decoderDone = true; + decoderOutputAvailable = false; + encoder.signalEndOfInputStream(); + } + } + } + } + } catch (Exception e) { + // in some case encoder.dequeueOutputBuffer return IllegalStateException + // stable reproduced on xiaomi + // fix it by increasing timeout + if (e instanceof IllegalStateException && !increaseTimeout) { + repeatWithIncreasedTimeout = true; + } + FileLog.e("bitrate: " + bitrate + " framerate: " + framerate + " size: " + resultHeight + "x" + resultWidth); + FileLog.e(e); + error = true; + } + + if (outputSurface != null) { + outputSurface.release(); + } + if (inputSurface != null) { + inputSurface.release(); + } + if (encoder != null) { + encoder.stop(); + encoder.release(); + } + checkConversionCanceled(); + } else { + extractor = new MediaExtractor(); + extractor.setDataSource(videoPath); + + int videoIndex = MediaController.findTrack(extractor, false); + int audioIndex = bitrate != -1 ? MediaController.findTrack(extractor, true) : -1; + boolean needConvertVideo = false; + if (videoIndex >= 0 && !extractor.getTrackFormat(videoIndex).getString(MediaFormat.KEY_MIME).equals(MediaController.VIDEO_MIME_TYPE)) { + needConvertVideo = true; + } + + if (needCompress || needConvertVideo) { + AudioRecoder audioRecoder = null; + ByteBuffer audioBuffer = null; + boolean copyAudioBuffer = true; + + if (videoIndex >= 0) { + MediaCodec decoder = null; + + try { + long videoTime = -1; + boolean outputDone = false; + boolean inputDone = false; + boolean decoderDone = false; + int swapUV = 0; + int videoTrackIndex = -5; + int audioTrackIndex = -5; + + int colorFormat; + int processorType = PROCESSOR_TYPE_OTHER; + String manufacturer = Build.MANUFACTURER.toLowerCase(); + if (Build.VERSION.SDK_INT < 18) { + MediaCodecInfo codecInfo = MediaController.selectCodec(MediaController.VIDEO_MIME_TYPE); + colorFormat = MediaController.selectColorFormat(codecInfo, MediaController.VIDEO_MIME_TYPE); + if (colorFormat == 0) { + throw new RuntimeException("no supported color format"); + } + String codecName = codecInfo.getName(); + if (codecName.contains("OMX.qcom.")) { + processorType = PROCESSOR_TYPE_QCOM; + if (Build.VERSION.SDK_INT == 16) { + if (manufacturer.equals("lge") || manufacturer.equals("nokia")) { + swapUV = 1; + } + } + } else if (codecName.contains("OMX.Intel.")) { + processorType = PROCESSOR_TYPE_INTEL; + } else if (codecName.equals("OMX.MTK.VIDEO.ENCODER.AVC")) { + processorType = PROCESSOR_TYPE_MTK; + } else if (codecName.equals("OMX.SEC.AVC.Encoder")) { + processorType = PROCESSOR_TYPE_SEC; + swapUV = 1; + } else if (codecName.equals("OMX.TI.DUCATI1.VIDEO.H264E")) { + processorType = PROCESSOR_TYPE_TI; + } + if (BuildVars.LOGS_ENABLED) { + FileLog.d("codec = " + codecInfo.getName() + " manufacturer = " + manufacturer + "device = " + Build.MODEL); + } + } else { + colorFormat = MediaCodecInfo.CodecCapabilities.COLOR_FormatSurface; + } + if (BuildVars.LOGS_ENABLED) { + FileLog.d("colorFormat = " + colorFormat); + } + + int resultHeightAligned = resultHeight; + int padding = 0; + int bufferSize = resultWidth * resultHeight * 3 / 2; + if (processorType == PROCESSOR_TYPE_OTHER) { + if (resultHeight % 16 != 0) { + resultHeightAligned += (16 - (resultHeight % 16)); + padding = resultWidth * (resultHeightAligned - resultHeight); + bufferSize += padding * 5 / 4; + } + } else if (processorType == PROCESSOR_TYPE_QCOM) { + if (!manufacturer.toLowerCase().equals("lge")) { + int uvoffset = (resultWidth * resultHeight + 2047) & ~2047; + padding = uvoffset - (resultWidth * resultHeight); + bufferSize += padding; + } + } else if (processorType == PROCESSOR_TYPE_TI) { + //resultHeightAligned = 368; + //bufferSize = resultWidth * resultHeightAligned * 3 / 2; + //resultHeightAligned += (16 - (resultHeight % 16)); + //padding = resultWidth * (resultHeightAligned - resultHeight); + //bufferSize += padding * 5 / 4; + } else if (processorType == PROCESSOR_TYPE_MTK) { + if (manufacturer.equals("baidu")) { + resultHeightAligned += (16 - (resultHeight % 16)); + padding = resultWidth * (resultHeightAligned - resultHeight); + bufferSize += padding * 5 / 4; + } + } + + extractor.selectTrack(videoIndex); + MediaFormat videoFormat = extractor.getTrackFormat(videoIndex); + + if (startTime > 0) { + extractor.seekTo(startTime, MediaExtractor.SEEK_TO_PREVIOUS_SYNC); + } else { + extractor.seekTo(0, MediaExtractor.SEEK_TO_PREVIOUS_SYNC); + } + + if (bitrate <= 0) { + bitrate = 921600; + } + + MediaFormat outputFormat = MediaFormat.createVideoFormat(MediaController.VIDEO_MIME_TYPE, resultWidth, resultHeight); + outputFormat.setInteger(MediaFormat.KEY_COLOR_FORMAT, colorFormat); + outputFormat.setInteger(MediaFormat.KEY_BIT_RATE, bitrate); + outputFormat.setInteger(MediaFormat.KEY_FRAME_RATE, framerate); + outputFormat.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, 2); + + if (Build.VERSION.SDK_INT < 23 && Math.min(resultHeight, resultWidth) <= 480) { + if (bitrate > 921600) { + bitrate = 921600; + } + outputFormat.setInteger(MediaFormat.KEY_BIT_RATE, bitrate); + } + + if (Build.VERSION.SDK_INT < 18) { + outputFormat.setInteger("stride", resultWidth + 32); + outputFormat.setInteger("slice-height", resultHeight); + } + + encoder = MediaCodec.createEncoderByType(MediaController.VIDEO_MIME_TYPE); + encoder.configure(outputFormat, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE); + if (Build.VERSION.SDK_INT >= 18) { + inputSurface = new InputSurface(encoder.createInputSurface()); + inputSurface.makeCurrent(); + } + encoder.start(); + + decoder = MediaCodec.createDecoderByType(videoFormat.getString(MediaFormat.KEY_MIME)); + if (Build.VERSION.SDK_INT >= 18) { + outputSurface = new OutputSurface(savedFilterState, null, paintPath, mediaEntities, resultWidth, resultHeight, framerate, false); + } else { + outputSurface = new OutputSurface(resultWidth, resultHeight, rotationValue); + } + decoder.configure(videoFormat, outputSurface.getSurface(), null, 0); + decoder.start(); + + ByteBuffer[] decoderInputBuffers = null; + ByteBuffer[] encoderOutputBuffers = null; + ByteBuffer[] encoderInputBuffers = null; + if (Build.VERSION.SDK_INT < 21) { + decoderInputBuffers = decoder.getInputBuffers(); + encoderOutputBuffers = encoder.getOutputBuffers(); + if (Build.VERSION.SDK_INT < 18) { + encoderInputBuffers = encoder.getInputBuffers(); + } + } + + if (audioIndex >= 0) { + MediaFormat audioFormat = extractor.getTrackFormat(audioIndex); + copyAudioBuffer = audioFormat.getString(MediaFormat.KEY_MIME).equals(MediaController.AUIDO_MIME_TYPE) + || audioFormat.getString(MediaFormat.KEY_MIME).equals("audio/mpeg"); + + if (audioFormat.getString(MediaFormat.KEY_MIME).equals("audio/unknown")) { + audioIndex = -1; + } + + if (audioIndex >= 0) { + if (copyAudioBuffer) { + audioTrackIndex = mediaMuxer.addTrack(audioFormat, true); + extractor.selectTrack(audioIndex); + int maxBufferSize = audioFormat.getInteger(MediaFormat.KEY_MAX_INPUT_SIZE); + audioBuffer = ByteBuffer.allocateDirect(maxBufferSize); + + if (startTime > 0) { + extractor.seekTo(startTime, MediaExtractor.SEEK_TO_PREVIOUS_SYNC); + } else { + extractor.seekTo(0, MediaExtractor.SEEK_TO_PREVIOUS_SYNC); + } + } else { + MediaExtractor audioExtractor = new MediaExtractor(); + audioExtractor.setDataSource(videoPath); + audioExtractor.selectTrack(audioIndex); + + if (startTime > 0) { + audioExtractor.seekTo(startTime, MediaExtractor.SEEK_TO_PREVIOUS_SYNC); + } else { + audioExtractor.seekTo(0, MediaExtractor.SEEK_TO_PREVIOUS_SYNC); + } + + audioRecoder = new AudioRecoder(audioFormat, audioExtractor, audioIndex); + audioRecoder.startTime = startTime; + audioRecoder.endTime = endTime; + audioTrackIndex = mediaMuxer.addTrack(audioRecoder.format, true); } } } - boolean decoderOutputAvailable = !decoderDone; - boolean encoderOutputAvailable = true; - while (decoderOutputAvailable || encoderOutputAvailable) { + boolean audioEncoderDone = audioIndex < 0; + + boolean firstEncode = true; + + checkConversionCanceled(); + + while (!outputDone || (!copyAudioBuffer && !audioEncoderDone)) { checkConversionCanceled(); - int encoderStatus = encoder.dequeueOutputBuffer(info, increaseTimeout ? MEDIACODEC_TIMEOUT_INCREASED : MEDIACODEC_TIMEOUT_DEFAULT); - if (encoderStatus == MediaCodec.INFO_TRY_AGAIN_LATER) { - encoderOutputAvailable = false; - } else if (encoderStatus == MediaCodec.INFO_OUTPUT_BUFFERS_CHANGED) { - if (Build.VERSION.SDK_INT < 21) { - encoderOutputBuffers = encoder.getOutputBuffers(); - } - } else if (encoderStatus == MediaCodec.INFO_OUTPUT_FORMAT_CHANGED) { - MediaFormat newFormat = encoder.getOutputFormat(); - if (videoTrackIndex == -5 && newFormat != null) { - videoTrackIndex = mediaMuxer.addTrack(newFormat, false); - if (newFormat.containsKey(MediaFormat.KEY_PREPEND_HEADER_TO_SYNC_FRAMES) && newFormat.getInteger(MediaFormat.KEY_PREPEND_HEADER_TO_SYNC_FRAMES) == 1) { - ByteBuffer spsBuff = newFormat.getByteBuffer("csd-0"); - ByteBuffer ppsBuff = newFormat.getByteBuffer("csd-1"); - prependHeaderSize = spsBuff.limit() + ppsBuff.limit(); + + if (!copyAudioBuffer && audioRecoder != null) { + audioEncoderDone = audioRecoder.step(mediaMuxer, audioTrackIndex); + } + + if (!inputDone) { + boolean eof = false; + int index = extractor.getSampleTrackIndex(); + if (index == videoIndex) { + int inputBufIndex = decoder.dequeueInputBuffer(MEDIACODEC_TIMEOUT_DEFAULT); + if (inputBufIndex >= 0) { + ByteBuffer inputBuf; + if (Build.VERSION.SDK_INT < 21) { + inputBuf = decoderInputBuffers[inputBufIndex]; + } else { + inputBuf = decoder.getInputBuffer(inputBufIndex); + } + int chunkSize = extractor.readSampleData(inputBuf, 0); + if (chunkSize < 0) { + decoder.queueInputBuffer(inputBufIndex, 0, 0, 0L, MediaCodec.BUFFER_FLAG_END_OF_STREAM); + inputDone = true; + } else { + decoder.queueInputBuffer(inputBufIndex, 0, chunkSize, extractor.getSampleTime(), 0); + extractor.advance(); + } } - } - } else if (encoderStatus < 0) { - throw new RuntimeException("unexpected result from encoder.dequeueOutputBuffer: " + encoderStatus); - } else { - ByteBuffer encodedData; - if (Build.VERSION.SDK_INT < 21) { - encodedData = encoderOutputBuffers[encoderStatus]; - } else { - encodedData = encoder.getOutputBuffer(encoderStatus); - } - if (encodedData == null) { - throw new RuntimeException("encoderOutputBuffer " + encoderStatus + " was null"); - } - if (info.size > 1) { - if ((info.flags & MediaCodec.BUFFER_FLAG_CODEC_CONFIG) == 0) { - if (prependHeaderSize != 0 && (info.flags & MediaCodec.BUFFER_FLAG_KEY_FRAME) != 0) { - info.offset += prependHeaderSize; - info.size -= prependHeaderSize; - } - if (firstEncode && (info.flags & MediaCodec.BUFFER_FLAG_KEY_FRAME) != 0) { - if (info.size > 100) { - encodedData.position(info.offset); - byte[] temp = new byte[100]; - encodedData.get(temp); - int nalCount = 0; - for (int a = 0; a < temp.length - 4; a++) { - if (temp[a] == 0 && temp[a + 1] == 0 && temp[a + 2] == 0 && temp[a + 3] == 1) { - nalCount++; - if (nalCount > 1) { - info.offset += a; - info.size -= a; - break; - } - } - } - } - firstEncode = false; - } - long availableSize = mediaMuxer.writeSampleData(videoTrackIndex, encodedData, info, true); + } else if (copyAudioBuffer && audioIndex != -1 && index == audioIndex) { + info.size = extractor.readSampleData(audioBuffer, 0); + if (Build.VERSION.SDK_INT < 21) { + audioBuffer.position(0); + audioBuffer.limit(info.size); + } + if (info.size >= 0) { + info.presentationTimeUs = extractor.getSampleTime(); + extractor.advance(); + } else { + info.size = 0; + inputDone = true; + } + if (info.size > 0 && (endTime < 0 || info.presentationTimeUs < endTime)) { + info.offset = 0; + info.flags = extractor.getSampleFlags(); + long availableSize = mediaMuxer.writeSampleData(audioTrackIndex, audioBuffer, info, false); if (availableSize != 0) { if (callback != null) { if (info.presentationTimeUs - startTime > currentPts) { @@ -399,161 +531,242 @@ public class MediaCodecVideoConvertor { callback.didWriteData(availableSize, (currentPts / 1000f) / durationS); } } - } else if (videoTrackIndex == -5) { - byte[] csd = new byte[info.size]; - encodedData.limit(info.offset + info.size); - encodedData.position(info.offset); - encodedData.get(csd); - ByteBuffer sps = null; - ByteBuffer pps = null; - for (int a = info.size - 1; a >= 0; a--) { - if (a > 3) { - if (csd[a] == 1 && csd[a - 1] == 0 && csd[a - 2] == 0 && csd[a - 3] == 0) { - sps = ByteBuffer.allocate(a - 3); - pps = ByteBuffer.allocate(info.size - (a - 3)); - sps.put(csd, 0, a - 3).position(0); - pps.put(csd, a - 3, info.size - (a - 3)).position(0); - break; - } - } else { - break; - } - } - - MediaFormat newFormat = MediaFormat.createVideoFormat(MediaController.VIDEO_MIME_TYPE, resultWidth, resultHeight); - if (sps != null && pps != null) { - newFormat.setByteBuffer("csd-0", sps); - newFormat.setByteBuffer("csd-1", pps); - } - videoTrackIndex = mediaMuxer.addTrack(newFormat, false); + } + } else if (index == -1) { + eof = true; + } + if (eof) { + int inputBufIndex = decoder.dequeueInputBuffer(MEDIACODEC_TIMEOUT_DEFAULT); + if (inputBufIndex >= 0) { + decoder.queueInputBuffer(inputBufIndex, 0, 0, 0L, MediaCodec.BUFFER_FLAG_END_OF_STREAM); + inputDone = true; } } - outputDone = (info.flags & MediaCodec.BUFFER_FLAG_END_OF_STREAM) != 0; - encoder.releaseOutputBuffer(encoderStatus, false); - } - if (encoderStatus != MediaCodec.INFO_TRY_AGAIN_LATER) { - continue; } - if (!decoderDone) { - int decoderStatus = decoder.dequeueOutputBuffer(info, MEDIACODEC_TIMEOUT_DEFAULT); - if (decoderStatus == MediaCodec.INFO_TRY_AGAIN_LATER) { - decoderOutputAvailable = false; - } else if (decoderStatus == MediaCodec.INFO_OUTPUT_BUFFERS_CHANGED) { - - } else if (decoderStatus == MediaCodec.INFO_OUTPUT_FORMAT_CHANGED) { - MediaFormat newFormat = decoder.getOutputFormat(); - if (BuildVars.LOGS_ENABLED) { - FileLog.d("newFormat = " + newFormat); + boolean decoderOutputAvailable = !decoderDone; + boolean encoderOutputAvailable = true; + while (decoderOutputAvailable || encoderOutputAvailable) { + checkConversionCanceled(); + int encoderStatus = encoder.dequeueOutputBuffer(info, increaseTimeout ? MEDIACODEC_TIMEOUT_INCREASED : MEDIACODEC_TIMEOUT_DEFAULT); + if (encoderStatus == MediaCodec.INFO_TRY_AGAIN_LATER) { + encoderOutputAvailable = false; + } else if (encoderStatus == MediaCodec.INFO_OUTPUT_BUFFERS_CHANGED) { + if (Build.VERSION.SDK_INT < 21) { + encoderOutputBuffers = encoder.getOutputBuffers(); } - } else if (decoderStatus < 0) { - throw new RuntimeException("unexpected result from decoder.dequeueOutputBuffer: " + decoderStatus); + } else if (encoderStatus == MediaCodec.INFO_OUTPUT_FORMAT_CHANGED) { + MediaFormat newFormat = encoder.getOutputFormat(); + if (videoTrackIndex == -5 && newFormat != null) { + videoTrackIndex = mediaMuxer.addTrack(newFormat, false); + if (newFormat.containsKey(MediaFormat.KEY_PREPEND_HEADER_TO_SYNC_FRAMES) && newFormat.getInteger(MediaFormat.KEY_PREPEND_HEADER_TO_SYNC_FRAMES) == 1) { + ByteBuffer spsBuff = newFormat.getByteBuffer("csd-0"); + ByteBuffer ppsBuff = newFormat.getByteBuffer("csd-1"); + prependHeaderSize = spsBuff.limit() + ppsBuff.limit(); + } + } + } else if (encoderStatus < 0) { + throw new RuntimeException("unexpected result from encoder.dequeueOutputBuffer: " + encoderStatus); } else { - boolean doRender; - if (Build.VERSION.SDK_INT >= 18) { - doRender = info.size != 0; + ByteBuffer encodedData; + if (Build.VERSION.SDK_INT < 21) { + encodedData = encoderOutputBuffers[encoderStatus]; } else { - doRender = info.size != 0 || info.presentationTimeUs != 0; + encodedData = encoder.getOutputBuffer(encoderStatus); } - if (endTime > 0 && info.presentationTimeUs >= endTime) { - inputDone = true; - decoderDone = true; - doRender = false; - info.flags |= MediaCodec.BUFFER_FLAG_END_OF_STREAM; + if (encodedData == null) { + throw new RuntimeException("encoderOutputBuffer " + encoderStatus + " was null"); } - if (startTime > 0 && videoTime == -1) { - if (info.presentationTimeUs < startTime) { - doRender = false; - if (BuildVars.LOGS_ENABLED) { - FileLog.d("drop frame startTime = " + startTime + " present time = " + info.presentationTimeUs); + if (info.size > 1) { + if ((info.flags & MediaCodec.BUFFER_FLAG_CODEC_CONFIG) == 0) { + if (prependHeaderSize != 0 && (info.flags & MediaCodec.BUFFER_FLAG_KEY_FRAME) != 0) { + info.offset += prependHeaderSize; + info.size -= prependHeaderSize; } - } else { - videoTime = info.presentationTimeUs; + if (firstEncode && (info.flags & MediaCodec.BUFFER_FLAG_KEY_FRAME) != 0) { + if (info.size > 100) { + encodedData.position(info.offset); + byte[] temp = new byte[100]; + encodedData.get(temp); + int nalCount = 0; + for (int a = 0; a < temp.length - 4; a++) { + if (temp[a] == 0 && temp[a + 1] == 0 && temp[a + 2] == 0 && temp[a + 3] == 1) { + nalCount++; + if (nalCount > 1) { + info.offset += a; + info.size -= a; + break; + } + } + } + } + firstEncode = false; + } + long availableSize = mediaMuxer.writeSampleData(videoTrackIndex, encodedData, info, true); + if (availableSize != 0) { + if (callback != null) { + if (info.presentationTimeUs - startTime > currentPts) { + currentPts = info.presentationTimeUs - startTime; + } + callback.didWriteData(availableSize, (currentPts / 1000f) / durationS); + } + } + } else if (videoTrackIndex == -5) { + byte[] csd = new byte[info.size]; + encodedData.limit(info.offset + info.size); + encodedData.position(info.offset); + encodedData.get(csd); + ByteBuffer sps = null; + ByteBuffer pps = null; + for (int a = info.size - 1; a >= 0; a--) { + if (a > 3) { + if (csd[a] == 1 && csd[a - 1] == 0 && csd[a - 2] == 0 && csd[a - 3] == 0) { + sps = ByteBuffer.allocate(a - 3); + pps = ByteBuffer.allocate(info.size - (a - 3)); + sps.put(csd, 0, a - 3).position(0); + pps.put(csd, a - 3, info.size - (a - 3)).position(0); + break; + } + } else { + break; + } + } + + MediaFormat newFormat = MediaFormat.createVideoFormat(MediaController.VIDEO_MIME_TYPE, resultWidth, resultHeight); + if (sps != null && pps != null) { + newFormat.setByteBuffer("csd-0", sps); + newFormat.setByteBuffer("csd-1", pps); + } + videoTrackIndex = mediaMuxer.addTrack(newFormat, false); } } - decoder.releaseOutputBuffer(decoderStatus, doRender); - if (doRender) { - boolean errorWait = false; - try { - outputSurface.awaitNewImage(); - } catch (Exception e) { - errorWait = true; - FileLog.e(e); + outputDone = (info.flags & MediaCodec.BUFFER_FLAG_END_OF_STREAM) != 0; + encoder.releaseOutputBuffer(encoderStatus, false); + } + if (encoderStatus != MediaCodec.INFO_TRY_AGAIN_LATER) { + continue; + } + + if (!decoderDone) { + int decoderStatus = decoder.dequeueOutputBuffer(info, MEDIACODEC_TIMEOUT_DEFAULT); + if (decoderStatus == MediaCodec.INFO_TRY_AGAIN_LATER) { + decoderOutputAvailable = false; + } else if (decoderStatus == MediaCodec.INFO_OUTPUT_BUFFERS_CHANGED) { + + } else if (decoderStatus == MediaCodec.INFO_OUTPUT_FORMAT_CHANGED) { + MediaFormat newFormat = decoder.getOutputFormat(); + if (BuildVars.LOGS_ENABLED) { + FileLog.d("newFormat = " + newFormat); } - if (!errorWait) { - if (Build.VERSION.SDK_INT >= 18) { - outputSurface.drawImage(false); - inputSurface.setPresentationTime(info.presentationTimeUs * 1000); - inputSurface.swapBuffers(); + } else if (decoderStatus < 0) { + throw new RuntimeException("unexpected result from decoder.dequeueOutputBuffer: " + decoderStatus); + } else { + boolean doRender; + if (Build.VERSION.SDK_INT >= 18) { + doRender = info.size != 0; + } else { + doRender = info.size != 0 || info.presentationTimeUs != 0; + } + if (endTime > 0 && info.presentationTimeUs >= endTime) { + inputDone = true; + decoderDone = true; + doRender = false; + info.flags |= MediaCodec.BUFFER_FLAG_END_OF_STREAM; + } + if (startTime > 0 && videoTime == -1) { + if (info.presentationTimeUs < startTime) { + doRender = false; + if (BuildVars.LOGS_ENABLED) { + FileLog.d("drop frame startTime = " + startTime + " present time = " + info.presentationTimeUs); + } } else { - int inputBufIndex = encoder.dequeueInputBuffer(MEDIACODEC_TIMEOUT_DEFAULT); - if (inputBufIndex >= 0) { - outputSurface.drawImage(true); - ByteBuffer rgbBuf = outputSurface.getFrame(); - ByteBuffer yuvBuf = encoderInputBuffers[inputBufIndex]; - yuvBuf.clear(); - Utilities.convertVideoFrame(rgbBuf, yuvBuf, colorFormat, resultWidth, resultHeight, padding, swapUV); - encoder.queueInputBuffer(inputBufIndex, 0, bufferSize, info.presentationTimeUs, 0); + videoTime = info.presentationTimeUs; + } + } + decoder.releaseOutputBuffer(decoderStatus, doRender); + if (doRender) { + boolean errorWait = false; + try { + outputSurface.awaitNewImage(); + } catch (Exception e) { + errorWait = true; + FileLog.e(e); + } + if (!errorWait) { + if (Build.VERSION.SDK_INT >= 18) { + outputSurface.drawImage(false); + inputSurface.setPresentationTime(info.presentationTimeUs * 1000); + inputSurface.swapBuffers(); } else { - if (BuildVars.LOGS_ENABLED) { - FileLog.d("input buffer not available"); + int inputBufIndex = encoder.dequeueInputBuffer(MEDIACODEC_TIMEOUT_DEFAULT); + if (inputBufIndex >= 0) { + outputSurface.drawImage(true); + ByteBuffer rgbBuf = outputSurface.getFrame(); + ByteBuffer yuvBuf = encoderInputBuffers[inputBufIndex]; + yuvBuf.clear(); + Utilities.convertVideoFrame(rgbBuf, yuvBuf, colorFormat, resultWidth, resultHeight, padding, swapUV); + encoder.queueInputBuffer(inputBufIndex, 0, bufferSize, info.presentationTimeUs, 0); + } else { + if (BuildVars.LOGS_ENABLED) { + FileLog.d("input buffer not available"); + } } } } } - } - if ((info.flags & MediaCodec.BUFFER_FLAG_END_OF_STREAM) != 0) { - decoderOutputAvailable = false; - if (BuildVars.LOGS_ENABLED) { - FileLog.d("decoder stream end"); - } - if (Build.VERSION.SDK_INT >= 18) { - encoder.signalEndOfInputStream(); - } else { - int inputBufIndex = encoder.dequeueInputBuffer(MEDIACODEC_TIMEOUT_DEFAULT); - if (inputBufIndex >= 0) { - encoder.queueInputBuffer(inputBufIndex, 0, 1, info.presentationTimeUs, MediaCodec.BUFFER_FLAG_END_OF_STREAM); + if ((info.flags & MediaCodec.BUFFER_FLAG_END_OF_STREAM) != 0) { + decoderOutputAvailable = false; + if (BuildVars.LOGS_ENABLED) { + FileLog.d("decoder stream end"); + } + if (Build.VERSION.SDK_INT >= 18) { + encoder.signalEndOfInputStream(); + } else { + int inputBufIndex = encoder.dequeueInputBuffer(MEDIACODEC_TIMEOUT_DEFAULT); + if (inputBufIndex >= 0) { + encoder.queueInputBuffer(inputBufIndex, 0, 1, info.presentationTimeUs, MediaCodec.BUFFER_FLAG_END_OF_STREAM); + } } } } } } } + } catch (Exception e) { + // in some case encoder.dequeueOutputBuffer return IllegalStateException + // stable reproduced on xiaomi + // fix it by increasing timeout + if (e instanceof IllegalStateException && !increaseTimeout) { + repeatWithIncreasedTimeout = true; + } + FileLog.e("bitrate: " + bitrate + " framerate: " + framerate + " size: " + resultHeight + "x" + resultWidth); + FileLog.e(e); + error = true; } - } catch (Exception e) { - // in some case encoder.dequeueOutputBuffer return IllegalStateException - // stable reproduced on xiaomi - // fix it by increasing timeout - if (e instanceof IllegalStateException && !increaseTimeout) { - repeatWithIncreasedTimeout = true; + + extractor.unselectTrack(videoIndex); + if (decoder != null) { + decoder.stop(); + decoder.release(); } - FileLog.e("bitrate: " + bitrate + " framerate: " + framerate + " size: " + resultHeight + "x" + resultWidth); - FileLog.e(e); - error = true; } - - extractor.unselectTrack(videoIndex); - if (outputSurface != null) { outputSurface.release(); } if (inputSurface != null) { inputSurface.release(); } - if (decoder != null) { - decoder.stop(); - decoder.release(); - } if (encoder != null) { encoder.stop(); encoder.release(); } - - if (audioRecoder != null) audioRecoder.release(); + if (audioRecoder != null) { + audioRecoder.release(); + } checkConversionCanceled(); + } else { + readAndWriteTracks(extractor, mediaMuxer, info, startTime, endTime, duration, cacheFile, bitrate != -1); } - } else { - readAndWriteTracks(extractor, mediaMuxer, info, startTime, endTime, duration, cacheFile, bitrate != -1); } } catch (Exception e) { error = true; @@ -574,7 +787,7 @@ public class MediaCodecVideoConvertor { if (repeatWithIncreasedTimeout) { return convertVideoInternal(videoPath, cacheFile, rotationValue, isSecret, - resultWidth, resultHeight, framerate, bitrate, startTime, endTime, duration, needCompress, true); + resultWidth, resultHeight, framerate, bitrate, startTime, endTime, duration, needCompress, true, savedFilterState, paintPath, mediaEntities, isPhoto); } return error; diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/video/OutputSurface.java b/TMessagesProj/src/main/java/org/telegram/messenger/video/OutputSurface.java index 3a2fa7a8c..907617ad5 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/video/OutputSurface.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/video/OutputSurface.java @@ -20,8 +20,12 @@ import android.graphics.SurfaceTexture; import android.opengl.GLES20; import android.view.Surface; +import org.telegram.messenger.MediaController; +import org.telegram.messenger.VideoEditedInfo; + import java.nio.ByteBuffer; import java.nio.ByteOrder; +import java.util.ArrayList; import javax.microedition.khronos.egl.EGL10; import javax.microedition.khronos.egl.EGLConfig; @@ -58,15 +62,15 @@ public class OutputSurface implements SurfaceTexture.OnFrameAvailableListener { mPixelBuf.order(ByteOrder.LITTLE_ENDIAN); eglSetup(width, height); makeCurrent(); - setup(); + setup(null, null, null, null, 0, 0, 0, false); } - public OutputSurface() { - setup(); + public OutputSurface(MediaController.SavedFilterState savedFilterState, String imagePath, String paintPath, ArrayList mediaEntities, int w, int h, float fps, boolean photo) { + setup(savedFilterState, imagePath, paintPath, mediaEntities, w, h, fps, photo); } - private void setup() { - mTextureRender = new TextureRenderer(rotateRender); + private void setup(MediaController.SavedFilterState savedFilterState, String imagePath, String paintPath, ArrayList mediaEntities, int w, int h, float fps, boolean photo) { + mTextureRender = new TextureRenderer(rotateRender, savedFilterState, imagePath, paintPath, mediaEntities, w, h, fps, photo); mTextureRender.surfaceCreated(); mSurfaceTexture = new SurfaceTexture(mTextureRender.getTextureId()); mSurfaceTexture.setOnFrameAvailableListener(this); @@ -129,6 +133,9 @@ public class OutputSurface implements SurfaceTexture.OnFrameAvailableListener { mEGL.eglDestroySurface(mEGLDisplay, mEGLSurface); mEGL.eglDestroyContext(mEGLDisplay, mEGLContext); } + if (mTextureRender != null) { + mTextureRender.release(); + } mSurface.release(); mEGLDisplay = null; mEGLContext = null; diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/video/TextureRenderer.java b/TMessagesProj/src/main/java/org/telegram/messenger/video/TextureRenderer.java index 3f093d8c7..120585de0 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/video/TextureRenderer.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/video/TextureRenderer.java @@ -1,37 +1,75 @@ /* - * Copyright (C) 2013 The Android Open Source Project + * This is the source code of Telegram for Android v. 5.x.x. + * It is licensed under GNU GPL v. 2 or later. + * You should have received a copy of the license in this archive (see LICENSE). * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * Copyright Nikolai Kudashov, 2013-2020. */ package org.telegram.messenger.video; +import java.io.File; +import java.io.RandomAccessFile; import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.nio.FloatBuffer; +import java.nio.channels.FileChannel; +import java.util.ArrayList; +import android.annotation.SuppressLint; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.Paint; import android.graphics.SurfaceTexture; +import android.graphics.Typeface; import android.opengl.GLES11Ext; import android.opengl.GLES20; +import android.opengl.GLUtils; import android.opengl.Matrix; +import android.os.Build; +import android.text.Layout; +import android.util.TypedValue; +import android.view.Gravity; +import android.view.View; +import android.view.inputmethod.EditorInfo; + +import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.ApplicationLoader; +import org.telegram.messenger.Bitmaps; +import org.telegram.messenger.FileLog; +import org.telegram.messenger.MediaController; +import org.telegram.messenger.Utilities; +import org.telegram.messenger.VideoEditedInfo; +import org.telegram.ui.Components.FilterShaders; +import org.telegram.ui.Components.Paint.Views.EditTextOutline; +import org.telegram.ui.Components.RLottieDrawable; + +import javax.microedition.khronos.opengles.GL10; + +import androidx.annotation.RequiresApi; +import androidx.exifinterface.media.ExifInterface; public class TextureRenderer { - private static final int FLOAT_SIZE_BYTES = 4; - private static final int TRIANGLE_VERTICES_DATA_STRIDE_BYTES = 5 * FLOAT_SIZE_BYTES; - private static final int TRIANGLE_VERTICES_DATA_POS_OFFSET = 0; - private static final int TRIANGLE_VERTICES_DATA_UV_OFFSET = 3; - private FloatBuffer mTriangleVertices; + private FloatBuffer verticesBuffer; + private FloatBuffer textureBuffer; + private FloatBuffer bitmapVerticesBuffer; + + float[] bitmapData = { + -1.0f, 1.0f, + 1.0f, 1.0f, + -1.0f, -1.0f, + 1.0f, -1.0f, + }; + + private FilterShaders filterShaders; + private String paintPath; + private String imagePath; + private ArrayList mediaEntities; + private int videoWidth; + private int videoHeight; private static final String VERTEX_SHADER = "uniform mat4 uMVPMatrix;\n" + @@ -62,19 +100,64 @@ public class TextureRenderer { private int maPositionHandle; private int maTextureHandle; + private int simpleShaderProgram; + private int simplePositionHandle; + private int simpleInputTexCoordHandle; + private int simpleSourceImageHandle; + private int rotationAngle; - public TextureRenderer(int rotation) { + private int[] paintTexture; + private int[] stickerTexture; + private Bitmap stickerBitmap; + private float videoFps; + + private int imageOrientation; + + private boolean blendEnabled; + + private boolean isPhoto; + + public TextureRenderer(int rotation, MediaController.SavedFilterState savedFilterState, String image, String paint, ArrayList entities, int w, int h, float fps, boolean photo) { rotationAngle = rotation; - float[] mTriangleVerticesData = { - -1.0f, -1.0f, 0, 0.f, 0.f, - 1.0f, -1.0f, 0, 1.f, 0.f, - -1.0f, 1.0f, 0, 0.f, 1.f, - 1.0f, 1.0f, 0, 1.f, 1.f, + isPhoto = photo; + float[] verticesData = { + -1.0f, -1.0f, + 1.0f, -1.0f, + -1.0f, 1.0f, + 1.0f, 1.0f, }; - mTriangleVertices = ByteBuffer.allocateDirect(mTriangleVerticesData.length * FLOAT_SIZE_BYTES).order(ByteOrder.nativeOrder()).asFloatBuffer(); - mTriangleVertices.put(mTriangleVerticesData).position(0); + float[] texData = { + 0.f, 0.f, + 1.f, 0.f, + 0.f, 1.f, + 1.f, 1.f, + }; + + verticesBuffer = ByteBuffer.allocateDirect(verticesData.length * 4).order(ByteOrder.nativeOrder()).asFloatBuffer(); + verticesBuffer.put(verticesData).position(0); + + textureBuffer = ByteBuffer.allocateDirect(texData.length * 4).order(ByteOrder.nativeOrder()).asFloatBuffer(); + textureBuffer.put(texData).position(0); + + verticesBuffer = ByteBuffer.allocateDirect(verticesData.length * 4).order(ByteOrder.nativeOrder()).asFloatBuffer(); + verticesBuffer.put(verticesData).position(0); + + bitmapVerticesBuffer = ByteBuffer.allocateDirect(bitmapData.length * 4).order(ByteOrder.nativeOrder()).asFloatBuffer(); + bitmapVerticesBuffer.put(bitmapData).position(0); + Matrix.setIdentityM(mSTMatrix, 0); + + if (savedFilterState != null) { + filterShaders = new FilterShaders(true); + filterShaders.setDelegate(FilterShaders.getFilterShadersDelegate(savedFilterState)); + } + videoWidth = w; + videoHeight = h; + imagePath = image; + paintPath = paint; + mediaEntities = entities; + videoFps = fps == 0 ? 30 : fps; } public int getTextureId() { @@ -83,35 +166,173 @@ public class TextureRenderer { public void drawFrame(SurfaceTexture st, boolean invert) { checkGlError("onDrawFrame start"); - st.getTransformMatrix(mSTMatrix); + if (isPhoto) { + GLES20.glUseProgram(simpleShaderProgram); + GLES20.glActiveTexture(GLES20.GL_TEXTURE0); - if (invert) { - mSTMatrix[5] = -mSTMatrix[5]; - mSTMatrix[13] = 1.0f - mSTMatrix[13]; + GLES20.glUniform1i(simpleSourceImageHandle, 0); + GLES20.glEnableVertexAttribArray(simpleInputTexCoordHandle); + GLES20.glVertexAttribPointer(maTextureHandle, 2, GLES20.GL_FLOAT, false, 8, textureBuffer); + GLES20.glEnableVertexAttribArray(simplePositionHandle); + } else { + st.getTransformMatrix(mSTMatrix); + + if (blendEnabled) { + GLES20.glDisable(GLES20.GL_BLEND); + blendEnabled = false; + } + if (filterShaders != null) { + filterShaders.onVideoFrameUpdate(mSTMatrix); + + GLES20.glViewport(0, 0, videoWidth, videoHeight); + filterShaders.drawEnhancePass(); + filterShaders.drawSharpenPass(); + filterShaders.drawCustomParamsPass(); + boolean blurred = filterShaders.drawBlurPass(); + + GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, 0); + + GLES20.glUseProgram(simpleShaderProgram); + GLES20.glActiveTexture(GLES20.GL_TEXTURE0); + GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, filterShaders.getRenderTexture(blurred ? 0 : 1)); + + GLES20.glUniform1i(simpleSourceImageHandle, 0); + GLES20.glEnableVertexAttribArray(simpleInputTexCoordHandle); + GLES20.glVertexAttribPointer(simpleInputTexCoordHandle, 2, GLES20.GL_FLOAT, false, 8, filterShaders.getTextureBuffer()); + GLES20.glEnableVertexAttribArray(simplePositionHandle); + GLES20.glVertexAttribPointer(simplePositionHandle, 2, GLES20.GL_FLOAT, false, 8, filterShaders.getVertexBuffer()); + GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4); + } else { + if (invert) { + mSTMatrix[5] = -mSTMatrix[5]; + mSTMatrix[13] = 1.0f - mSTMatrix[13]; + } + GLES20.glUseProgram(mProgram); + GLES20.glActiveTexture(GLES20.GL_TEXTURE0); + GLES20.glBindTexture(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, mTextureID); + + GLES20.glVertexAttribPointer(maPositionHandle, 2, GLES20.GL_FLOAT, false, 8, verticesBuffer); + GLES20.glEnableVertexAttribArray(maPositionHandle); + GLES20.glVertexAttribPointer(maTextureHandle, 2, GLES20.GL_FLOAT, false, 8, textureBuffer); + GLES20.glEnableVertexAttribArray(maTextureHandle); + + GLES20.glUniformMatrix4fv(muSTMatrixHandle, 1, false, mSTMatrix, 0); + GLES20.glUniformMatrix4fv(muMVPMatrixHandle, 1, false, mMVPMatrix, 0); + GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4); + + if (paintTexture != null || stickerTexture != null) { + GLES20.glUseProgram(simpleShaderProgram); + GLES20.glActiveTexture(GLES20.GL_TEXTURE0); + + GLES20.glUniform1i(simpleSourceImageHandle, 0); + GLES20.glEnableVertexAttribArray(simpleInputTexCoordHandle); + GLES20.glVertexAttribPointer(maTextureHandle, 2, GLES20.GL_FLOAT, false, 8, textureBuffer); + GLES20.glEnableVertexAttribArray(simplePositionHandle); + } + } + } + if (paintTexture != null) { + for (int a = 0; a < paintTexture.length; a++) { + drawTexture(true, paintTexture[a]); + } + } + if (stickerTexture != null) { + for (int a = 0, N = mediaEntities.size(); a < N; a++) { + VideoEditedInfo.MediaEntity entity = mediaEntities.get(a); + if (entity.ptr != 0) { + RLottieDrawable.getFrame(entity.ptr, (int) entity.currentFrame, stickerBitmap, 512, 512, stickerBitmap.getRowBytes()); + GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, stickerTexture[0]); + GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, stickerBitmap, 0); + entity.currentFrame += entity.framesPerDraw; + if (entity.currentFrame >= entity.metadata[0]) { + entity.currentFrame = 0; + } + drawTexture(false, stickerTexture[0], entity.x, entity.y, entity.width, entity.height, entity.rotation, (entity.subType & 2) != 0); + } else if (entity.bitmap != null) { + GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, stickerTexture[0]); + GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, entity.bitmap, 0); + drawTexture(false, stickerTexture[0], entity.x, entity.y, entity.width, entity.height, entity.rotation, (entity.subType & 2) != 0); + } + } } - - GLES20.glUseProgram(mProgram); - checkGlError("glUseProgram"); - GLES20.glActiveTexture(GLES20.GL_TEXTURE0); - GLES20.glBindTexture(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, mTextureID); - mTriangleVertices.position(TRIANGLE_VERTICES_DATA_POS_OFFSET); - GLES20.glVertexAttribPointer(maPositionHandle, 3, GLES20.GL_FLOAT, false, TRIANGLE_VERTICES_DATA_STRIDE_BYTES, mTriangleVertices); - checkGlError("glVertexAttribPointer maPosition"); - GLES20.glEnableVertexAttribArray(maPositionHandle); - checkGlError("glEnableVertexAttribArray maPositionHandle"); - mTriangleVertices.position(TRIANGLE_VERTICES_DATA_UV_OFFSET); - GLES20.glVertexAttribPointer(maTextureHandle, 2, GLES20.GL_FLOAT, false, TRIANGLE_VERTICES_DATA_STRIDE_BYTES, mTriangleVertices); - checkGlError("glVertexAttribPointer maTextureHandle"); - GLES20.glEnableVertexAttribArray(maTextureHandle); - checkGlError("glEnableVertexAttribArray maTextureHandle"); - - GLES20.glUniformMatrix4fv(muSTMatrixHandle, 1, false, mSTMatrix, 0); - GLES20.glUniformMatrix4fv(muMVPMatrixHandle, 1, false, mMVPMatrix, 0); - GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4); - checkGlError("glDrawArrays"); GLES20.glFinish(); } + private void drawTexture(boolean bind, int texture) { + drawTexture(bind, texture, -10000, -10000, -10000, -10000, 0, false); + } + + private void drawTexture(boolean bind, int texture, float x, float y, float w, float h, float rotation, boolean mirror) { + if (!blendEnabled) { + GLES20.glEnable(GLES20.GL_BLEND); + GLES20.glBlendFunc(GLES20.GL_ONE, GLES20.GL_ONE_MINUS_SRC_ALPHA); + blendEnabled = true; + } + if (x <= -10000) { + bitmapData[0] = -1.0f; + bitmapData[1] = 1.0f; + + bitmapData[2] = 1.0f; + bitmapData[3] = 1.0f; + + bitmapData[4] = -1.0f; + bitmapData[5] = -1.0f; + + bitmapData[6] = 1.0f; + bitmapData[7] = -1.0f; + } else { + x = x * 2 - 1.0f; + y = (1.0f - y) * 2 - 1.0f; + w = w * 2; + h = h * 2; + + bitmapData[0] = x; + bitmapData[1] = y; + + bitmapData[2] = x + w; + bitmapData[3] = y; + + bitmapData[4] = x; + bitmapData[5] = y - h; + + bitmapData[6] = x + w; + bitmapData[7] = y - h; + } + float mx = (bitmapData[0] + bitmapData[2]) / 2; + if (mirror) { + float temp = bitmapData[2]; + bitmapData[2] = bitmapData[0]; + bitmapData[0] = temp; + + temp = bitmapData[6]; + bitmapData[6] = bitmapData[4]; + bitmapData[4] = temp; + } + if (rotation != 0) { + float ratio = videoWidth / (float) videoHeight; + float my = (bitmapData[5] + bitmapData[1]) / 2; + for (int a = 0; a < 4; a++) { + float x1 = bitmapData[a * 2 ] - mx; + float y1 = (bitmapData[a * 2 + 1] - my) / ratio; + bitmapData[a * 2 ] = (float) (x1 * Math.cos(rotation) - y1 * Math.sin(rotation)) + mx; + bitmapData[a * 2 + 1] = (float) (x1 * Math.sin(rotation) + y1 * Math.cos(rotation)) * ratio + my; + } + } + bitmapVerticesBuffer.put(bitmapData).position(0); + GLES20.glVertexAttribPointer(maPositionHandle, 2, GLES20.GL_FLOAT, false, 8, bitmapVerticesBuffer); + + if (bind) { + GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, texture); + } + GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4); + } + + @RequiresApi(api = Build.VERSION_CODES.M) + public void setBreakStrategy(EditTextOutline editText) { + editText.setBreakStrategy(Layout.BREAK_STRATEGY_SIMPLE); + } + + @SuppressLint("WrongConstant") public void surfaceCreated() { mProgram = createProgram(VERTEX_SHADER, FRAGMENT_SHADER); if (mProgram == 0) { @@ -152,28 +373,194 @@ public class TextureRenderer { if (rotationAngle != 0) { Matrix.rotateM(mMVPMatrix, 0, rotationAngle, 0, 0, 1); } - } - private int loadShader(int shaderType, String source) { - int shader = GLES20.glCreateShader(shaderType); - checkGlError("glCreateShader type=" + shaderType); - GLES20.glShaderSource(shader, source); - GLES20.glCompileShader(shader); - int[] compiled = new int[1]; - GLES20.glGetShaderiv(shader, GLES20.GL_COMPILE_STATUS, compiled, 0); - if (compiled[0] == 0) { - GLES20.glDeleteShader(shader); - shader = 0; + if (filterShaders != null || imagePath != null || paintPath != null || mediaEntities != null) { + int vertexShader = FilterShaders.loadShader(GLES20.GL_VERTEX_SHADER, FilterShaders.simpleVertexShaderCode); + int fragmentShader = FilterShaders.loadShader(GLES20.GL_FRAGMENT_SHADER, FilterShaders.simpleFragmentShaderCode); + if (vertexShader != 0 && fragmentShader != 0) { + simpleShaderProgram = GLES20.glCreateProgram(); + GLES20.glAttachShader(simpleShaderProgram, vertexShader); + GLES20.glAttachShader(simpleShaderProgram, fragmentShader); + GLES20.glBindAttribLocation(simpleShaderProgram, 0, "position"); + GLES20.glBindAttribLocation(simpleShaderProgram, 1, "inputTexCoord"); + + GLES20.glLinkProgram(simpleShaderProgram); + int[] linkStatus = new int[1]; + GLES20.glGetProgramiv(simpleShaderProgram, GLES20.GL_LINK_STATUS, linkStatus, 0); + if (linkStatus[0] == 0) { + GLES20.glDeleteProgram(simpleShaderProgram); + simpleShaderProgram = 0; + } else { + simplePositionHandle = GLES20.glGetAttribLocation(simpleShaderProgram, "position"); + simpleInputTexCoordHandle = GLES20.glGetAttribLocation(simpleShaderProgram, "inputTexCoord"); + simpleSourceImageHandle = GLES20.glGetUniformLocation(simpleShaderProgram, "sourceImage"); + } + } + } + + if (filterShaders != null) { + filterShaders.create(); + filterShaders.setRenderData(null, 0, mTextureID, videoWidth, videoHeight); + } + if (imagePath != null || paintPath != null) { + paintTexture = new int[(imagePath != null ? 1 : 0) + (paintPath != null ? 1 : 0)]; + GLES20.glGenTextures(paintTexture.length, paintTexture, 0); + try { + for (int a = 0; a < paintTexture.length; a++) { + String path; + int angle = 0; + if (a == 0 && imagePath != null) { + path = imagePath; + try { + ExifInterface exif = new ExifInterface(path); + int orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, 1); + switch (orientation) { + case ExifInterface.ORIENTATION_ROTATE_90: + angle = 90; + break; + case ExifInterface.ORIENTATION_ROTATE_180: + angle = 180; + break; + case ExifInterface.ORIENTATION_ROTATE_270: + angle = 270; + break; + } + } catch (Throwable ignore) { + + } + } else { + path = paintPath; + } + Bitmap bitmap = BitmapFactory.decodeFile(path); + if (bitmap != null) { + if (a == 0 && imagePath != null) { + Bitmap newBitmap = Bitmap.createBitmap(videoWidth, videoHeight, Bitmap.Config.ARGB_8888); + newBitmap.eraseColor(0xff000000); + Canvas canvas = new Canvas(newBitmap); + float scale; + if (angle == 90 || angle == 270) { + scale = Math.max(bitmap.getHeight() / (float) videoWidth, bitmap.getWidth() / (float) videoHeight); + } else { + scale = Math.max(bitmap.getWidth() / (float) videoWidth, bitmap.getHeight() / (float) videoHeight); + } + + android.graphics.Matrix matrix = new android.graphics.Matrix(); + matrix.postTranslate(-bitmap.getWidth() / 2, -bitmap.getHeight() / 2); + matrix.postScale(1.0f / scale, 1.0f / scale); + matrix.postRotate(angle); + matrix.postTranslate(newBitmap.getWidth() / 2, newBitmap.getHeight() / 2); + canvas.drawBitmap(bitmap, matrix, new Paint(Paint.FILTER_BITMAP_FLAG)); + bitmap = newBitmap; + } + + GLES20.glBindTexture(GL10.GL_TEXTURE_2D, paintTexture[a]); + GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR); + GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR); + GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE); + GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE); + GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0); + } + } + } catch (Throwable e) { + FileLog.e(e); + } + } + if (mediaEntities != null) { + try { + stickerBitmap = Bitmap.createBitmap(512, 512, Bitmap.Config.ARGB_8888); + stickerTexture = new int[1]; + GLES20.glGenTextures(1, stickerTexture, 0); + GLES20.glBindTexture(GL10.GL_TEXTURE_2D, stickerTexture[0]); + GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR); + GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR); + GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE); + GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE); + for (int a = 0, N = mediaEntities.size(); a < N; a++) { + VideoEditedInfo.MediaEntity entity = mediaEntities.get(a); + if (entity.type == 0) { + if ((entity.subType & 1) != 0) { + entity.metadata = new int[3]; + entity.ptr = RLottieDrawable.create(entity.text, 512, 512, entity.metadata, false, null, false); + entity.framesPerDraw = entity.metadata[1] / videoFps; + } else { + if (Build.VERSION.SDK_INT >= 19) { + entity.bitmap = BitmapFactory.decodeFile(entity.text); + } else { + File path = new File(entity.text); + RandomAccessFile file = new RandomAccessFile(path, "r"); + ByteBuffer buffer = file.getChannel().map(FileChannel.MapMode.READ_ONLY, 0, path.length()); + BitmapFactory.Options bmOptions = new BitmapFactory.Options(); + bmOptions.inJustDecodeBounds = true; + Utilities.loadWebpImage(null, buffer, buffer.limit(), bmOptions, true); + entity.bitmap = Bitmaps.createBitmap(bmOptions.outWidth, bmOptions.outHeight, Bitmap.Config.ARGB_8888); + Utilities.loadWebpImage(entity.bitmap, buffer, buffer.limit(), null, true); + file.close(); + } + if (entity.bitmap != null) { + float aspect = entity.bitmap.getWidth() / (float) entity.bitmap.getHeight(); + if (aspect > 1) { + float h = entity.height / aspect; + entity.y += (entity.height - h) / 2; + entity.height = h; + } else if (aspect < 1) { + float w = entity.width * aspect; + entity.x += (entity.width - w) / 2; + entity.width = w; + } + } + } + } else if (entity.type == 1) { + EditTextOutline editText = new EditTextOutline(ApplicationLoader.applicationContext); + editText.setBackgroundColor(Color.TRANSPARENT); + editText.setPadding(AndroidUtilities.dp(7), AndroidUtilities.dp(7), AndroidUtilities.dp(7), AndroidUtilities.dp(7)); + editText.setTextSize(TypedValue.COMPLEX_UNIT_PX, entity.fontSize); + editText.setText(entity.text); + editText.setTextColor(entity.color); + editText.setTypeface(null, Typeface.BOLD); + editText.setGravity(Gravity.CENTER); + editText.setHorizontallyScrolling(false); + editText.setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI); + editText.setFocusableInTouchMode(true); + editText.setInputType(editText.getInputType() | EditorInfo.TYPE_TEXT_FLAG_CAP_SENTENCES); + if (Build.VERSION.SDK_INT >= 23) { + setBreakStrategy(editText); + } + if ((entity.subType & 1) != 0) { + editText.setTextColor(0xffffffff); + editText.setStrokeColor(entity.color); + editText.setFrameColor(0); + editText.setShadowLayer(0, 0, 0, 0); + } else if ((entity.subType & 4) != 0) { + editText.setTextColor(0xff000000); + editText.setStrokeColor(0); + editText.setFrameColor(entity.color); + editText.setShadowLayer(0, 0, 0, 0); + } else { + editText.setTextColor(entity.color); + editText.setStrokeColor(0); + editText.setFrameColor(0); + editText.setShadowLayer(5, 0, 1, 0x66000000); + } + + editText.measure(View.MeasureSpec.makeMeasureSpec(entity.viewWidth, View.MeasureSpec.EXACTLY), View.MeasureSpec.makeMeasureSpec(entity.viewHeight, View.MeasureSpec.EXACTLY)); + editText.layout(0, 0, entity.viewWidth, entity.viewHeight); + entity.bitmap = Bitmap.createBitmap(entity.viewWidth, entity.viewHeight, Bitmap.Config.ARGB_8888); + Canvas canvas = new Canvas(entity.bitmap); + editText.draw(canvas); + } + } + } catch (Throwable e) { + FileLog.e(e); + } } - return shader; } private int createProgram(String vertexSource, String fragmentSource) { - int vertexShader = loadShader(GLES20.GL_VERTEX_SHADER, vertexSource); + int vertexShader = FilterShaders.loadShader(GLES20.GL_VERTEX_SHADER, vertexSource); if (vertexShader == 0) { return 0; } - int pixelShader = loadShader(GLES20.GL_FRAGMENT_SHADER, fragmentSource); + int pixelShader = FilterShaders.loadShader(GLES20.GL_FRAGMENT_SHADER, fragmentSource); if (pixelShader == 0) { return 0; } @@ -202,4 +589,15 @@ public class TextureRenderer { throw new RuntimeException(op + ": glError " + error); } } + + public void release() { + if (mediaEntities != null) { + for (int a = 0, N = mediaEntities.size(); a < N; a++) { + VideoEditedInfo.MediaEntity entity = mediaEntities.get(a); + if (entity.ptr != 0) { + RLottieDrawable.destroy(entity.ptr); + } + } + } + } } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/voip/VoIPBaseService.java b/TMessagesProj/src/main/java/org/telegram/messenger/voip/VoIPBaseService.java index b8602eda6..f1b71b07a 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/voip/VoIPBaseService.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/voip/VoIPBaseService.java @@ -612,6 +612,7 @@ public abstract class VoIPBaseService extends Service implements SensorEventList if(!USE_CONNECTION_SERVICE){ if(isBtHeadsetConnected && !playingSound){ am.stopBluetoothSco(); + am.setBluetoothScoOn(false); am.setSpeakerphoneOn(false); } try{ diff --git a/TMessagesProj/src/main/java/org/telegram/tgnet/SerializedData.java b/TMessagesProj/src/main/java/org/telegram/tgnet/SerializedData.java index a98e0a75f..9ad3b41d6 100644 --- a/TMessagesProj/src/main/java/org/telegram/tgnet/SerializedData.java +++ b/TMessagesProj/src/main/java/org/telegram/tgnet/SerializedData.java @@ -315,6 +315,17 @@ public class SerializedData extends AbstractSerializedData { } } + public void writeFloat(float d) { + try { + writeInt32(Float.floatToIntBits(d)); + } catch (Exception e) { + if (BuildVars.LOGS_ENABLED) { + FileLog.e("write float error"); + FileLog.e(e); + } + } + } + public int length() { if (!justCalc) { return isOut ? outbuf.size() : inbuf.available(); @@ -370,6 +381,24 @@ public class SerializedData extends AbstractSerializedData { return false; } + public byte readByte(boolean exception) { + try { + byte result = in.readByte(); + len += 1; + return result; + } catch (Exception e) { + if (exception) { + throw new RuntimeException("read byte error", e); + } else { + if (BuildVars.LOGS_ENABLED) { + FileLog.e("read byte error"); + FileLog.e(e); + } + } + } + return 0; + } + public void readBytes(byte[] b, boolean exception) { try { in.read(b); @@ -474,6 +503,22 @@ public class SerializedData extends AbstractSerializedData { return 0; } + public float readFloat(boolean exception) { + try { + return Float.intBitsToFloat(readInt32(exception)); + } catch (Exception e) { + if (exception) { + throw new RuntimeException("read float error", e); + } else { + if (BuildVars.LOGS_ENABLED) { + FileLog.e("read float error"); + FileLog.e(e); + } + } + } + return 0; + } + public int readInt32(boolean exception) { try { int i = 0; diff --git a/TMessagesProj/src/main/java/org/telegram/tgnet/TLRPC.java b/TMessagesProj/src/main/java/org/telegram/tgnet/TLRPC.java index 59c782b76..9eb478436 100644 --- a/TMessagesProj/src/main/java/org/telegram/tgnet/TLRPC.java +++ b/TMessagesProj/src/main/java/org/telegram/tgnet/TLRPC.java @@ -61,7 +61,7 @@ public class TLRPC { public static final int MESSAGE_FLAG_EDITED = 0x00008000; public static final int MESSAGE_FLAG_MEGAGROUP = 0x80000000; - public static final int LAYER = 113; + public static final int LAYER = 114; public static class TL_chatBannedRights extends TLObject { public static int constructor = 0x9f120418; @@ -5213,78 +5213,6 @@ public class TLRPC { } } - public static abstract class FoundGif extends TLObject { - public String url; - public Photo photo; - public Document document; - public String thumb_url; - public String content_url; - public String content_type; - public int w; - public int h; - - public static FoundGif TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { - FoundGif result = null; - switch (constructor) { - case 0x9c750409: - result = new TL_foundGifCached(); - break; - case 0x162ecc1f: - result = new TL_foundGif(); - break; - } - if (result == null && exception) { - throw new RuntimeException(String.format("can't parse magic %x in FoundGif", constructor)); - } - if (result != null) { - result.readParams(stream, exception); - } - return result; - } - } - - public static class TL_foundGifCached extends FoundGif { - public static int constructor = 0x9c750409; - - - public void readParams(AbstractSerializedData stream, boolean exception) { - url = stream.readString(exception); - photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); - document = Document.TLdeserialize(stream, stream.readInt32(exception), exception); - } - - public void serializeToStream(AbstractSerializedData stream) { - stream.writeInt32(constructor); - stream.writeString(url); - photo.serializeToStream(stream); - document.serializeToStream(stream); - } - } - - public static class TL_foundGif extends FoundGif { - public static int constructor = 0x162ecc1f; - - - public void readParams(AbstractSerializedData stream, boolean exception) { - url = stream.readString(exception); - thumb_url = stream.readString(exception); - content_url = stream.readString(exception); - content_type = stream.readString(exception); - w = stream.readInt32(exception); - h = stream.readInt32(exception); - } - - public void serializeToStream(AbstractSerializedData stream) { - stream.writeInt32(constructor); - stream.writeString(url); - stream.writeString(thumb_url); - stream.writeString(content_url); - stream.writeString(content_type); - stream.writeInt32(w); - stream.writeInt32(h); - } - } - public static abstract class payments_PaymentResult extends TLObject { public static payments_PaymentResult TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { @@ -5981,7 +5909,7 @@ public class TLRPC { if ((flags & 1) != 0) { document = Document.TLdeserialize(stream, stream.readInt32(exception), exception); } else { - document = new TLRPC.TL_documentEmpty(); + document = new TL_documentEmpty(); } if ((flags & 4) != 0) { ttl_seconds = stream.readInt32(exception); @@ -6009,7 +5937,7 @@ public class TLRPC { if ((flags & 1) != 0) { document = Document.TLdeserialize(stream, stream.readInt32(exception), exception); } else { - document = new TLRPC.TL_documentEmpty(); + document = new TL_documentEmpty(); } if ((flags & 2) != 0) { captionLegacy = stream.readString(exception); @@ -6072,7 +6000,7 @@ public class TLRPC { if ((flags & 1) != 0) { photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); } else { - photo = new TLRPC.TL_photoEmpty(); + photo = new TL_photoEmpty(); } if ((flags & 4) != 0) { ttl_seconds = stream.readInt32(exception); @@ -6117,7 +6045,7 @@ public class TLRPC { if ((flags & 1) != 0) { photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); } else { - photo = new TLRPC.TL_photoEmpty(); + photo = new TL_photoEmpty(); } if ((flags & 2) != 0) { captionLegacy = stream.readString(exception); @@ -11561,6 +11489,46 @@ public class TLRPC { } } + public static class TL_videoSize extends TLObject { + public static int constructor = 0x435bb987; + + public String type; + public FileLocation location; + public int w; + public int h; + public int size; + + public static TL_videoSize TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + if (TL_videoSize.constructor != constructor) { + if (exception) { + throw new RuntimeException(String.format("can't parse magic %x in TL_videoSize", constructor)); + } else { + return null; + } + } + TL_videoSize result = new TL_videoSize(); + result.readParams(stream, exception); + return result; + } + + public void readParams(AbstractSerializedData stream, boolean exception) { + type = stream.readString(exception); + location = FileLocation.TLdeserialize(stream, stream.readInt32(exception), exception); + w = stream.readInt32(exception); + h = stream.readInt32(exception); + size = stream.readInt32(exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeString(type); + location.serializeToStream(stream); + stream.writeInt32(w); + stream.writeInt32(h); + stream.writeInt32(size); + } + } + public static abstract class BotInlineMessage extends TLObject { public int flags; public GeoPoint geo; @@ -17805,6 +17773,7 @@ public class TLRPC { public String mime_type; public int size; public ArrayList thumbs = new ArrayList<>(); + public ArrayList video_thumbs = new ArrayList<>(); public int version; public int dc_id; public byte[] key; @@ -17815,7 +17784,7 @@ public class TLRPC { Document result = null; switch (constructor) { case 0x9ba29cc1: - result = new TL_document(); + result = new TL_document_layer113(); break; case 0x59534e4c: result = new TL_document_layer92(); @@ -17826,6 +17795,9 @@ public class TLRPC { case 0x55555556: result = new TL_documentEncrypted_old(); break; + case 0x1e87342b: + result = new TL_document(); + break; case 0x9efc6326: result = new TL_document_old(); break; @@ -17849,7 +17821,7 @@ public class TLRPC { } } - public static class TL_document_layer92 extends TLRPC.TL_document { + public static class TL_document_layer92 extends TL_document { public static int constructor = 0x59534e4c; @@ -17982,6 +17954,105 @@ public class TLRPC { } public static class TL_document extends Document { + public static int constructor = 0x1e87342b; + + + public void readParams(AbstractSerializedData stream, boolean exception) { + flags = stream.readInt32(exception); + id = stream.readInt64(exception); + access_hash = stream.readInt64(exception); + file_reference = stream.readByteArray(exception); + date = stream.readInt32(exception); + mime_type = stream.readString(exception); + size = stream.readInt32(exception); + if ((flags & 1) != 0) { + int magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + int count = stream.readInt32(exception); + for (int a = 0; a < count; a++) { + PhotoSize object = PhotoSize.TLdeserialize(stream, stream.readInt32(exception), exception); + if (object == null) { + return; + } + thumbs.add(object); + } + } + if ((flags & 2) != 0) { + int magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + int count = stream.readInt32(exception); + for (int a = 0; a < count; a++) { + TL_videoSize object = TL_videoSize.TLdeserialize(stream, stream.readInt32(exception), exception); + if (object == null) { + return; + } + video_thumbs.add(object); + } + } + dc_id = stream.readInt32(exception); + int magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + int count = stream.readInt32(exception); + for (int a = 0; a < count; a++) { + DocumentAttribute object = DocumentAttribute.TLdeserialize(stream, stream.readInt32(exception), exception); + if (object == null) { + return; + } + attributes.add(object); + } + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeInt32(flags); + stream.writeInt64(id); + stream.writeInt64(access_hash); + stream.writeByteArray(file_reference); + stream.writeInt32(date); + stream.writeString(mime_type); + stream.writeInt32(size); + if ((flags & 1) != 0) { + stream.writeInt32(0x1cb5c415); + int count = thumbs.size(); + stream.writeInt32(count); + for (int a = 0; a < count; a++) { + thumbs.get(a).serializeToStream(stream); + } + } + if ((flags & 2) != 0) { + stream.writeInt32(0x1cb5c415); + int count = video_thumbs.size(); + stream.writeInt32(count); + for (int a = 0; a < count; a++) { + video_thumbs.get(a).serializeToStream(stream); + } + } + stream.writeInt32(dc_id); + stream.writeInt32(0x1cb5c415); + int count = attributes.size(); + stream.writeInt32(count); + for (int a = 0; a < count; a++) { + attributes.get(a).serializeToStream(stream); + } + } + } + + public static class TL_document_layer113 extends TL_document { public static int constructor = 0x9ba29cc1; @@ -19527,8 +19598,6 @@ public class TLRPC { public String vcard; public int flags; public int ttl_seconds; - public String url; - public String q; public InputGeoPoint geo_point; public InputFile file; public ArrayList stickers = new ArrayList<>(); @@ -19559,9 +19628,6 @@ public class TLRPC { case 0xe66fbf7b: result = new TL_inputMediaDice(); break; - case 0x4843b0fd: - result = new TL_inputMediaGifExternal(); - break; case 0xf9c44144: result = new TL_inputMediaGeoPoint(); break; @@ -19675,22 +19741,6 @@ public class TLRPC { } } - public static class TL_inputMediaGifExternal extends InputMedia { - public static int constructor = 0x4843b0fd; - - - public void readParams(AbstractSerializedData stream, boolean exception) { - url = stream.readString(exception); - q = stream.readString(exception); - } - - public void serializeToStream(AbstractSerializedData stream) { - stream.writeInt32(constructor); - stream.writeString(url); - stream.writeString(q); - } - } - public static class TL_inputMediaGeoPoint extends InputMedia { public static int constructor = 0xf9c44144; @@ -19708,6 +19758,7 @@ public class TLRPC { public static class TL_inputMediaDocumentExternal extends InputMedia { public static int constructor = 0xfb52dc99; + public String url; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); @@ -19984,6 +20035,7 @@ public class TLRPC { public static class TL_inputMediaPhotoExternal extends InputMedia { public static int constructor = 0xe5bbfe1a; + public String url; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); @@ -25572,56 +25624,6 @@ public class TLRPC { } } - public static class TL_messages_foundGifs extends TLObject { - public static int constructor = 0x450a1c0a; - - public int next_offset; - public ArrayList results = new ArrayList<>(); - - public static TL_messages_foundGifs TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { - if (TL_messages_foundGifs.constructor != constructor) { - if (exception) { - throw new RuntimeException(String.format("can't parse magic %x in TL_messages_foundGifs", constructor)); - } else { - return null; - } - } - TL_messages_foundGifs result = new TL_messages_foundGifs(); - result.readParams(stream, exception); - return result; - } - - public void readParams(AbstractSerializedData stream, boolean exception) { - next_offset = stream.readInt32(exception); - int magic = stream.readInt32(exception); - if (magic != 0x1cb5c415) { - if (exception) { - throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); - } - return; - } - int count = stream.readInt32(exception); - for (int a = 0; a < count; a++) { - FoundGif object = FoundGif.TLdeserialize(stream, stream.readInt32(exception), exception); - if (object == null) { - return; - } - results.add(object); - } - } - - public void serializeToStream(AbstractSerializedData stream) { - stream.writeInt32(constructor); - stream.writeInt32(next_offset); - stream.writeInt32(0x1cb5c415); - int count = results.size(); - stream.writeInt32(count); - for (int a = 0; a < count; a++) { - results.get(a).serializeToStream(stream); - } - } - } - public static abstract class Theme extends TLObject { public static Theme TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { @@ -37700,23 +37702,6 @@ public class TLRPC { } } - public static class TL_messages_searchGifs extends TLObject { - public static int constructor = 0xbf9a776b; - - public String q; - public int offset; - - public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { - return TL_messages_foundGifs.TLdeserialize(stream, constructor, exception); - } - - public void serializeToStream(AbstractSerializedData stream) { - stream.writeInt32(constructor); - stream.writeString(q); - stream.writeInt32(offset); - } - } - public static class TL_messages_getSavedGifs extends TLObject { public static int constructor = 0x83bf3d52; @@ -40829,7 +40814,7 @@ public class TLRPC { if (object == null) { return; } - TLRPC.TL_pageListItemText item = new TL_pageListItemText(); + TL_pageListItemText item = new TL_pageListItemText(); item.text = object; items.add(item); } @@ -40842,7 +40827,7 @@ public class TLRPC { int count = items.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { - TLRPC.TL_pageListItemText item = (TLRPC.TL_pageListItemText) items.get(a); + TL_pageListItemText item = (TL_pageListItemText) items.get(a); item.text.serializeToStream(stream); } } @@ -40970,12 +40955,12 @@ public class TLRPC { result.readParams(stream, exception); if (result.video_unused != null) { TL_messageMediaDocument mediaDocument = new TL_messageMediaDocument(); - if (result.video_unused instanceof TLRPC.TL_videoEncrypted) { - mediaDocument.document = new TLRPC.TL_documentEncrypted(); + if (result.video_unused instanceof TL_videoEncrypted) { + mediaDocument.document = new TL_documentEncrypted(); mediaDocument.document.key = result.video_unused.key; mediaDocument.document.iv = result.video_unused.iv; } else { - mediaDocument.document = new TLRPC.TL_document(); + mediaDocument.document = new TL_document(); } mediaDocument.flags = 3; mediaDocument.document.file_reference = new byte[0]; @@ -40991,7 +40976,7 @@ public class TLRPC { mediaDocument.document.thumbs.add(result.video_unused.thumb); mediaDocument.document.dc_id = result.video_unused.dc_id; mediaDocument.captionLegacy = result.captionLegacy; - TLRPC.TL_documentAttributeVideo attributeVideo = new TLRPC.TL_documentAttributeVideo(); + TL_documentAttributeVideo attributeVideo = new TL_documentAttributeVideo(); attributeVideo.w = result.video_unused.w; attributeVideo.h = result.video_unused.h; attributeVideo.duration = result.video_unused.duration; @@ -41002,12 +40987,12 @@ public class TLRPC { } } else if (result.audio_unused != null) { TL_messageMediaDocument mediaDocument = new TL_messageMediaDocument(); - if (result.audio_unused instanceof TLRPC.TL_audioEncrypted) { - mediaDocument.document = new TLRPC.TL_documentEncrypted(); + if (result.audio_unused instanceof TL_audioEncrypted) { + mediaDocument.document = new TL_documentEncrypted(); mediaDocument.document.key = result.audio_unused.key; mediaDocument.document.iv = result.audio_unused.iv; } else { - mediaDocument.document = new TLRPC.TL_document(); + mediaDocument.document = new TL_document(); } mediaDocument.flags = 3; mediaDocument.document.file_reference = new byte[0]; @@ -41020,12 +41005,12 @@ public class TLRPC { mediaDocument.document.mime_type = "audio/ogg"; } mediaDocument.document.size = result.audio_unused.size; - TLRPC.TL_photoSizeEmpty thumb = new TL_photoSizeEmpty(); + TL_photoSizeEmpty thumb = new TL_photoSizeEmpty(); thumb.type = "s"; mediaDocument.document.thumbs.add(thumb); mediaDocument.document.dc_id = result.audio_unused.dc_id; mediaDocument.captionLegacy = result.captionLegacy; - TLRPC.TL_documentAttributeAudio attributeAudio = new TLRPC.TL_documentAttributeAudio(); + TL_documentAttributeAudio attributeAudio = new TL_documentAttributeAudio(); attributeAudio.duration = result.audio_unused.duration; attributeAudio.voice = true; mediaDocument.document.attributes.add(attributeAudio); @@ -41086,7 +41071,7 @@ public class TLRPC { } caption = new TL_pageCaption(); caption.text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); - caption.credit = new TLRPC.TL_textEmpty(); + caption.credit = new TL_textEmpty(); } public void serializeToStream(AbstractSerializedData stream) { @@ -41127,7 +41112,7 @@ public class TLRPC { h = stream.readInt32(exception); caption = new TL_pageCaption(); caption.text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); - caption.credit = new TLRPC.TL_textEmpty(); + caption.credit = new TL_textEmpty(); } public void serializeToStream(AbstractSerializedData stream) { @@ -41161,7 +41146,7 @@ public class TLRPC { video_id = stream.readInt64(exception); caption = new TL_pageCaption(); caption.text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); - caption.credit = new TLRPC.TL_textEmpty(); + caption.credit = new TL_textEmpty(); } public void serializeToStream(AbstractSerializedData stream) { @@ -41196,7 +41181,7 @@ public class TLRPC { } caption = new TL_pageCaption(); caption.text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); - caption.credit = new TLRPC.TL_textEmpty(); + caption.credit = new TL_textEmpty(); } public void serializeToStream(AbstractSerializedData stream) { @@ -41219,7 +41204,7 @@ public class TLRPC { photo_id = stream.readInt64(exception); caption = new TL_pageCaption(); caption.text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); - caption.credit = new TLRPC.TL_textEmpty(); + caption.credit = new TL_textEmpty(); } public void serializeToStream(AbstractSerializedData stream) { @@ -41251,7 +41236,7 @@ public class TLRPC { } caption = new TL_pageCaption(); caption.text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); - caption.credit = new TLRPC.TL_textEmpty(); + caption.credit = new TL_textEmpty(); } public void serializeToStream(AbstractSerializedData stream) { @@ -41274,7 +41259,7 @@ public class TLRPC { audio_id = stream.readInt64(exception); caption = new TL_pageCaption(); caption.text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); - caption.credit = new TLRPC.TL_textEmpty(); + caption.credit = new TL_textEmpty(); } public void serializeToStream(AbstractSerializedData stream) { @@ -41394,9 +41379,10 @@ public class TLRPC { public int seq_in; //custom public int seq_out; //custom public boolean with_my_score; - public TLRPC.Message replyMessage; //custom + public Message replyMessage; //custom public int reqId; //custom public int realId; //custom + public int stickerVerified = 1; //custom public static Message TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { @@ -41487,12 +41473,12 @@ public class TLRPC { public void readAttachPath(AbstractSerializedData stream, int currentUserId) { boolean hasMedia = media != null && !(media instanceof TL_messageMediaEmpty) && !(media instanceof TL_messageMediaWebPage); boolean fixCaption = !TextUtils.isEmpty(message) && - (media instanceof TLRPC.TL_messageMediaPhoto_old || - media instanceof TLRPC.TL_messageMediaPhoto_layer68 || - media instanceof TLRPC.TL_messageMediaPhoto_layer74 || - media instanceof TLRPC.TL_messageMediaDocument_old || - media instanceof TLRPC.TL_messageMediaDocument_layer68 || - media instanceof TLRPC.TL_messageMediaDocument_layer74) + (media instanceof TL_messageMediaPhoto_old || + media instanceof TL_messageMediaPhoto_layer68 || + media instanceof TL_messageMediaPhoto_layer74 || + media instanceof TL_messageMediaDocument_old || + media instanceof TL_messageMediaDocument_layer68 || + media instanceof TL_messageMediaDocument_layer74) && message.startsWith("-1"); if ((out || to_id != null && to_id.user_id != 0 && to_id.user_id == from_id && from_id == currentUserId) && (id < 0 || hasMedia || send_state == 3) || legacy) { if (hasMedia && fixCaption) { @@ -41878,10 +41864,10 @@ public class TLRPC { if ((flags & 4) != 0) { fwd_from = new TL_messageFwdHeader(); Peer peer = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); - if (peer instanceof TLRPC.TL_peerChannel) { + if (peer instanceof TL_peerChannel) { fwd_from.channel_id = peer.channel_id; fwd_from.flags |= 2; - } else if (peer instanceof TLRPC.TL_peerUser) { + } else if (peer instanceof TL_peerUser) { fwd_from.from_id = peer.user_id; fwd_from.flags |= 1; } @@ -41942,11 +41928,11 @@ public class TLRPC { to_id.serializeToStream(stream); if ((flags & 4) != 0) { if (fwd_from.from_id != 0) { - TLRPC.TL_peerUser peer = new TL_peerUser(); + TL_peerUser peer = new TL_peerUser(); peer.user_id = fwd_from.from_id; peer.serializeToStream(stream); } else { - TLRPC.TL_peerChannel peer = new TL_peerChannel(); + TL_peerChannel peer = new TL_peerChannel(); peer.channel_id = fwd_from.channel_id; peer.serializeToStream(stream); } @@ -42005,10 +41991,10 @@ public class TLRPC { if ((flags & 4) != 0) { fwd_from = new TL_messageFwdHeader(); Peer peer = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); - if (peer instanceof TLRPC.TL_peerChannel) { + if (peer instanceof TL_peerChannel) { fwd_from.channel_id = peer.channel_id; fwd_from.flags |= 2; - } else if (peer instanceof TLRPC.TL_peerUser) { + } else if (peer instanceof TL_peerUser) { fwd_from.from_id = peer.user_id; fwd_from.flags |= 1; } @@ -42066,11 +42052,11 @@ public class TLRPC { to_id.serializeToStream(stream); if ((flags & 4) != 0) { if (fwd_from.from_id != 0) { - TLRPC.TL_peerUser peer = new TL_peerUser(); + TL_peerUser peer = new TL_peerUser(); peer.user_id = fwd_from.from_id; peer.serializeToStream(stream); } else { - TLRPC.TL_peerChannel peer = new TL_peerChannel(); + TL_peerChannel peer = new TL_peerChannel(); peer.channel_id = fwd_from.channel_id; peer.serializeToStream(stream); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBarLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBarLayout.java index ca78f3959..f960b3cc2 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBarLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBarLayout.java @@ -224,6 +224,9 @@ public class ActionBarLayout extends FrameLayout { private DrawerLayoutContainer drawerLayoutContainer; private ActionBar currentActionBar; + private BaseFragment newFragment; + private BaseFragment oldFragment; + private AnimatorSet currentAnimation; private DecelerateInterpolator decelerateInterpolator = new DecelerateInterpolator(1.5f); private AccelerateDecelerateInterpolator accelerateDecelerateInterpolator = new AccelerateDecelerateInterpolator(); @@ -801,13 +804,19 @@ public class ActionBarLayout extends FrameLayout { if (animationProgress > 1.0f) { animationProgress = 1.0f; } + if (newFragment != null) { + newFragment.onTransitionAnimationProgress(true, animationProgress); + } + if (oldFragment != null) { + oldFragment.onTransitionAnimationProgress(false, animationProgress); + } float interpolated = decelerateInterpolator.getInterpolation(animationProgress); if (open) { containerView.setAlpha(interpolated); if (preview) { containerView.setScaleX(0.9f + 0.1f * interpolated); containerView.setScaleY(0.9f + 0.1f * interpolated); - previewBackgroundDrawable.setAlpha((int) (0x80 * interpolated)); + previewBackgroundDrawable.setAlpha((int) (0x2e * interpolated)); Theme.moveUpDrawable.setAlpha((int) (255 * interpolated)); containerView.invalidate(); invalidate(); @@ -819,7 +828,7 @@ public class ActionBarLayout extends FrameLayout { if (preview) { containerViewBack.setScaleX(0.9f + 0.1f * (1.0f - interpolated)); containerViewBack.setScaleY(0.9f + 0.1f * (1.0f - interpolated)); - previewBackgroundDrawable.setAlpha((int) (0x80 * (1.0f - interpolated))); + previewBackgroundDrawable.setAlpha((int) (0x2e * (1.0f - interpolated))); Theme.moveUpDrawable.setAlpha((int) (255 * (1.0f - interpolated))); containerView.invalidate(); invalidate(); @@ -854,7 +863,7 @@ public class ActionBarLayout extends FrameLayout { return false; } fragment.setInPreviewMode(preview); - if (parentActivity.getCurrentFocus() != null) { + if (parentActivity.getCurrentFocus() != null && fragment.hideKeyboardOnShow()) { AndroidUtilities.hideKeyboard(parentActivity.getCurrentFocus()); } boolean needAnimation = preview || !forceWithoutAnimation && MessagesController.getGlobalMainSettings().getBoolean("view_animations", true); @@ -922,7 +931,7 @@ public class ActionBarLayout extends FrameLayout { fragmentView.setElevation(AndroidUtilities.dp(4)); } if (previewBackgroundDrawable == null) { - previewBackgroundDrawable = new ColorDrawable(0x80000000); + previewBackgroundDrawable = new ColorDrawable(0x2e000000); } previewBackgroundDrawable.setAlpha(0); Theme.moveUpDrawable.setAlpha(0); @@ -1000,6 +1009,8 @@ public class ActionBarLayout extends FrameLayout { currentFragment.onTransitionAnimationStart(false, false); } fragment.onTransitionAnimationStart(true, false); + oldFragment = currentFragment; + newFragment = fragment; AnimatorSet animation = null; if (!preview) { animation = fragment.onCustomTransitionAnimation(true, () -> onAnimationEndCheck(false)); @@ -1234,6 +1245,8 @@ public class ActionBarLayout extends FrameLayout { } } + newFragment = previousFragment; + oldFragment = currentFragment; previousFragment.onTransitionAnimationStart(true, true); currentFragment.onTransitionAnimationStart(false, true); previousFragment.onResume(); @@ -1661,8 +1674,12 @@ public class ActionBarLayout extends FrameLayout { } transitionAnimationPreviewMode = false; transitionAnimationStartTime = 0; - onCloseAnimationEndRunnable.run(); + newFragment = null; + oldFragment = null; + Runnable endRunnable = onCloseAnimationEndRunnable; onCloseAnimationEndRunnable = null; + endRunnable.run(); + checkNeedRebuild(); checkNeedRebuild(); } } @@ -1686,8 +1703,11 @@ public class ActionBarLayout extends FrameLayout { } transitionAnimationPreviewMode = false; transitionAnimationStartTime = 0; - onOpenAnimationEndRunnable.run(); + newFragment = null; + oldFragment = null; + Runnable endRunnable = onOpenAnimationEndRunnable; onOpenAnimationEndRunnable = null; + endRunnable.run(); checkNeedRebuild(); } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBarMenuItem.java b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBarMenuItem.java index bba1f994f..aa864ed4c 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBarMenuItem.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBarMenuItem.java @@ -80,8 +80,9 @@ public class ActionBarMenuItem extends FrameLayout { } } - public interface ActionBarSumMenuItemDelegate { + public interface ActionBarSubMenuItemDelegate { void onShowSubMenu(); + void onHideSubMenu(); } public interface ActionBarMenuItemDelegate { @@ -106,7 +107,7 @@ public class ActionBarMenuItem extends FrameLayout { private int subMenuOpenSide; private int yOffset; private ActionBarMenuItemDelegate delegate; - private ActionBarSumMenuItemDelegate subMenuDelegate; + private ActionBarSubMenuItemDelegate subMenuDelegate; private boolean allowCloseAnimation = true; protected boolean overrideMenuClick; private boolean processedPopupClick; @@ -235,8 +236,8 @@ public class ActionBarMenuItem extends FrameLayout { delegate = actionBarMenuItemDelegate; } - public void setSubMenuDelegate(ActionBarSumMenuItemDelegate actionBarSumMenuItemDelegate) { - subMenuDelegate = actionBarSumMenuItemDelegate; + public void setSubMenuDelegate(ActionBarSubMenuItemDelegate actionBarSubMenuItemDelegate) { + subMenuDelegate = actionBarSubMenuItemDelegate; } public void setIconColor(int color) { @@ -489,7 +490,12 @@ public class ActionBarMenuItem extends FrameLayout { } return false; }); - popupWindow.setOnDismissListener(this::onDismiss); + popupWindow.setOnDismissListener(() -> { + onDismiss(); + if (subMenuDelegate != null) { + subMenuDelegate.onHideSubMenu(); + } + }); } if (measurePopup) { popupLayout.measure(MeasureSpec.makeMeasureSpec(AndroidUtilities.displaySize.x - AndroidUtilities.dp(40), MeasureSpec.AT_MOST), MeasureSpec.makeMeasureSpec(AndroidUtilities.displaySize.y, MeasureSpec.AT_MOST)); @@ -533,20 +539,23 @@ public class ActionBarMenuItem extends FrameLayout { } } if (searchContainer.getVisibility() == VISIBLE) { - if (openKeyboard) { - AndroidUtilities.hideKeyboard(searchField); - } - if (clearsTextOnSearchCollapse) { - searchField.setText(""); - } searchContainer.setVisibility(GONE); searchField.clearFocus(); setVisibility(VISIBLE); if (listener != null) { listener.onSearchCollapse(); } + if (openKeyboard) { + AndroidUtilities.hideKeyboard(searchField); + } + if (clearsTextOnSearchCollapse) { + searchField.setText(""); + } return false; } else { + if (listener != null) { + listener.onSearchExpand(); + } searchContainer.setVisibility(VISIBLE); setVisibility(GONE); searchField.setText(""); @@ -554,9 +563,6 @@ public class ActionBarMenuItem extends FrameLayout { if (openKeyboard) { AndroidUtilities.showKeyboard(searchField); } - if (listener != null) { - listener.onSearchExpand(); - } return true; } } @@ -565,6 +571,10 @@ public class ActionBarMenuItem extends FrameLayout { clearsTextOnSearchCollapse = value; } + public boolean isSubMenuShowing() { + return popupWindow != null && popupWindow.isShowing(); + } + public void closeSubMenu() { if (popupWindow != null && popupWindow.isShowing()) { popupWindow.dismiss(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBarPopupWindow.java b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBarPopupWindow.java index ca8df35bb..9f75f66f5 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBarPopupWindow.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBarPopupWindow.java @@ -224,6 +224,10 @@ public class ActionBarPopupWindow extends PopupWindow { linearLayout.addView(child); } + public void addView(View child, LinearLayout.LayoutParams layoutParams) { + linearLayout.addView(child, layoutParams); + } + public void removeInnerViews() { linearLayout.removeAllViews(); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/BaseFragment.java b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/BaseFragment.java index 0048e61c1..8731b592c 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/BaseFragment.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/BaseFragment.java @@ -114,6 +114,10 @@ public class BaseFragment { } } + protected boolean hideKeyboardOnShow() { + return true; + } + protected void clearViews() { if (fragmentView != null) { ViewGroup parent = (ViewGroup) fragmentView.getParent(); @@ -375,6 +379,10 @@ public class BaseFragment { } } + protected void onTransitionAnimationProgress(boolean isOpen, float progress) { + + } + protected void onTransitionAnimationStart(boolean isOpen, boolean backward) { } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/BottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/BottomSheet.java index 8f946cd63..a9dff9943 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/BottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/BottomSheet.java @@ -16,6 +16,7 @@ import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; import android.graphics.Canvas; +import android.graphics.Insets; import android.graphics.Paint; import android.graphics.PorterDuff; import android.graphics.PorterDuffColorFilter; @@ -24,6 +25,8 @@ import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.os.Build; import android.os.Bundle; + +import androidx.annotation.RequiresApi; import androidx.core.view.NestedScrollingParent; import androidx.core.view.NestedScrollingParentHelper; import androidx.core.view.ViewCompat; @@ -88,11 +91,18 @@ public class BottomSheet extends Dialog { protected boolean isFullscreen; protected ColorDrawable backDrawable = new ColorDrawable(0xff000000); + protected boolean useLightStatusBar = true; + + protected String behindKeyboardColorKey = Theme.key_dialogBackground; + protected int behindKeyboardColor; + private boolean canDismissWithSwipe = true; private boolean allowCustomAnimation = true; private boolean showWithoutAnimation; + protected boolean calcMandatoryInsets; + private int touchSlop; private boolean useFastDismiss; protected Interpolator openInterpolator = CubicBezierInterpolator.EASE_OUT_QUINT; @@ -344,6 +354,9 @@ public class BottomSheet extends Dialog { keyboardVisible = keyboardHeight > AndroidUtilities.dp(20); if (lastInsets != null && Build.VERSION.SDK_INT >= 21) { bottomInset = lastInsets.getSystemWindowInsetBottom(); + if (Build.VERSION.SDK_INT >= 29) { + bottomInset += getAdditionalMandatoryOffsets(); + } if (keyboardVisible && rect.bottom != 0 && rect.top != 0) { bottomInset -= keyboardHeight; } @@ -353,7 +366,11 @@ public class BottomSheet extends Dialog { } setMeasuredDimension(width, containerHeight); if (lastInsets != null && Build.VERSION.SDK_INT >= 21) { - height -= lastInsets.getSystemWindowInsetBottom(); + int inset = lastInsets.getSystemWindowInsetBottom(); + if (Build.VERSION.SDK_INT >= 29) { + inset += getAdditionalMandatoryOffsets(); + } + height -= inset; } if (lastInsets != null && Build.VERSION.SDK_INT >= 21) { width -= lastInsets.getSystemWindowInsetRight() + lastInsets.getSystemWindowInsetLeft(); @@ -394,6 +411,9 @@ public class BottomSheet extends Dialog { left += lastInsets.getSystemWindowInsetLeft(); right -= lastInsets.getSystemWindowInsetRight(); t -= lastInsets.getSystemWindowInsetBottom() - (drawNavigationBar ? 0 : bottomInset); + if (Build.VERSION.SDK_INT >= 29) { + t -= getAdditionalMandatoryOffsets(); + } } int l = ((right - left) - containerView.getMeasuredWidth()) / 2; if (lastInsets != null && Build.VERSION.SDK_INT >= 21) { @@ -438,9 +458,6 @@ public class BottomSheet extends Dialog { } switch (verticalGravity) { - case Gravity.TOP: - childTop = lp.topMargin; - break; case Gravity.CENTER_VERTICAL: childTop = (bottom - top - height) / 2 + lp.topMargin - lp.bottomMargin; break; @@ -493,7 +510,15 @@ public class BottomSheet extends Dialog { } else { backgroundPaint.setColor(0xff000000); } - canvas.drawRect(containerView.getLeft() + backgroundPaddingLeft, getMeasuredHeight() - bottomInset, containerView.getRight() - backgroundPaddingLeft, getMeasuredHeight(), backgroundPaint); + float translation = 0; + if (Build.VERSION.SDK_INT >= 29 && getAdditionalMandatoryOffsets() > 0) { + float dist = containerView.getMeasuredHeight() - containerView.getTranslationY(); + if (currentSheetAnimationType == 1) { + dist *= 0.1f; + } + translation = Math.max(0, bottomInset - dist); + } + canvas.drawRect(containerView.getLeft() + backgroundPaddingLeft, getMeasuredHeight() - bottomInset + translation, containerView.getRight() - backgroundPaddingLeft, getMeasuredHeight() + translation, backgroundPaint); } } @@ -501,13 +526,22 @@ public class BottomSheet extends Dialog { protected void onDraw(Canvas canvas) { super.onDraw(canvas); if (lastInsets != null && keyboardHeight != 0) { - backgroundPaint.setColor(Theme.getColor(Theme.key_dialogBackground)); + backgroundPaint.setColor(behindKeyboardColorKey != null ? Theme.getColor(behindKeyboardColorKey) : behindKeyboardColor); canvas.drawRect(containerView.getLeft() + backgroundPaddingLeft, getMeasuredHeight() - keyboardHeight - (drawNavigationBar ? bottomInset : 0), containerView.getRight() - backgroundPaddingLeft, getMeasuredHeight() - (drawNavigationBar ? bottomInset : 0), backgroundPaint); } onContainerDraw(canvas); } } + @RequiresApi(api = Build.VERSION_CODES.Q) + private int getAdditionalMandatoryOffsets() { + if (!calcMandatoryInsets) { + return 0; + } + Insets insets = lastInsets.getSystemGestureInsets(); + return !keyboardVisible && drawNavigationBar && insets != null && (insets.left != 0 || insets.right != 0) ? insets.bottom : 0; + } + public interface BottomSheetDelegateInterface { void onOpenAnimationStart(); void onOpenAnimationEnd(); @@ -541,7 +575,6 @@ public class BottomSheet extends Dialog { super(context); currentType = type; - setBackground(null); setBackgroundDrawable(Theme.getSelectorDrawable(false)); //setPadding(AndroidUtilities.dp(16), 0, AndroidUtilities.dp(16), 0); @@ -578,6 +611,9 @@ public class BottomSheet extends Dialog { @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int height = currentType == 2 ? 80 : 48; + if (currentType == 0) { + widthMeasureSpec = MeasureSpec.makeMeasureSpec(MeasureSpec.getSize(widthMeasureSpec), MeasureSpec.EXACTLY); + } super.onMeasure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(height), MeasureSpec.EXACTLY)); } @@ -590,13 +626,21 @@ public class BottomSheet extends Dialog { } public void setTextAndIcon(CharSequence text, int icon) { - setTextAndIcon(text, icon, false); + setTextAndIcon(text, icon, null, false); } - public void setTextAndIcon(CharSequence text, int icon, boolean bigTitle) { + public void setTextAndIcon(CharSequence text, Drawable icon) { + setTextAndIcon(text, 0, icon, false); + } + + public void setTextAndIcon(CharSequence text, int icon, Drawable drawable, boolean bigTitle) { textView.setText(text); - if (icon != 0) { - imageView.setImageResource(icon); + if (icon != 0 || drawable != null) { + if (drawable != null) { + imageView.setImageDrawable(drawable); + } else { + imageView.setImageResource(icon); + } imageView.setVisibility(VISIBLE); if (bigTitle) { textView.setPadding(AndroidUtilities.dp(LocaleController.isRTL ? 21 : 72), 0, AndroidUtilities.dp(LocaleController.isRTL ? 72 : 21), 0); @@ -614,6 +658,10 @@ public class BottomSheet extends Dialog { public TextView getTextView() { return textView; } + + public ImageView getImageView() { + return imageView; + } } @Override @@ -678,7 +726,7 @@ public class BottomSheet extends Dialog { window.setWindowAnimations(R.style.DialogNoAnimation); setContentView(container, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); - if (Build.VERSION.SDK_INT >= 23) { + if (useLightStatusBar && Build.VERSION.SDK_INT >= 23) { int color = Theme.getColor(Theme.key_actionBarDefault, null, true); if (color == 0xffffffff) { int flags = container.getSystemUiVisibility(); @@ -743,7 +791,7 @@ public class BottomSheet extends Dialog { continue; } BottomSheetCell cell = new BottomSheetCell(getContext(), 0); - cell.setTextAndIcon(items[a], itemIcons != null ? itemIcons[a] : 0, bigTitle); + cell.setTextAndIcon(items[a], itemIcons != null ? itemIcons[a] : 0, null, bigTitle); containerView.addView(cell, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 48, Gravity.LEFT | Gravity.TOP, 0, topOffset, 0, 0)); topOffset += 48; cell.setTag(a); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/Theme.java b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/Theme.java index e17531e77..4b6dd1092 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/Theme.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/Theme.java @@ -68,6 +68,7 @@ import org.telegram.messenger.FileLog; import org.telegram.messenger.ImageLocation; import org.telegram.messenger.LocaleController; import org.telegram.messenger.MediaController; +import org.telegram.messenger.MessageObject; import org.telegram.messenger.MessagesController; import org.telegram.messenger.NotificationCenter; import org.telegram.messenger.R; @@ -79,6 +80,7 @@ import org.telegram.tgnet.ConnectionsManager; import org.telegram.tgnet.SerializedData; import org.telegram.tgnet.TLRPC; import org.telegram.ui.Cells.ThemesHorizontalListCell; +import org.telegram.ui.Components.AudioVisualizerDrawable; import org.telegram.ui.Components.BackgroundGradientDrawable; import org.telegram.ui.Components.CombinedDrawable; import org.telegram.ui.Components.RLottieDrawable; @@ -127,7 +129,7 @@ public class Theme { private Rect backupRect = new Rect(); - private boolean isOut; + private final boolean isOut; private int topY; private boolean isTopNear; @@ -149,6 +151,8 @@ public class Theme { public static final int TYPE_MEDIA = 1; public static final int TYPE_PREVIEW = 2; + private int alpha; + public MessageDrawable(int type, boolean out, boolean selected) { super(); isOut = out; @@ -156,6 +160,7 @@ public class Theme { isSelected = selected; path = new Path(); selectedPaint = new Paint(Paint.ANTI_ALIAS_FLAG); + alpha = 255; } public boolean hasGradient() { @@ -558,13 +563,22 @@ public class Theme { @Override public void setAlpha(int alpha) { - paint.setAlpha(alpha); - if (isOut) { - selectedPaint.setAlpha((int) (Color.alpha(getColor(key_chat_outBubbleGradientSelectedOverlay)) * (alpha / 255.0f))); + if (this.alpha != alpha) { + this.alpha = alpha; + paint.setAlpha(alpha); + if (isOut) { + selectedPaint.setAlpha((int) (Color.alpha(getColor(key_chat_outBubbleGradientSelectedOverlay)) * (alpha / 255.0f))); + } } if (gradientShader == null) { Drawable background = getBackgroundDrawable(); - background.setAlpha(alpha); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { + if (background.getAlpha() != alpha) { + background.setAlpha(alpha); + } + } else { + background.setAlpha(alpha); + } } } @@ -2149,6 +2163,9 @@ public class Theme { public static Drawable chat_flameIcon; public static Drawable chat_gifIcon; + private static AudioVisualizerDrawable chat_msgAudioVisualizeDrawable; + private static HashMap animatedOutVisualizerDrawables; + public static final String key_dialogBackground = "dialogBackground"; public static final String key_dialogBackgroundGray = "dialogBackgroundGray"; public static final String key_dialogTextBlack = "dialogTextBlack"; @@ -7293,6 +7310,9 @@ public class Theme { color = defaultColors.get(key); } } + if (color != null && (key_windowBackgroundWhite.equals(key) || key_windowBackgroundGray.equals(key))) { + color |= 0xff000000; + } return color; } @@ -7382,8 +7402,8 @@ public class Theme { return getDefaultColor(key); } } - if (key.equals(key_windowBackgroundWhite) || key.equals(key_windowBackgroundGray)) { - return 0xff000000 | color; + if (key_windowBackgroundWhite.equals(key) || key_windowBackgroundGray.equals(key)) { + color |= 0xff000000; } return color; } @@ -7927,4 +7947,40 @@ public class Theme { public static boolean isPatternWallpaper() { return isPatternWallpaper; } + + public static AudioVisualizerDrawable getCurrentAudiVisualizerDrawable() { + if (chat_msgAudioVisualizeDrawable == null) { + chat_msgAudioVisualizeDrawable = new AudioVisualizerDrawable(); + } + return chat_msgAudioVisualizeDrawable; + } + + public static void unrefAudioVisualizeDrawable(MessageObject messageObject) { + if (chat_msgAudioVisualizeDrawable == null) { + return; + } + if (chat_msgAudioVisualizeDrawable.getParentView() == null || messageObject == null) { + chat_msgAudioVisualizeDrawable.setParentView(null); + } else { + if (animatedOutVisualizerDrawables == null) { + animatedOutVisualizerDrawables = new HashMap<>(); + } + animatedOutVisualizerDrawables.put(messageObject, chat_msgAudioVisualizeDrawable); + chat_msgAudioVisualizeDrawable.setWaveform(false, true, null); + AndroidUtilities.runOnUIThread(() -> { + AudioVisualizerDrawable drawable = animatedOutVisualizerDrawables.remove(messageObject); + if (drawable != null) { + drawable.setParentView(null); + } + }, 200); + chat_msgAudioVisualizeDrawable = null; + } + } + + public static AudioVisualizerDrawable getAnimatedOutAudioVisualizerDrawable(MessageObject messageObject) { + if (animatedOutVisualizerDrawables == null || messageObject == null) { + return null; + } + return animatedOutVisualizerDrawables.get(messageObject); + } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ActionIntroActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ActionIntroActivity.java index 7ee5fd30e..5efe443ae 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ActionIntroActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ActionIntroActivity.java @@ -748,7 +748,7 @@ public class ActionIntroActivity extends BaseFragment implements LocationControl } else { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); builder.setTitle(LocaleController.getString("AppName", R.string.AppName)); - builder.setMessage(LocaleController.getString("WalletPermissionNoCamera", R.string.WalletPermissionNoCamera)); + builder.setMessage(LocaleController.getString("QRCodePermissionNoCamera", R.string.QRCodePermissionNoCamera)); builder.setNegativeButton(LocaleController.getString("PermissionOpenSettings", R.string.PermissionOpenSettings), (dialog, which) -> { try { Intent intent = new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Adapters/MentionsAdapter.java b/TMessagesProj/src/main/java/org/telegram/ui/Adapters/MentionsAdapter.java index 316ab0343..7386cfc4a 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Adapters/MentionsAdapter.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Adapters/MentionsAdapter.java @@ -697,6 +697,7 @@ public class MentionsAdapter extends RecyclerListView.SelectionAdapter { if (user.username != null && user.username.length() > 0 && (usernameString.length() > 0 && user.username.toLowerCase().startsWith(usernameString) || usernameString.length() == 0)) { newResult.add(user); newResultsHashMap.put(user.id, user); + newMap.put(user.id, user); count++; } if (count == 5) { @@ -1075,7 +1076,7 @@ public class MentionsAdapter extends RecyclerListView.SelectionAdapter { if (hasTop) { position--; } - ((ContextLinkCell) holder.itemView).setLink(searchResultBotContext.get(position), contextMedia, position != searchResultBotContext.size() - 1, hasTop && position == 0); + ((ContextLinkCell) holder.itemView).setLink(searchResultBotContext.get(position), foundContextBot, contextMedia, position != searchResultBotContext.size() - 1, hasTop && position == 0, "gif".equals(searchingContextUsername)); } } else { if (searchResultUsernames != null) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Adapters/StickersSearchAdapter.java b/TMessagesProj/src/main/java/org/telegram/ui/Adapters/StickersSearchAdapter.java index dce0ce511..340555b1b 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Adapters/StickersSearchAdapter.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Adapters/StickersSearchAdapter.java @@ -28,6 +28,7 @@ import org.telegram.messenger.UserConfig; import org.telegram.tgnet.ConnectionsManager; import org.telegram.tgnet.TLRPC; import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.ActionBar.ThemeDescription; import org.telegram.ui.Cells.EmptyCell; import org.telegram.ui.Cells.FeaturedStickerSetInfoCell; import org.telegram.ui.Cells.StickerEmojiCell; @@ -86,6 +87,9 @@ public class StickersSearchAdapter extends RecyclerListView.SelectionAdapter { private ArrayList> emojiArrays = new ArrayList<>(); private SparseArray positionsToSets = new SparseArray<>(); + private ImageView emptyImageView; + private TextView emptyTextView; + private int reqId; private int reqId2; @@ -371,19 +375,19 @@ public class StickersSearchAdapter extends RecyclerListView.SelectionAdapter { layout.setOrientation(LinearLayout.VERTICAL); layout.setGravity(Gravity.CENTER); - ImageView imageView = new ImageView(context); - imageView.setScaleType(ImageView.ScaleType.CENTER); - imageView.setImageResource(R.drawable.stickers_empty); - imageView.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_chat_emojiPanelEmptyText), PorterDuff.Mode.MULTIPLY)); - layout.addView(imageView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT)); + emptyImageView = new ImageView(context); + emptyImageView.setScaleType(ImageView.ScaleType.CENTER); + emptyImageView.setImageResource(R.drawable.stickers_empty); + emptyImageView.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_chat_emojiPanelEmptyText), PorterDuff.Mode.MULTIPLY)); + layout.addView(emptyImageView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT)); layout.addView(new Space(context), LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 15)); - TextView textView = new TextView(context); - textView.setText(LocaleController.getString("NoStickersFound", R.string.NoStickersFound)); - textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); - textView.setTextColor(Theme.getColor(Theme.key_chat_emojiPanelEmptyText)); - layout.addView(textView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT)); + emptyTextView = new TextView(context); + emptyTextView.setText(LocaleController.getString("NoStickersFound", R.string.NoStickersFound)); + emptyTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); + emptyTextView.setTextColor(Theme.getColor(Theme.key_chat_emojiPanelEmptyText)); + layout.addView(emptyTextView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT)); view = layout; view.setMinimumHeight(AndroidUtilities.dp(112)); @@ -652,4 +656,22 @@ public class StickersSearchAdapter extends RecyclerListView.SelectionAdapter { public TLRPC.StickerSetCovered getSetForPosition(int position) { return positionsToSets.get(position); } + + public void updateColors(RecyclerListView listView) { + for (int i = 0, size = listView.getChildCount(); i < size; i++) { + final View child = listView.getChildAt(i); + if (child instanceof FeaturedStickerSetInfoCell) { + ((FeaturedStickerSetInfoCell) child).updateColors(); + } else if (child instanceof StickerSetNameCell) { + ((StickerSetNameCell) child).updateColors(); + } + } + } + + public void getThemeDescriptions(List descriptions, RecyclerListView listView, ThemeDescription.ThemeDescriptionDelegate delegate) { + FeaturedStickerSetInfoCell.createThemeDescriptions(descriptions, listView, delegate); + StickerSetNameCell.createThemeDescriptions(descriptions, listView, delegate); + descriptions.add(new ThemeDescription(emptyImageView, ThemeDescription.FLAG_IMAGECOLOR, null, null, null, null, Theme.key_chat_emojiPanelEmptyText)); + descriptions.add(new ThemeDescription(emptyTextView, ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_chat_emojiPanelEmptyText)); + } } \ No newline at end of file diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ArticleViewer.java b/TMessagesProj/src/main/java/org/telegram/ui/ArticleViewer.java index 822a0e566..3f737eddd 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ArticleViewer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ArticleViewer.java @@ -311,6 +311,8 @@ public class ArticleViewer implements NotificationCenter.NotificationCenterDeleg TextSelectionHelper.ArticleTextSelectionHelper textSelectionHelper; TextSelectionHelper.ArticleTextSelectionHelper textSelectionHelperBottomSheet; + int allowAnimationIndex = -1; + private final String BOTTOM_SHEET_VIEW_TAG = "bottomSheet"; @SuppressLint("StaticFieldLeak") @@ -729,6 +731,7 @@ public class ArticleViewer implements NotificationCenter.NotificationCenterDeleg } else { setMeasuredDimension(widthSize, heightSize); } + menuButton.setAdditionalYOffset(-(currentHeaderHeight - AndroidUtilities.dp(56)) / 2 + (Build.VERSION.SDK_INT < 21 ? AndroidUtilities.statusBarHeight : 0)); keyboardVisible = heightSize < AndroidUtilities.displaySize.y - AndroidUtilities.dp(100); containerView.measure(View.MeasureSpec.makeMeasureSpec(widthSize, View.MeasureSpec.EXACTLY), View.MeasureSpec.makeMeasureSpec(heightSize, View.MeasureSpec.EXACTLY)); photoContainerView.measure(View.MeasureSpec.makeMeasureSpec(widthSize, View.MeasureSpec.EXACTLY), View.MeasureSpec.makeMeasureSpec(heightSize, View.MeasureSpec.EXACTLY)); @@ -3826,6 +3829,7 @@ public class ArticleViewer implements NotificationCenter.NotificationCenterDeleg photoContainerView.addView(bottomLayout, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 48, Gravity.BOTTOM | Gravity.LEFT)); groupedPhotosListView = new GroupedPhotosListView(parentActivity); + groupedPhotosListView.setAnimationsEnabled(false); photoContainerView.addView(groupedPhotosListView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 62, Gravity.BOTTOM | Gravity.LEFT, 0, 0, 0, 0)); groupedPhotosListView.setDelegate(new GroupedPhotosListView.GroupedPhotosListViewDelegate() { @Override @@ -4346,7 +4350,7 @@ public class ArticleViewer implements NotificationCenter.NotificationCenterDeleg titleTextView.setTranslationY((maxHeight - currentHeaderHeight) / 2); headerView.setTranslationY(currentHeaderHeight - maxHeight); searchShadow.setTranslationY(currentHeaderHeight - maxHeight); - menuButton.setAdditionalYOffset(-(currentHeaderHeight - maxHeight) / 2); + menuButton.setAdditionalYOffset(-(currentHeaderHeight - maxHeight) / 2 + (Build.VERSION.SDK_INT < 21 ? AndroidUtilities.statusBarHeight : 0)); textSelectionHelper.setTopOffset(currentHeaderHeight); for (int i = 0; i < listView.length; i++) { listView[i].setTopGlowOffset(currentHeaderHeight); @@ -4566,7 +4570,7 @@ public class ArticleViewer implements NotificationCenter.NotificationCenterDeleg @Override public void onAnimationEnd(Animator animation) { AndroidUtilities.runOnUIThread(() -> { - NotificationCenter.getInstance(currentAccount).setAnimationInProgress(false); + NotificationCenter.getInstance(currentAccount).onAnimationFinish(allowAnimationIndex); if (animationEndRunnable != null) { animationEndRunnable.run(); animationEndRunnable = null; @@ -4576,8 +4580,7 @@ public class ArticleViewer implements NotificationCenter.NotificationCenterDeleg }); transitionAnimationStartTime = System.currentTimeMillis(); AndroidUtilities.runOnUIThread(() -> { - NotificationCenter.getInstance(currentAccount).setAllowedNotificationsDutingAnimation(new int[]{NotificationCenter.dialogsNeedReload, NotificationCenter.closeChats}); - NotificationCenter.getInstance(currentAccount).setAnimationInProgress(true); + allowAnimationIndex = NotificationCenter.getInstance(currentAccount).setAnimationInProgress(allowAnimationIndex, new int[]{NotificationCenter.dialogsNeedReload, NotificationCenter.closeChats}); animatorSet.start(); }); if (Build.VERSION.SDK_INT >= 18) { @@ -6410,7 +6413,7 @@ public class ArticleViewer implements NotificationCenter.NotificationCenterDeleg buttonY = (int) (imageView.getImageY() + (imageView.getImageHeight() - size) / 2.0f); radialProgress.setProgressRect(buttonX, buttonY, buttonX + size, buttonY + size); } - textY = imageView.getImageY() + imageView.getImageHeight() + AndroidUtilities.dp(8); + textY = (int) (imageView.getImageY() + imageView.getImageHeight() + AndroidUtilities.dp(8)); if (currentType == 0) { captionLayout = createLayoutForText(this, null, currentBlock.caption.text, textWidth, textY, currentBlock, parentAdapter); if (captionLayout != null) { @@ -10278,7 +10281,7 @@ public class ArticleViewer implements NotificationCenter.NotificationCenterDeleg buttonY = (int) (imageView.getImageY() + (imageView.getImageHeight() - size) / 2.0f); radialProgress.setProgressRect(buttonX, buttonY, buttonX + size, buttonY + size); } - textY = imageView.getImageY() + imageView.getImageHeight() + AndroidUtilities.dp(8); + textY = (int) (imageView.getImageY() + imageView.getImageHeight() + AndroidUtilities.dp(8)); if (currentType == 0) { captionLayout = createLayoutForText(this, null, currentBlock.caption.text, textWidth, textY, currentBlock, parentAdapter); @@ -10330,7 +10333,7 @@ public class ArticleViewer implements NotificationCenter.NotificationCenterDeleg } if (!TextUtils.isEmpty(currentBlock.url)) { int x = getMeasuredWidth() - AndroidUtilities.dp(11 + 24); - int y = imageView.getImageY() + AndroidUtilities.dp(11); + int y = (int) (imageView.getImageY() + AndroidUtilities.dp(11)); linkDrawable.setBounds(x, y, x + AndroidUtilities.dp(24), y + AndroidUtilities.dp(24)); linkDrawable.draw(canvas); } @@ -10578,7 +10581,7 @@ public class ArticleViewer implements NotificationCenter.NotificationCenterDeleg } else if (currentUrl != null) { imageView.setImage(currentUrl, null, null, null, 0); } - textY = imageView.getImageY() + imageView.getImageHeight() + AndroidUtilities.dp(8); + textY = (int) (imageView.getImageY() + imageView.getImageHeight() + AndroidUtilities.dp(8)); if (currentType == 0) { captionLayout = createLayoutForText(this, null, currentBlock.caption.text, textWidth, textY, currentBlock, parentAdapter); if (captionLayout != null) { @@ -10624,8 +10627,8 @@ public class ArticleViewer implements NotificationCenter.NotificationCenterDeleg if (currentMapProvider == 2 && imageView.hasNotThumb()) { int w = (int) (Theme.chat_redLocationIcon.getIntrinsicWidth() * 0.8f); int h = (int) (Theme.chat_redLocationIcon.getIntrinsicHeight() * 0.8f); - int x = imageView.getImageX() + (imageView.getImageWidth() - w) / 2; - int y = imageView.getImageY() + (imageView.getImageHeight() / 2 - h); + int x = (int) (imageView.getImageX() + (imageView.getImageWidth() - w) / 2); + int y = (int) (imageView.getImageY() + (imageView.getImageHeight() / 2 - h)); Theme.chat_redLocationIcon.setAlpha((int) (255 * imageView.getCurrentAlpha())); Theme.chat_redLocationIcon.setBounds(x, y, x + w, y + h); Theme.chat_redLocationIcon.draw(canvas); @@ -11446,7 +11449,7 @@ public class ArticleViewer implements NotificationCenter.NotificationCenterDeleg hasViews = true; viewsTextView.setVisibility(VISIBLE); textView.setGravity(Gravity.RIGHT | Gravity.CENTER_VERTICAL); - viewsTextView.setText(LocaleController.formatPluralString("Views", count)); + viewsTextView.setText(LocaleController.formatPluralStringComma("Views", count)); } int color = Theme.getColor(Theme.key_switchTrack); textView.setTextColor(getGrayTextColor()); @@ -11915,7 +11918,7 @@ public class ArticleViewer implements NotificationCenter.NotificationCenterDeleg } @Override - public void onError(Exception e) { + public void onError(VideoPlayer player, Exception e) { FileLog.e(e); } @@ -12670,7 +12673,7 @@ public class ArticleViewer implements NotificationCenter.NotificationCenterDeleg @Override public void onAnimationEnd(Animator animation) { AndroidUtilities.runOnUIThread(() -> { - NotificationCenter.getInstance(currentAccount).setAnimationInProgress(false); + NotificationCenter.getInstance(currentAccount).onAnimationFinish(allowAnimationIndex); if (photoAnimationEndRunnable != null) { photoAnimationEndRunnable.run(); photoAnimationEndRunnable = null; @@ -12680,8 +12683,7 @@ public class ArticleViewer implements NotificationCenter.NotificationCenterDeleg }); photoTransitionAnimationStartTime = System.currentTimeMillis(); AndroidUtilities.runOnUIThread(() -> { - NotificationCenter.getInstance(currentAccount).setAllowedNotificationsDutingAnimation(new int[]{NotificationCenter.dialogsNeedReload, NotificationCenter.closeChats}); - NotificationCenter.getInstance(currentAccount).setAnimationInProgress(true); + allowAnimationIndex = NotificationCenter.getInstance(currentAccount).setAnimationInProgress(allowAnimationIndex, new int[]{NotificationCenter.dialogsNeedReload, NotificationCenter.closeChats}); animatorSet.start(); }); if (Build.VERSION.SDK_INT >= 18) { @@ -12738,8 +12740,8 @@ public class ArticleViewer implements NotificationCenter.NotificationCenterDeleg layoutParams.height = (int) drawRegion.height(); animatingImageView.setImageBitmap(object.thumb); } else { - layoutParams.width = centerImage.getImageWidth(); - layoutParams.height = centerImage.getImageHeight(); + layoutParams.width = (int) centerImage.getImageWidth(); + layoutParams.height = (int) centerImage.getImageHeight(); animatingImageView.setImageBitmap(centerImage.getBitmapSafe()); } if (layoutParams.width == 0) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/CameraScanActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/CameraScanActivity.java index 9afcc4adc..b32179519 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/CameraScanActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/CameraScanActivity.java @@ -62,7 +62,6 @@ import org.telegram.ui.ActionBar.BaseFragment; import org.telegram.ui.ActionBar.BottomSheet; import org.telegram.ui.ActionBar.Theme; import org.telegram.ui.ActionBar.ThemeDescription; -import org.telegram.ui.Components.AlertsCreator; import org.telegram.ui.Components.AnimationProperties; import org.telegram.ui.Components.CubicBezierInterpolator; import org.telegram.ui.Components.LayoutHelper; @@ -376,7 +375,7 @@ public class CameraScanActivity extends BaseFragment implements Camera.PreviewCa cameraView.addView(recognizedMrzView); } else { if (needGalleryButton) { - titleTextView.setText(LocaleController.getString("WalletScanCode", R.string.WalletScanCode)); + //titleTextView.setText(LocaleController.getString("WalletScanCode", R.string.WalletScanCode)); } else { titleTextView.setText(LocaleController.getString("AuthAnotherClientScan", R.string.AuthAnotherClientScan)); } @@ -384,7 +383,7 @@ public class CameraScanActivity extends BaseFragment implements Camera.PreviewCa recognizedMrzView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); recognizedMrzView.setPadding(AndroidUtilities.dp(10), 0, AndroidUtilities.dp(10), AndroidUtilities.dp(10)); if (needGalleryButton) { - recognizedMrzView.setText(LocaleController.getString("WalletScanCodeNotFound", R.string.WalletScanCodeNotFound)); + //recognizedMrzView.setText(LocaleController.getString("WalletScanCodeNotFound", R.string.WalletScanCodeNotFound)); } else { recognizedMrzView.setText(LocaleController.getString("AuthAnotherClientNotFound", R.string.AuthAnotherClientNotFound)); } @@ -542,16 +541,8 @@ public class CameraScanActivity extends BaseFragment implements Camera.PreviewCa }); } - private void showErrorAlert() { - AlertsCreator.createSimpleAlert(getParentActivity(), LocaleController.getString("WalletQRCode", R.string.WalletQRCode), LocaleController.getString("WalletScanImageNotFound", R.string.WalletScanImageNotFound)).show(); - } - - private void onNoQrFound(boolean alert) { + private void onNoQrFound() { AndroidUtilities.runOnUIThread(() -> { - if (alert) { - showErrorAlert(); - return; - } if (recognizedMrzView.getTag() != null) { recognizedMrzView.setTag(null); recognizedMrzView.animate().setDuration(200).alpha(0.0f).setInterpolator(CubicBezierInterpolator.DEFAULT).start(); @@ -559,19 +550,6 @@ public class CameraScanActivity extends BaseFragment implements Camera.PreviewCa }); } - private void onNoWalletFound(boolean alert) { - AndroidUtilities.runOnUIThread(() -> { - if (alert) { - showErrorAlert(); - return; - } - if (recognizedMrzView.getTag() == null) { - recognizedMrzView.setTag(1); - recognizedMrzView.animate().setDuration(200).alpha(1.0f).setInterpolator(CubicBezierInterpolator.DEFAULT).start(); - } - }); - } - @Override public void onPreviewFrame(final byte[] data, final Camera camera) { handler.post(() -> { @@ -610,7 +588,7 @@ public class CameraScanActivity extends BaseFragment implements Camera.PreviewCa } } } catch (Throwable ignore) { - onNoQrFound(false); + onNoQrFound(); } }); } @@ -643,31 +621,31 @@ public class CameraScanActivity extends BaseFragment implements Camera.PreviewCa Result result = qrReader.decode(new BinaryBitmap(new GlobalHistogramBinarizer(source))); if (result == null) { - onNoQrFound(bitmap != null); + onNoQrFound(); return null; } text = result.getText(); } if (TextUtils.isEmpty(text)) { - onNoQrFound(bitmap != null); + onNoQrFound(); return null; } if (needGalleryButton) { if (!text.startsWith("ton://transfer/")) { - onNoWalletFound(bitmap != null); + //onNoWalletFound(bitmap != null); return null; } Uri uri = Uri.parse(text); String path = uri.getPath().replace("/", ""); } else { if (!text.startsWith("tg://login?token=")) { - onNoWalletFound(false); + onNoQrFound(); return null; } } return text; } catch (Throwable ignore) { - onNoQrFound(bitmap != null); + onNoQrFound(); } return null; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/AboutLinkCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/AboutLinkCell.java index 420a867ce..71155d233 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/AboutLinkCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/AboutLinkCell.java @@ -31,6 +31,8 @@ import org.telegram.messenger.FileLog; import org.telegram.messenger.LocaleController; import org.telegram.messenger.MessageObject; import org.telegram.messenger.browser.Browser; +import org.telegram.ui.ActionBar.BaseFragment; +import org.telegram.ui.Components.AlertsCreator; import org.telegram.ui.Components.LayoutHelper; import org.telegram.ui.Components.LinkPath; import org.telegram.ui.ActionBar.Theme; @@ -49,9 +51,13 @@ public class AboutLinkCell extends FrameLayout { private ClickableSpan pressedLink; private LinkPath urlPath = new LinkPath(); - public AboutLinkCell(Context context) { + private BaseFragment parentFragment; + + public AboutLinkCell(Context context, BaseFragment fragment) { super(context); + parentFragment = fragment; + valueTextView = new TextView(context); valueTextView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText2)); valueTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13); @@ -148,7 +154,12 @@ public class AboutLinkCell extends FrameLayout { } } else { if (pressedLink instanceof URLSpan) { - Browser.openUrl(getContext(), ((URLSpan) pressedLink).getURL()); + String url = ((URLSpan) pressedLink).getURL(); + if (AndroidUtilities.shouldShowUrlInAlert(url)) { + AlertsCreator.showOpenUrlAlert(parentFragment, url, true, true); + } else { + Browser.openUrl(getContext(), url); + } } else { pressedLink.onClick(this); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/BotHelpCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/BotHelpCell.java index 9d29e570b..b959b5a0f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/BotHelpCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/BotHelpCell.java @@ -28,7 +28,6 @@ import org.telegram.messenger.LocaleController; import org.telegram.messenger.MessageObject; import org.telegram.messenger.FileLog; import org.telegram.messenger.R; -import org.telegram.messenger.browser.Browser; import org.telegram.ui.Components.LinkPath; import org.telegram.ui.ActionBar.Theme; import org.telegram.ui.Components.TypefaceSpan; @@ -43,12 +42,15 @@ public class BotHelpCell extends View { private int height; private int textX; private int textY; + public boolean wasDraw; private ClickableSpan pressedLink; private LinkPath urlPath = new LinkPath(); private BotHelpCellDelegate delegate; + private boolean animating; + public interface BotHelpCellDelegate { void didPressUrl(String url); } @@ -167,7 +169,9 @@ public class BotHelpCell extends View { } } else { if (pressedLink instanceof URLSpan) { - Browser.openUrl(getContext(), ((URLSpan) pressedLink).getURL()); + if (delegate != null) { + delegate.didPressUrl(((URLSpan) pressedLink).getURL()); + } } else { pressedLink.onClick(this); } @@ -218,6 +222,14 @@ public class BotHelpCell extends View { textLayout.draw(canvas); } canvas.restore(); + wasDraw = true; + } + + + @Override + protected void onDetachedFromWindow() { + super.onDetachedFromWindow(); + wasDraw = false; } @Override @@ -225,4 +237,12 @@ public class BotHelpCell extends View { super.onInitializeAccessibilityNodeInfo(info); info.setText(textLayout.getText()); } + + public boolean animating() { + return animating; + } + + public void setAnimating(boolean animating) { + this.animating = animating; + } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatMessageCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatMessageCell.java index 62f34e02b..4a8587b74 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatMessageCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatMessageCell.java @@ -46,6 +46,7 @@ import android.text.TextUtils; import android.text.style.CharacterStyle; import android.text.style.ClickableSpan; import android.text.style.URLSpan; +import android.util.Property; import android.util.SparseArray; import android.util.StateSet; import android.view.HapticFeedbackConstants; @@ -93,10 +94,12 @@ import org.telegram.ui.ActionBar.Theme; import org.telegram.ui.ChatActivity; import org.telegram.ui.Components.AnimatedFileDrawable; import org.telegram.ui.Components.AnimationProperties; +import org.telegram.ui.Components.AudioVisualizerDrawable; import org.telegram.ui.Components.AvatarDrawable; import org.telegram.ui.Components.BackgroundGradientDrawable; import org.telegram.ui.Components.CheckBoxBase; import org.telegram.ui.Components.CubicBezierInterpolator; +import org.telegram.ui.Components.EmptyStubSpan; import org.telegram.ui.Components.LinkPath; import org.telegram.ui.Components.MediaActionDrawable; import org.telegram.ui.Components.MessageBackgroundDrawable; @@ -384,8 +387,8 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate private StaticLayout captionLayout; private CharSequence currentCaption; private int captionOffsetX; - private int captionX; - private int captionY; + private float captionX; + private float captionY; private int captionHeight; private int captionWidth; private int addedCaptionHeight; @@ -548,6 +551,8 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate private Theme.MessageDrawable currentBackgroundSelectedDrawable; private int backgroundDrawableLeft; private int backgroundDrawableRight; + private int backgroundDrawableTop; + private int backgroundDrawableBottom; private int viaWidth; private int viaNameWidth; private TypefaceSpan viaSpan1; @@ -590,8 +595,8 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate private boolean drwaShareGoIcon; private boolean drawShareButton; private boolean sharePressed; - private int shareStartX; - private int shareStartY; + private float shareStartX; + private float shareStartY; private StaticLayout nameLayout; private StaticLayout adminLayout; @@ -633,7 +638,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate private String currentForwardNameString; private boolean replyPanelIsForward; private boolean animationRunning; - public boolean willRemoved; + private boolean willRemoved; private ChatMessageCellDelegate delegate; @@ -647,7 +652,12 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate private float selectedBackgroundProgress; private boolean scheduledInvalidate; - private float shownLoadingInfoViewProgress; + + private final boolean ALPHA_PROPERTY_WORKAROUND = Build.VERSION.SDK_INT == 28; + private float alphaInternal = 1f; + + private final TransitionParams transitionParams = new TransitionParams(); + private boolean edited; private Runnable invalidateRunnable = new Runnable() { @Override @@ -1159,11 +1169,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate invalidate(); } else if (pressedLink != null) { if (pressedLink instanceof URLSpan) { - if (ChatActivity.isClickableLink(((URLSpan) pressedLink).getURL())) { - delegate.didPressUrl(this, pressedLink, false); - } else { - Browser.openUrl(getContext(), ((URLSpan) pressedLink).getURL()); - } + delegate.didPressUrl(this, pressedLink, false); } else if (pressedLink instanceof ClickableSpan) { ((ClickableSpan) pressedLink).onClick(this); } @@ -1930,7 +1936,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate if (group != null && group.groupId == currentMessagesGroup.groupId && (position.flags & MessageObject.POSITION_FLAG_BOTTOM) != 0 && (position.flags & MessageObject.POSITION_FLAG_LEFT) != 0) { - textSelectionHelper.setMaybeTextCord(cell.captionX, cell.captionY); + textSelectionHelper.setMaybeTextCord((int) cell.captionX, (int) cell.captionY); textSelectionHelper.setMessageObject(cell); if (cell == this) { return textSelectionHelper.onTouchEvent(event); @@ -1947,7 +1953,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate } else { if (hasCaptionLayout()) { textSelectionHelper.setIsDescription(false); - textSelectionHelper.setMaybeTextCord(captionX, captionY); + textSelectionHelper.setMaybeTextCord((int) captionX, (int) captionY); } else { if (descriptionLayout != null && event.getY() > descriptionY) { textSelectionHelper.setIsDescription(true); @@ -1985,7 +1991,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate } getDelegate().getTextSelectionHelper().updateTextPosition(linkX + AndroidUtilities.dp(10) + descriptionX, descriptionY); } else if (textSelectionType == TextSelectionHelper.ChatListTextSelectionHelper.TYPE_CAPTION) { - getDelegate().getTextSelectionHelper().updateTextPosition(captionX, captionY); + getDelegate().getTextSelectionHelper().updateTextPosition((int) captionX, (int) captionY); } else { getDelegate().getTextSelectionHelper().updateTextPosition(textX, textY); } @@ -2449,6 +2455,11 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate if (getDelegate().getTextSelectionHelper() != null) { getDelegate().getTextSelectionHelper().onChatMessageCellDetached(this); } + + transitionParams.onDetach(); + if (MediaController.getInstance().isPlayingMessage(currentMessageObject)) { + Theme.getCurrentAudiVisualizerDrawable().setParentView(null); + } } @Override @@ -2473,7 +2484,12 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate } attachedToWindow = true; - setTranslationX(0); + + animationOffsetX = 0; + slidingOffsetX = 0; + checkBoxTranslation = 0; + updateTranslation(); + radialProgress.onAttachedToWindow(); videoRadialProgress.onAttachedToWindow(); avatarImage.onAttachedToWindow(); @@ -2573,7 +2589,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate lastTime = -2; isHighlightedAnimated = false; widthBeforeNewTimeLine = -1; - if (currentMessagesGroup != null && currentMessagesGroup.posArray.size() > 1) { + if (currentMessagesGroup != null && (currentMessagesGroup.posArray.size() > 1)) { currentPosition = currentMessagesGroup.positions.get(currentMessageObject); if (currentPosition == null) { currentMessagesGroup = null; @@ -2585,6 +2601,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate drawPinnedTop = pinnedTop && (currentPosition == null || (currentPosition.flags & MessageObject.POSITION_FLAG_TOP) != 0); drawPinnedBottom = pinnedBottom && (currentPosition == null || (currentPosition.flags & MessageObject.POSITION_FLAG_BOTTOM) != 0); photoImage.setCrossfadeWithOldImage(false); + photoImage.setCrossfadeDuration(ImageReceiver.DEFAULT_CROSSFADE_DURATION); lastSendState = messageObject.messageOwner.send_state; lastDeleteDate = messageObject.messageOwner.destroyTime; lastViewsCount = messageObject.messageOwner.views; @@ -2666,7 +2683,9 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate currentPhotoObject = null; photoParentObject = null; currentPhotoObjectThumb = null; - currentPhotoFilter = null; + if (messageChanged || messageIdChanged || dataChanged) { + currentPhotoFilter = null; + } cancelLoading = false; buttonState = -1; miniButtonState = -1; @@ -2707,6 +2726,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate photoImage.setShouldGenerateQualityThumb(false); photoImage.setAllowDecodeSingleFrame(false); photoImage.setColorFilter(null); + photoImage.setMediaStartEndTime(-1, -1); boolean canChangeRadius = true; if (messageChanged) { @@ -3162,7 +3182,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate } } - if (smallImage && (descriptionLayout == null || descriptionLayout != null && descriptionLayout.getLineCount() == 1)) { + if (smallImage && (descriptionLayout == null || titleLayout == null && descriptionLayout != null && descriptionLayout.getLineCount() == 1)) { smallImage = false; isSmallImage = false; } @@ -3521,7 +3541,12 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate String filter = currentPhotoObject instanceof TLRPC.TL_photoStrippedSize || "s".equals(currentPhotoObject.type) ? currentPhotoFilterThumb : currentPhotoFilter; if (messageObject.mediaExists || autoDownload) { autoPlayingMedia = true; - photoImage.setImage(ImageLocation.getForDocument(document), document.size < 1024 * 32 ? null : ImageLoader.AUTOPLAY_FILTER, ImageLocation.getForDocument(currentPhotoObject, documentAttach), filter, ImageLocation.getForDocument(currentPhotoObjectThumb, documentAttach), currentPhotoFilterThumb, null, document.size, null, messageObject, 0); + TLRPC.TL_videoSize videoSize = MessageObject.getDocumentVideoThumb(document); + if (!messageObject.mediaExists && videoSize != null && (currentPhotoObject == null || currentPhotoObjectThumb == null)) { + photoImage.setImage(ImageLocation.getForDocument(document), document.size < 1024 * 32 ? null : ImageLoader.AUTOPLAY_FILTER, ImageLocation.getForDocument(videoSize, documentAttach), null, ImageLocation.getForDocument(currentPhotoObject != null ? currentPhotoObject : currentPhotoObjectThumb, documentAttach), currentPhotoObject != null ? filter : currentPhotoFilterThumb, null, document.size, null, messageObject, 0); + } else { + photoImage.setImage(ImageLocation.getForDocument(document), document.size < 1024 * 32 ? null : ImageLoader.AUTOPLAY_FILTER, ImageLocation.getForDocument(currentPhotoObject, documentAttach), filter, ImageLocation.getForDocument(currentPhotoObjectThumb, documentAttach), currentPhotoFilterThumb, null, document.size, null, messageObject, 0); + } } else { photoImage.setImage(null, null, ImageLocation.getForDocument(currentPhotoObject, documentAttach), filter, 0, null, currentMessageObject, 0); } @@ -3836,7 +3861,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate lastPoll = media.poll; lastPollResults = media.results.results; lastPollResultsVoters = media.results.total_voters; - if (!isBot && (media.poll.multiple_choice && !pollVoted && !pollClosed || media.poll.public_voters && pollVoted || pollClosed && media.results != null && media.results.total_voters != 0 && media.poll.public_voters)) { + if (media.poll.multiple_choice && !pollVoted && !pollClosed || !isBot && (media.poll.public_voters && pollVoted || pollClosed && media.results != null && media.results.total_voters != 0 && media.poll.public_voters)) { drawInstantView = true; drawInstantViewType = 8; createInstantViewButton(); @@ -3988,7 +4013,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate setMessageObjectInternal(messageObject); - if (isBot) { + if (isBot && !drawInstantView) { height -= AndroidUtilities.dp(10); } else if (media.poll.public_voters || media.poll.multiple_choice) { height += AndroidUtilities.dp(13); @@ -4341,6 +4366,8 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate photoImage.setImage(ImageLocation.getForDocument(messageObject.getDocument()), filter, ImageLocation.getForObject(currentPhotoObjectThumb, photoParentObject), "b1", messageObject.getDocument().size, isWebpSticker ? "webp" : null, parentObject, 1); + } else { + photoImage.setImage(null, null, null, null, messageObject, 0); } } else { currentPhotoObject = FileLoader.getClosestPhotoSizeWithSize(messageObject.photoThumbs, AndroidUtilities.getPhotoSize()); @@ -4401,7 +4428,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate TLRPC.PhotoSize size = currentPhotoObject != null ? currentPhotoObject : currentPhotoObjectThumb; int imageW = 0; int imageH = 0; - if (size != null) { + if (size != null && !(size instanceof TLRPC.TL_photoStrippedSize)) { imageW = size.w; imageH = size.h; } else if (documentAttach != null) { @@ -4691,6 +4718,15 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate } } + int minWidth = (int) (Theme.chat_infoPaint.measureText("100%") + AndroidUtilities.dp(48) + timeWidth); + if (currentMessagesGroup == null && (documentAttachType == DOCUMENT_ATTACH_TYPE_VIDEO || documentAttachType == DOCUMENT_ATTACH_TYPE_GIF) && photoWidth < minWidth) { + photoWidth = minWidth; + backgroundWidth = photoWidth + AndroidUtilities.dp(8); + if (!mediaBackground) { + backgroundWidth += AndroidUtilities.dp(9); + } + } + if (fixPhotoWidth && photoWidth < captionWidth + AndroidUtilities.dp(10)) { photoWidth = captionWidth + AndroidUtilities.dp(10); backgroundWidth = photoWidth + AndroidUtilities.dp(8); @@ -4698,14 +4734,31 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate backgroundWidth += AndroidUtilities.dp(9); } } - - currentPhotoFilter = currentPhotoFilterThumb = String.format(Locale.US, "%d_%d", (int) (w / AndroidUtilities.density), (int) (h / AndroidUtilities.density)); - if (messageObject.photoThumbs != null && messageObject.photoThumbs.size() > 1 || messageObject.type == MessageObject.TYPE_VIDEO || messageObject.type == 8 || messageObject.type == MessageObject.TYPE_ROUND_VIDEO) { + if (messageChanged || messageIdChanged || dataChanged) { + currentPhotoFilter = currentPhotoFilterThumb = String.format(Locale.US, "%d_%d", (int) (w / AndroidUtilities.density), (int) (h / AndroidUtilities.density)); + if (messageObject.photoThumbs != null && messageObject.photoThumbs.size() > 1 || messageObject.type == MessageObject.TYPE_VIDEO || messageObject.type == 8 || messageObject.type == MessageObject.TYPE_ROUND_VIDEO) { + if (messageObject.needDrawBluredPreview()) { + currentPhotoFilter += "_b2"; + currentPhotoFilterThumb += "_b2"; + } else { + currentPhotoFilterThumb += "_b"; + } + } + } else { + String filterNew = String.format(Locale.US, "%d_%d", (int) (w / AndroidUtilities.density), (int) (h / AndroidUtilities.density)); if (messageObject.needDrawBluredPreview()) { - currentPhotoFilter += "_b2"; - currentPhotoFilterThumb += "_b2"; - } else { - currentPhotoFilterThumb += "_b"; + filterNew += "_b2"; + } + if (filterNew != currentPhotoFilter) { + ImageLocation location = ImageLocation.getForObject(currentPhotoObject, photoParentObject); + if (location != null) { + String key = location.getKey(photoParentObject, null, false) + "@" + currentPhotoFilter; + if (ImageLoader.getInstance().isInMemCache(key, false)) { + currentPhotoObjectThumb = currentPhotoObject; + currentPhotoFilterThumb = currentPhotoFilter; + currentPhotoFilter = filterNew; + } + } } } @@ -4731,22 +4784,20 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate } } - if (MessageObject.isGifDocument(messageObject.getDocument())) { - if (currentPhotoObjectThumb != null && currentPhotoObjectThumb instanceof TLRPC.TL_photoStrippedSize) { - String key = ImageLocation.getStippedKey(currentMessageObject, currentMessageObject, currentPhotoObjectThumb) + "@" + currentPhotoFilterThumb; - if (!ImageLoader.getInstance().isInMemCache(key, false)) { - currentPhotoObjectThumb = FileLoader.getClosestPhotoSizeWithSize(messageObject.getDocument().thumbs, 320); - } - } else { - currentPhotoObjectThumb = FileLoader.getClosestPhotoSizeWithSize(messageObject.getDocument().thumbs, 320); - } - } - if (autoPlayingMedia) { photoImage.setAllowStartAnimation(true); photoImage.startAnimation(); TLRPC.Document document = messageObject.getDocument(); - photoImage.setImage(ImageLocation.getForDocument(document), ImageLoader.AUTOPLAY_FILTER, ImageLocation.getForObject(currentPhotoObject, photoParentObject), currentPhotoFilter, ImageLocation.getForDocument(currentPhotoObjectThumb, document), currentPhotoFilterThumb, null, messageObject.getDocument().size, null, messageObject, 0); + + if (currentMessageObject.videoEditedInfo != null && currentMessageObject.videoEditedInfo.canAutoPlaySourceVideo()) { + photoImage.setImage(ImageLocation.getForPath(currentMessageObject.videoEditedInfo.originalPath), ImageLoader.AUTOPLAY_FILTER, ImageLocation.getForObject(currentPhotoObject, photoParentObject), currentPhotoFilter, ImageLocation.getForDocument(currentPhotoObjectThumb, document), currentPhotoFilterThumb, null, messageObject.getDocument().size, null, messageObject, 0); + photoImage.setMediaStartEndTime(currentMessageObject.videoEditedInfo.startTime / 1000, currentMessageObject.videoEditedInfo.endTime / 1000); + } else { + if (!messageIdChanged && !dataChanged) { + photoImage.setCrossfadeWithOldImage(true); + } + photoImage.setImage(ImageLocation.getForDocument(document), ImageLoader.AUTOPLAY_FILTER, ImageLocation.getForObject(currentPhotoObject, photoParentObject), currentPhotoFilter, ImageLocation.getForDocument(currentPhotoObjectThumb, document), currentPhotoFilterThumb, null, messageObject.getDocument().size, null, messageObject, 0); + } } else if (messageObject.type == MessageObject.TYPE_PHOTO) { if (messageObject.useCustomPhoto) { photoImage.setImageBitmap(getResources().getDrawable(R.drawable.theme_preview_image)); @@ -4783,23 +4834,55 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate localFile = 2; } boolean autoDownload = false; - if (MessageObject.isGifDocument(messageObject.getDocument()) || messageObject.type == MessageObject.TYPE_ROUND_VIDEO) { + TLRPC.Document document = messageObject.getDocument(); + if (MessageObject.isGifDocument(document) || messageObject.type == MessageObject.TYPE_ROUND_VIDEO) { autoDownload = DownloadController.getInstance(currentAccount).canDownloadMedia(currentMessageObject); } - if (!messageObject.isSending() && !messageObject.isEditing() && (localFile != 0 || FileLoader.getInstance(currentAccount).isLoadingFile(fileName) || autoDownload)) { + TLRPC.TL_videoSize videoSize = MessageObject.getDocumentVideoThumb(document); + if (((MessageObject.isGifDocument(document) && messageObject.videoEditedInfo == null) || (!messageObject.isSending() && !messageObject.isEditing())) && (localFile != 0 || FileLoader.getInstance(currentAccount).isLoadingFile(fileName) || autoDownload)) { if (localFile != 1 && !messageObject.needDrawBluredPreview() && (localFile != 0 || messageObject.canStreamVideo() && autoDownload)) { autoPlayingMedia = true; - photoImage.setImage(ImageLocation.getForDocument(messageObject.getDocument()), ImageLoader.AUTOPLAY_FILTER, ImageLocation.getForObject(currentPhotoObject, photoParentObject), currentPhotoFilter, ImageLocation.getForObject(currentPhotoObjectThumb, photoParentObject), currentPhotoFilterThumb, null, messageObject.getDocument().size, null, messageObject, 0); + if (!messageIdChanged) { + photoImage.setCrossfadeWithOldImage(true); + photoImage.setCrossfadeDuration(250); + } + if (localFile == 0 && videoSize != null && (currentPhotoObject == null || currentPhotoObjectThumb == null)) { + photoImage.setImage(ImageLocation.getForDocument(document), ImageLoader.AUTOPLAY_FILTER, ImageLocation.getForDocument(videoSize, documentAttach), null, ImageLocation.getForDocument(currentPhotoObject != null ? currentPhotoObject : currentPhotoObjectThumb, documentAttach), currentPhotoObject != null ? currentPhotoFilter : currentPhotoFilterThumb, null, document.size, null, messageObject, 0); + } else { + photoImage.setImage(ImageLocation.getForDocument(document), ImageLoader.AUTOPLAY_FILTER, ImageLocation.getForObject(currentPhotoObject, photoParentObject), currentPhotoFilter, ImageLocation.getForObject(currentPhotoObjectThumb, photoParentObject), currentPhotoFilterThumb, null, document.size, null, messageObject, 0); + } } else if (localFile == 1) { - photoImage.setImage(ImageLocation.getForPath(messageObject.isSendError() ? null : messageObject.messageOwner.attachPath), null, ImageLocation.getForObject(currentPhotoObjectThumb, photoParentObject), currentPhotoFilterThumb, 0, null, messageObject, 0); + photoImage.setImage(ImageLocation.getForPath(messageObject.isSendError() ? null : messageObject.messageOwner.attachPath), null, ImageLocation.getForObject(currentPhotoObject, photoParentObject), currentPhotoFilter, ImageLocation.getForObject(currentPhotoObjectThumb, photoParentObject), currentPhotoFilterThumb, null, 0, null, messageObject, 0); } else { - photoImage.setImage(ImageLocation.getForDocument(messageObject.getDocument()), null, ImageLocation.getForObject(currentPhotoObject, photoParentObject), currentPhotoFilter, ImageLocation.getForObject(currentPhotoObjectThumb, photoParentObject), currentPhotoFilterThumb, null, messageObject.getDocument().size, null, messageObject, 0); + if (videoSize != null && (currentPhotoObject == null || currentPhotoObjectThumb == null)) { + photoImage.setImage(ImageLocation.getForDocument(document), null, ImageLocation.getForDocument(videoSize, documentAttach), null, ImageLocation.getForDocument(currentPhotoObject != null ? currentPhotoObject : currentPhotoObjectThumb, documentAttach), currentPhotoObject != null ? currentPhotoFilter : currentPhotoFilterThumb, null, document.size, null, messageObject, 0); + } else { + photoImage.setImage(ImageLocation.getForDocument(document), null, ImageLocation.getForObject(currentPhotoObject, photoParentObject), currentPhotoFilter, ImageLocation.getForObject(currentPhotoObjectThumb, photoParentObject), currentPhotoFilterThumb, null, document.size, null, messageObject, 0); + } } } else { - photoImage.setImage(ImageLocation.getForObject(currentPhotoObject, photoParentObject), currentPhotoFilter, ImageLocation.getForObject(currentPhotoObjectThumb, photoParentObject), currentPhotoFilterThumb, 0, null, messageObject, 0); + if (messageObject.videoEditedInfo != null && messageObject.type == MessageObject.TYPE_ROUND_VIDEO && !currentMessageObject.needDrawBluredPreview()) { + photoImage.setImage(ImageLocation.getForPath(messageObject.videoEditedInfo.originalPath), currentPhotoFilter, ImageLocation.getForObject(currentPhotoObjectThumb, photoParentObject), currentPhotoFilterThumb, 0, null, messageObject, 0); + photoImage.setMediaStartEndTime(currentMessageObject.videoEditedInfo.startTime / 1000, currentMessageObject.videoEditedInfo.endTime / 1000); + } else { + if (!messageIdChanged && !currentMessageObject.needDrawBluredPreview()) { + photoImage.setCrossfadeWithOldImage(true); + photoImage.setCrossfadeDuration(250); + } + photoImage.setImage(ImageLocation.getForObject(currentPhotoObject, photoParentObject), currentPhotoFilter, ImageLocation.getForObject(currentPhotoObjectThumb, photoParentObject), currentPhotoFilterThumb, 0, null, messageObject, 0); + } } } else { - photoImage.setImage(ImageLocation.getForObject(currentPhotoObject, photoParentObject), currentPhotoFilter, ImageLocation.getForObject(currentPhotoObjectThumb, photoParentObject), currentPhotoFilterThumb, 0, null, messageObject, currentMessageObject.shouldEncryptPhotoOrVideo() ? 2 : 0); + if (messageObject.videoEditedInfo != null && messageObject.type == MessageObject.TYPE_ROUND_VIDEO && !currentMessageObject.needDrawBluredPreview()) { + photoImage.setImage(ImageLocation.getForPath(messageObject.videoEditedInfo.originalPath), currentPhotoFilter, ImageLocation.getForObject(currentPhotoObjectThumb, photoParentObject), currentPhotoFilterThumb, 0, null, messageObject, currentMessageObject.shouldEncryptPhotoOrVideo() ? 2 : 0); + photoImage.setMediaStartEndTime(currentMessageObject.videoEditedInfo.startTime / 1000, currentMessageObject.videoEditedInfo.endTime / 1000); + } else { + if (!messageIdChanged && !currentMessageObject.needDrawBluredPreview()) { + photoImage.setCrossfadeWithOldImage(true); + photoImage.setCrossfadeDuration(250); + } + photoImage.setImage(ImageLocation.getForObject(currentPhotoObject, photoParentObject), currentPhotoFilter, ImageLocation.getForObject(currentPhotoObjectThumb, photoParentObject), currentPhotoFilterThumb, 0, null, messageObject, currentMessageObject.shouldEncryptPhotoOrVideo() ? 2 : 0); + } } } setMessageObjectInternal(messageObject); @@ -5305,6 +5388,9 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate @Override public void invalidate() { + if (currentMessageObject == null) { + return; + } super.invalidate(); if (invalidatesParent && getParent() != null) { View parent = (View) getParent(); @@ -6096,14 +6182,14 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate if (currentMessageObject.type != 0) { x -= AndroidUtilities.dp(2); } - photoImage.setImageCoords(x, photoImage.getImageY(), photoImage.getImageWidth(), photoImage.getImageHeight()); + photoImage.setImageCoords((float) x, photoImage.getImageY(), photoImage.getImageWidth(), photoImage.getImageHeight()); buttonX = (int) (x + (photoImage.getImageWidth() - AndroidUtilities.dp(48)) / 2.0f); - buttonY = photoImage.getImageY() + (photoImage.getImageHeight() - AndroidUtilities.dp(48)) / 2; + buttonY = (int) (photoImage.getImageY() + (photoImage.getImageHeight() - AndroidUtilities.dp(48)) / 2); radialProgress.setProgressRect(buttonX, buttonY, buttonX + AndroidUtilities.dp(48), buttonY + AndroidUtilities.dp(48)); deleteProgressRect.set(buttonX + AndroidUtilities.dp(5), buttonY + AndroidUtilities.dp(5), buttonX + AndroidUtilities.dp(43), buttonY + AndroidUtilities.dp(43)); if (documentAttachType == DOCUMENT_ATTACH_TYPE_VIDEO || documentAttachType == DOCUMENT_ATTACH_TYPE_GIF) { - videoButtonX = photoImage.getImageX() + AndroidUtilities.dp(8); - videoButtonY = photoImage.getImageY() + AndroidUtilities.dp(8); + videoButtonX = (int) (photoImage.getImageX() + AndroidUtilities.dp(8)); + videoButtonY = (int) (photoImage.getImageY() + AndroidUtilities.dp(8)); videoRadialProgress.setProgressRect(videoButtonX, videoButtonY, videoButtonX + AndroidUtilities.dp(24), videoButtonY + AndroidUtilities.dp(24)); } } @@ -6253,43 +6339,14 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate textX += diff; } } - if (currentMessageObject.textLayoutBlocks != null && !currentMessageObject.textLayoutBlocks.isEmpty()) { - if (fullyDraw) { - firstVisibleBlockNum = 0; - lastVisibleBlockNum = currentMessageObject.textLayoutBlocks.size(); - } - if (firstVisibleBlockNum >= 0) { - for (int a = firstVisibleBlockNum; a <= lastVisibleBlockNum; a++) { - if (a >= currentMessageObject.textLayoutBlocks.size()) { - break; - } - MessageObject.TextLayoutBlock block = currentMessageObject.textLayoutBlocks.get(a); - canvas.save(); - canvas.translate(textX - (block.isRtl() ? (int) Math.ceil(currentMessageObject.textXOffset) : 0), textY + block.textYOffset); - if (pressedLink != null && a == linkBlockNum) { - for (int b = 0; b < urlPath.size(); b++) { - canvas.drawPath(urlPath.get(b), Theme.chat_urlPaint); - } - } - if (a == linkSelectionBlockNum && !urlPathSelection.isEmpty()) { - for (int b = 0; b < urlPathSelection.size(); b++) { - canvas.drawPath(urlPathSelection.get(b), Theme.chat_textSearchSelectionPaint); - } - } - - if (delegate.getTextSelectionHelper() != null) { - delegate.getTextSelectionHelper().draw(currentMessageObject, block, canvas); - } - try { - block.textLayout.draw(canvas); - } catch (Exception e) { - FileLog.e(e); - } - canvas.restore(); - } - } + if (transitionParams.animateChangeProgress != 1f && transitionParams.animateMessageText) { + drawMessageText(canvas, transitionParams.animateOutTextBlocks, false, (1f - transitionParams.animateChangeProgress)); + drawMessageText(canvas, currentMessageObject.textLayoutBlocks, true, transitionParams.animateChangeProgress); + } else { + drawMessageText(canvas, currentMessageObject.textLayoutBlocks, true, 1f); } + if (hasLinkPreview || hasGamePreview || hasInvoicePreview) { int startY; int linkX; @@ -6454,13 +6511,13 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate } } if (documentAttachType == DOCUMENT_ATTACH_TYPE_VIDEO || documentAttachType == DOCUMENT_ATTACH_TYPE_GIF) { - videoButtonX = photoImage.getImageX() + AndroidUtilities.dp(8); - videoButtonY = photoImage.getImageY() + AndroidUtilities.dp(8); + videoButtonX = (int) (photoImage.getImageX() + AndroidUtilities.dp(8)); + videoButtonY = (int) (photoImage.getImageY() + AndroidUtilities.dp(8)); videoRadialProgress.setProgressRect(videoButtonX, videoButtonY, videoButtonX + AndroidUtilities.dp(24), videoButtonY + AndroidUtilities.dp(24)); } if (photosCountLayout != null && photoImage.getVisible()) { - int x = photoImage.getImageX() + photoImage.getImageWidth() - AndroidUtilities.dp(8) - photosCountWidth; - int y = photoImage.getImageY() + photoImage.getImageHeight() - AndroidUtilities.dp(19); + int x = (int) (photoImage.getImageX() + photoImage.getImageWidth() - AndroidUtilities.dp(8) - photosCountWidth); + int y = (int) (photoImage.getImageY() + photoImage.getImageHeight() - AndroidUtilities.dp(19)); rect.set(x - AndroidUtilities.dp(4), y - AndroidUtilities.dp(1.5f), x + photosCountWidth + AndroidUtilities.dp(4), y + AndroidUtilities.dp(14.5f)); int oldAlpha = Theme.chat_timeBackgroundPaint.getAlpha(); Theme.chat_timeBackgroundPaint.setAlpha((int) (oldAlpha * controlsAlpha)); @@ -6478,8 +6535,8 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate int y; if (hasGamePreview || hasInvoicePreview || documentAttachType == DOCUMENT_ATTACH_TYPE_WALLPAPER) { if (drawPhotoImage) { - x = photoImage.getImageX() + AndroidUtilities.dp(8.5f); - y = photoImage.getImageY() + AndroidUtilities.dp(6); + x = (int) (photoImage.getImageX() + AndroidUtilities.dp(8.5f)); + y = (int) (photoImage.getImageY() + AndroidUtilities.dp(6)); int height = AndroidUtilities.dp(documentAttachType == DOCUMENT_ATTACH_TYPE_WALLPAPER ? 14.5f : 16.5f); rect.set(x - AndroidUtilities.dp(4), y - AndroidUtilities.dp(1.5f), x + durationWidth + AndroidUtilities.dp(4), y + height); canvas.drawRoundRect(rect, AndroidUtilities.dp(4), AndroidUtilities.dp(4), Theme.chat_timeBackgroundPaint); @@ -6488,8 +6545,8 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate y = linkPreviewY; } } else { - x = photoImage.getImageX() + photoImage.getImageWidth() - AndroidUtilities.dp(8) - durationWidth; - y = photoImage.getImageY() + photoImage.getImageHeight() - AndroidUtilities.dp(19); + x = (int) (photoImage.getImageX() + photoImage.getImageWidth() - AndroidUtilities.dp(8) - durationWidth); + y = (int) (photoImage.getImageY() + photoImage.getImageHeight() - AndroidUtilities.dp(19)); rect.set(x - AndroidUtilities.dp(4), y - AndroidUtilities.dp(1.5f), x + durationWidth + AndroidUtilities.dp(4), y + AndroidUtilities.dp(14.5f)); canvas.drawRoundRect(rect, AndroidUtilities.dp(4), AndroidUtilities.dp(4), Theme.chat_timeBackgroundPaint); } @@ -6551,8 +6608,8 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate drawTime = true; } else { if (currentMessageObject.type == MessageObject.TYPE_ROUND_VIDEO && Theme.chat_roundVideoShadow != null) { - int x = photoImage.getImageX() - AndroidUtilities.dp(3); - int y = photoImage.getImageY() - AndroidUtilities.dp(2); + int x = (int) (photoImage.getImageX() - AndroidUtilities.dp(3)); + int y = (int) (photoImage.getImageY() - AndroidUtilities.dp(2)); Theme.chat_roundVideoShadow.setAlpha(255/*(int) (photoImage.getCurrentAlpha() * 255)*/); Theme.chat_roundVideoShadow.setBounds(x, y, x + AndroidUtilities.roundMessageSize + AndroidUtilities.dp(6), y + AndroidUtilities.roundMessageSize + AndroidUtilities.dp(6)); Theme.chat_roundVideoShadow.draw(canvas); @@ -6577,7 +6634,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate setDrawableBounds(iconDrawable, rect.centerX() - iconDrawable.getIntrinsicWidth() / 2, rect.centerY() - iconDrawable.getIntrinsicHeight() / 2); iconDrawable.draw(canvas); } - drawPhotoCheckBox = photoCheckBox != null && (checkBoxVisible || photoCheckBox.getProgress() != 0 || checkBoxAnimationInProgress) && currentMessagesGroup != null && currentMessagesGroup.messages.size() > 1; + drawPhotoCheckBox = photoCheckBox != null && (checkBoxVisible || photoCheckBox.getProgress() != 0 || checkBoxAnimationInProgress) && currentMessagesGroup != null; if (drawPhotoCheckBox && (photoCheckBox.isChecked() || photoCheckBox.getProgress() != 0 || checkBoxAnimationInProgress) && (!textIsSelectionMode())) { Theme.chat_replyLinePaint.setColor(Theme.getColor(currentMessageObject.isOutOwner() ? Theme.key_chat_outBubbleSelected : Theme.key_chat_inBubbleSelected)); rect.set(photoImage.getImageX(), photoImage.getImageY(), photoImage.getImageX2(), photoImage.getImageY2()); @@ -6634,7 +6691,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate if (photoImage.getVisible() && !hasGamePreview && !currentMessageObject.needDrawBluredPreview()) { int oldAlpha = ((BitmapDrawable) Theme.chat_msgMediaMenuDrawable).getPaint().getAlpha(); Theme.chat_msgMediaMenuDrawable.setAlpha((int) (oldAlpha * controlsAlpha)); - setDrawableBounds(Theme.chat_msgMediaMenuDrawable, otherX = photoImage.getImageX() + photoImage.getImageWidth() - AndroidUtilities.dp(14), otherY = photoImage.getImageY() + AndroidUtilities.dp(8.1f)); + setDrawableBounds(Theme.chat_msgMediaMenuDrawable, otherX = (int) (photoImage.getImageX() + photoImage.getImageWidth() - AndroidUtilities.dp(14)), otherY = (int) (photoImage.getImageY() + AndroidUtilities.dp(8.1f))); Theme.chat_msgMediaMenuDrawable.draw(canvas); Theme.chat_msgMediaMenuDrawable.setAlpha(oldAlpha); } @@ -6737,6 +6794,17 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate Theme.chat_audioTimePaint.setColor(Theme.getColor(isDrawSelectionBackground() ? Theme.key_chat_inAudioDurationSelectedText : Theme.key_chat_inAudioDurationText)); radialProgress.setProgressColor(Theme.getColor(isDrawSelectionBackground() || buttonPressed != 0 ? Theme.key_chat_inAudioSelectedProgress : Theme.key_chat_inAudioProgress)); } + AudioVisualizerDrawable audioVisualizerDrawable; + if (MediaController.getInstance().isPlayingMessage(currentMessageObject)) { + audioVisualizerDrawable = Theme.getCurrentAudiVisualizerDrawable(); + } else { + audioVisualizerDrawable = Theme.getAnimatedOutAudioVisualizerDrawable(currentMessageObject); + } + + if (audioVisualizerDrawable != null) { + audioVisualizerDrawable.setParentView(this); + audioVisualizerDrawable.draw(canvas, buttonX + AndroidUtilities.dp(22), buttonY + AndroidUtilities.dp(22), currentMessageObject.isOutOwner()); + } radialProgress.setBackgroundDrawable(isDrawSelectionBackground() ? currentBackgroundSelectedDrawable : currentBackgroundDrawable); radialProgress.draw(canvas); @@ -6762,26 +6830,16 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate } if (captionLayout != null) { - if (currentMessageObject.type == MessageObject.TYPE_PHOTO || documentAttachType == DOCUMENT_ATTACH_TYPE_VIDEO || currentMessageObject.type == 8) { - captionX = photoImage.getImageX() + AndroidUtilities.dp(5) + captionOffsetX; - captionY = photoImage.getImageY() + photoImage.getImageHeight() + AndroidUtilities.dp(6); - } else if (hasOldCaptionPreview) { - captionX = backgroundDrawableLeft + AndroidUtilities.dp(currentMessageObject.isOutOwner() ? 11 : 17) + captionOffsetX; - captionY = totalHeight - captionHeight - AndroidUtilities.dp(drawPinnedTop ? 9 : 10) - linkPreviewHeight - AndroidUtilities.dp(17); - } else { - captionX = backgroundDrawableLeft + AndroidUtilities.dp(currentMessageObject.isOutOwner() || mediaBackground || !mediaBackground && drawPinnedBottom ? 11 : 17) + captionOffsetX; - captionY = totalHeight - captionHeight - AndroidUtilities.dp(drawPinnedTop ? 9 : 10); - } - captionX += getExtraTextX(); + updateCaptionLayout(); } - if (currentPosition == null) { - drawCaptionLayout(canvas, false); + if (currentPosition == null && !transitionParams.transformGroupToSingleMessage) { + drawCaptionLayout(canvas, false, 1f); } if (hasOldCaptionPreview) { int linkX; if (currentMessageObject.type == MessageObject.TYPE_PHOTO || documentAttachType == DOCUMENT_ATTACH_TYPE_VIDEO || currentMessageObject.type == 8) { - linkX = photoImage.getImageX() + AndroidUtilities.dp(5); + linkX = (int) (photoImage.getImageX() + AndroidUtilities.dp(5)); } else { linkX = backgroundDrawableLeft + AndroidUtilities.dp(currentMessageObject.isOutOwner() ? 11 : 17); } @@ -6844,14 +6902,14 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate int subtitleY; if (drawPhotoImage) { if (currentMessageObject.type == 0) { - setDrawableBounds(menuDrawable, otherX = photoImage.getImageX() + backgroundWidth - AndroidUtilities.dp(56), otherY = photoImage.getImageY() + AndroidUtilities.dp(4)); + setDrawableBounds(menuDrawable, otherX = (int) (photoImage.getImageX() + backgroundWidth - AndroidUtilities.dp(56)), otherY = (int) (photoImage.getImageY() + AndroidUtilities.dp(4))); } else { - setDrawableBounds(menuDrawable, otherX = photoImage.getImageX() + backgroundWidth - AndroidUtilities.dp(40), otherY = photoImage.getImageY() + AndroidUtilities.dp(4)); + setDrawableBounds(menuDrawable, otherX = (int) (photoImage.getImageX() + backgroundWidth - AndroidUtilities.dp(40)), otherY = (int) (photoImage.getImageY() + AndroidUtilities.dp(4))); } - x = photoImage.getImageX() + photoImage.getImageWidth() + AndroidUtilities.dp(10); - titleY = photoImage.getImageY() + AndroidUtilities.dp(8); - subtitleY = photoImage.getImageY() + (docTitleLayout != null ? docTitleLayout.getLineBottom(docTitleLayout.getLineCount() - 1) + AndroidUtilities.dp(13) : AndroidUtilities.dp(8)); + x = (int) (photoImage.getImageX() + photoImage.getImageWidth() + AndroidUtilities.dp(10)); + titleY = (int) (photoImage.getImageY() + AndroidUtilities.dp(8)); + subtitleY = (int) (photoImage.getImageY() + (docTitleLayout != null ? docTitleLayout.getLineBottom(docTitleLayout.getLineCount() - 1) + AndroidUtilities.dp(13) : AndroidUtilities.dp(8))); if (!imageDrawn) { if (currentMessageObject.isOutOwner()) { radialProgress.setColors(Theme.key_chat_outLoader, Theme.key_chat_outLoaderSelected, Theme.key_chat_outMediaIcon, Theme.key_chat_outMediaIconSelected); @@ -6933,8 +6991,8 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate if (currentMessageObject.type == 4 && !(currentMessageObject.messageOwner.media instanceof TLRPC.TL_messageMediaGeoLive) && currentMapProvider == 2 && photoImage.hasNotThumb()) { int w = (int) (Theme.chat_redLocationIcon.getIntrinsicWidth() * 0.8f); int h = (int) (Theme.chat_redLocationIcon.getIntrinsicHeight() * 0.8f); - int x = photoImage.getImageX() + (photoImage.getImageWidth() - w) / 2; - int y = photoImage.getImageY() + (photoImage.getImageHeight() / 2 - h); + int x = (int) (photoImage.getImageX() + (photoImage.getImageWidth() - w) / 2); + int y = (int) (photoImage.getImageY() + (photoImage.getImageHeight() / 2 - h)); Theme.chat_redLocationIcon.setAlpha((int) (255 * photoImage.getCurrentAlpha())); Theme.chat_redLocationIcon.setBounds(x, y, x + w, y + h); Theme.chat_redLocationIcon.draw(canvas); @@ -7001,6 +7059,105 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate } } } + transitionParams.recordDrawingState(); + } + + private void drawMessageText(Canvas canvas, ArrayList textLayoutBlocks, boolean origin, float alpha) { + if (textLayoutBlocks != null && !textLayoutBlocks.isEmpty()) { + int oldAlpha = 0; + int firstVisibleBlockNum; + int lastVisibleBlockNum; + if (origin) { + if (fullyDraw) { + this.firstVisibleBlockNum = 0; + this.lastVisibleBlockNum = textLayoutBlocks.size(); + } + firstVisibleBlockNum = this.firstVisibleBlockNum; + lastVisibleBlockNum = this.lastVisibleBlockNum; + } else { + firstVisibleBlockNum = 0; + lastVisibleBlockNum = textLayoutBlocks.size(); + } + + if (firstVisibleBlockNum >= 0) { + if (alpha != 1f) { + if (currentBackgroundDrawable != null) { + int top = currentBackgroundDrawable.getBounds().top; + int bottom = currentBackgroundDrawable.getBounds().bottom; + + if (getY() < 0) { + top = (int) -getY(); + } + if (getY() + getMeasuredHeight() > parentHeight) { + bottom = (int) (parentHeight - getY()); + } + rect.set( + currentBackgroundDrawable.getBounds().left, top, + currentBackgroundDrawable.getBounds().right, bottom + ); + } else { + rect.set(0, 0, getMeasuredWidth(), getMeasuredHeight()); + } + canvas.saveLayerAlpha(rect, (int) (alpha * 255), Canvas.ALL_SAVE_FLAG); + } + for (int a = firstVisibleBlockNum; a <= lastVisibleBlockNum; a++) { + if (a >= textLayoutBlocks.size()) { + break; + } + MessageObject.TextLayoutBlock block = textLayoutBlocks.get(a); + canvas.save(); + canvas.translate(textX - (block.isRtl() ? (int) Math.ceil(currentMessageObject.textXOffset) : 0), textY + block.textYOffset); + if (pressedLink != null && a == linkBlockNum) { + for (int b = 0; b < urlPath.size(); b++) { + canvas.drawPath(urlPath.get(b), Theme.chat_urlPaint); + } + } + if (a == linkSelectionBlockNum && !urlPathSelection.isEmpty()) { + for (int b = 0; b < urlPathSelection.size(); b++) { + canvas.drawPath(urlPathSelection.get(b), Theme.chat_textSearchSelectionPaint); + } + } + + if (delegate.getTextSelectionHelper() != null && transitionParams.animateChangeProgress == 1f) { + delegate.getTextSelectionHelper().draw(currentMessageObject, block, canvas); + } + try { + block.textLayout.draw(canvas); + } catch (Exception e) { + FileLog.e(e); + } + canvas.restore(); + } + + if (alpha != 1f) { + canvas.restore(); + } + } + } + } + + public void updateCaptionLayout() { + if (currentMessageObject.type == MessageObject.TYPE_PHOTO || documentAttachType == DOCUMENT_ATTACH_TYPE_VIDEO || currentMessageObject.type == 8) { + float x, y, h; + if (transitionParams.imageChangeBoundsTransition) { + x = transitionParams.animateToImageX; + y = transitionParams.animateToImageY; + h = transitionParams.animateToImageH; + } else { + x = photoImage.getImageX(); + y = photoImage.getImageY(); + h = photoImage.getImageHeight(); + } + captionX = x + AndroidUtilities.dp(5) + captionOffsetX; + captionY = y + h + AndroidUtilities.dp(6); + } else if (hasOldCaptionPreview) { + captionX = backgroundDrawableLeft + AndroidUtilities.dp(currentMessageObject.isOutOwner() ? 11 : 17) + captionOffsetX; + captionY = totalHeight - captionHeight - AndroidUtilities.dp(drawPinnedTop ? 9 : 10) - linkPreviewHeight - AndroidUtilities.dp(17); + } else { + captionX = backgroundDrawableLeft + AndroidUtilities.dp(currentMessageObject.isOutOwner() || mediaBackground || !mediaBackground && drawPinnedBottom ? 11 : 17) + captionOffsetX; + captionY = totalHeight - captionHeight - AndroidUtilities.dp(drawPinnedTop ? 9 : 10); + } + captionX += getExtraTextX(); } private boolean textIsSelectionMode() { @@ -7582,7 +7739,9 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate photoImage.setImage(ImageLocation.getForObject(currentPhotoObject, photoParentObject), currentPhotoFilter, ImageLocation.getForObject(currentPhotoObjectThumb, photoParentObject), currentPhotoFilterThumb, currentPhotoObject.size, null, currentMessageObject, currentMessageObject.shouldEncryptPhotoOrVideo() ? 2 : 0); } else if (currentMessageObject.type == 8) { FileLoader.getInstance(currentAccount).loadFile(documentAttach, currentMessageObject, 1, 0); - createLoadingProgressLayout(documentAttach); + if (currentMessageObject.loadedFileSize > 0) { + createLoadingProgressLayout(documentAttach); + } } else if (currentMessageObject.isRoundVideo()) { if (currentMessageObject.isSecretMedia()) { FileLoader.getInstance(currentAccount).loadFile(currentMessageObject.getDocument(), currentMessageObject, 1, 1); @@ -7595,16 +7754,22 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate } } else if (currentMessageObject.type == 9) { FileLoader.getInstance(currentAccount).loadFile(documentAttach, currentMessageObject, 1, 0); - createLoadingProgressLayout(documentAttach); + if (currentMessageObject.loadedFileSize > 0) { + createLoadingProgressLayout(documentAttach); + } } else if (documentAttachType == DOCUMENT_ATTACH_TYPE_VIDEO) { FileLoader.getInstance(currentAccount).loadFile(documentAttach, currentMessageObject, 1, currentMessageObject.shouldEncryptPhotoOrVideo() ? 2 : 0); - createLoadingProgressLayout(currentMessageObject.getDocument()); + if (currentMessageObject.loadedFileSize > 0) { + createLoadingProgressLayout(currentMessageObject.getDocument()); + } } else if (currentMessageObject.type == 0 && documentAttachType != DOCUMENT_ATTACH_TYPE_NONE) { if (documentAttachType == DOCUMENT_ATTACH_TYPE_GIF) { photoImage.setForceLoading(true); photoImage.setImage(ImageLocation.getForDocument(documentAttach), null, ImageLocation.getForDocument(currentPhotoObject, documentAttach), currentPhotoFilterThumb, documentAttach.size, null, currentMessageObject, 0); currentMessageObject.gifState = 2; - createLoadingProgressLayout(currentMessageObject.getDocument()); + if (currentMessageObject.loadedFileSize > 0) { + createLoadingProgressLayout(currentMessageObject.getDocument()); + } } else if (documentAttachType == DOCUMENT_ATTACH_TYPE_DOCUMENT) { FileLoader.getInstance(currentAccount).loadFile(documentAttach, currentMessageObject, 0, 0); } else if (documentAttachType == DOCUMENT_ATTACH_TYPE_WALLPAPER) { @@ -7919,6 +8084,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate String str; int w; w = (int) Math.ceil(Theme.chat_infoPaint.measureText(maxAvailableString)); + boolean fullWidth = true; if (documentAttachType == DOCUMENT_ATTACH_TYPE_DOCUMENT) { int max = Math.max(this.infoWidth, docTitleWidth); if (w <= max) { @@ -7927,7 +8093,6 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate str = AndroidUtilities.formatFileSize(loadedSize); } } else { - boolean fullWidth = true; if (currentPosition != null) { int mask = MessageObject.POSITION_FLAG_LEFT | MessageObject.POSITION_FLAG_RIGHT; fullWidth = (currentPosition.flags & mask) == mask; @@ -7944,7 +8109,15 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate } } w = (int) Math.ceil(Theme.chat_infoPaint.measureText(str)); - + if (fullWidth && w > backgroundWidth - AndroidUtilities.dp(48)) { + int percent = (int) (Math.min(1f, loadedSize / (float) totalSize) * 100); + if (percent >= 100) { + str = "100%"; + } else { + str = String.format(Locale.US, "%2d%%", percent); + } + w = (int) Math.ceil(Theme.chat_infoPaint.measureText(str)); + } loadingProgressLayout = new StaticLayout(str, Theme.chat_infoPaint, w, Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false); } @@ -7996,7 +8169,6 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate if (currentMessageObject.isFromUser()) { author = MessagesController.getInstance(currentAccount).getUser(messageObject.messageOwner.from_id); } - boolean edited; if (messageObject.scheduled || messageObject.isLiveLocation() || messageObject.messageOwner.edit_hide || messageObject.getDialogId() == 777000 || messageObject.messageOwner.via_bot_id != 0 || messageObject.messageOwner.via_bot_name != null || author != null && author.bot) { edited = false; } else if (currentPosition == null || currentMessagesGroup == null) { @@ -8076,7 +8248,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate } private boolean checkNeedDrawShareButton(MessageObject messageObject) { - if (currentPosition != null && !currentPosition.last) { + if ((currentPosition != null && !currentPosition.last) || currentMessageObject.deleted) { return false; } else if (messageObject.messageOwner.fwd_from != null && !messageObject.isOutOwner() && messageObject.messageOwner.fwd_from.saved_from_peer != null && messageObject.getDialogId() == UserConfig.getInstance(currentAccount).getClientUserId()) { drwaShareGoIcon = true; @@ -8575,6 +8747,18 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate return checkBoxTranslation; } + public boolean shouldDrawAlphaLayer() { + return (currentMessagesGroup == null || !currentMessagesGroup.transitionParams.backgroundChangeBounds) && getAlpha() != 1f; + } + + public float getCaptionX() { + return captionX; + } + + public boolean isDrawPinnedBottom() { + return mediaBackground || drawPinnedBottom; + } + public void drawCheckBox(Canvas canvas) { if (currentMessageObject != null && !currentMessageObject.isSending() && !currentMessageObject.isSendError() && checkBox != null && (checkBoxVisible || checkBoxAnimationInProgress) && (currentPosition == null || (currentPosition.flags & MessageObject.POSITION_FLAG_BOTTOM) != 0 && (currentPosition.flags & MessageObject.POSITION_FLAG_LEFT) != 0)) { canvas.save(); @@ -8599,6 +8783,12 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate } } + public void setDrawableBoundsInner(Drawable drawable, int x, int y, int w, int h) { + if (drawable != null) { + drawable.setBounds(x + transitionParams.deltaLeft, y + transitionParams.deltaTop, x + w + transitionParams.deltaRight, y + h + transitionParams.deltaBottom); + } + } + @SuppressLint("WrongCall") @Override protected void onDraw(Canvas canvas) { @@ -8607,7 +8797,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate } if (!wasLayout && !animationRunning) { - requestLayout(); + forceLayout(); return; } if (!wasLayout && animationRunning) { @@ -8671,9 +8861,11 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate if (!mediaBackground && !drawPinnedBottom) { currentBackgroundDrawable = Theme.chat_msgOutDrawable; currentBackgroundSelectedDrawable = Theme.chat_msgOutSelectedDrawable; + transitionParams.drawPinnedBottomBackground = false; } else { currentBackgroundDrawable = Theme.chat_msgOutMediaDrawable; currentBackgroundSelectedDrawable = Theme.chat_msgOutMediaSelectedDrawable; + transitionParams.drawPinnedBottomBackground = true; } setBackgroundTopY(); if (isDrawSelectionBackground() && (currentPosition == null || getBackground() != null)) { @@ -8717,17 +8909,21 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate } else { offsetBottom = AndroidUtilities.dp(2); } - int backgroundTop = additionalTop + (drawPinnedTop || drawPinnedTop && drawPinnedBottom ? 0 : AndroidUtilities.dp(1)); - setDrawableBounds(currentBackgroundDrawable, backgroundLeft, backgroundTop, backgroundDrawableRight, layoutHeight - offsetBottom + additionalBottom); - setDrawableBounds(currentBackgroundSelectedDrawable, backgroundLeft, backgroundTop, backgroundDrawableRight, layoutHeight - offsetBottom + additionalBottom); - setDrawableBounds(currentBackgroundShadowDrawable, backgroundLeft, backgroundTop, backgroundDrawableRight, layoutHeight - offsetBottom + additionalBottom); + backgroundDrawableTop = additionalTop + (drawPinnedTop || drawPinnedTop && drawPinnedBottom ? 0 : AndroidUtilities.dp(1)); + int backgroundHeight = layoutHeight - offsetBottom + additionalBottom; + backgroundDrawableBottom = backgroundDrawableTop + backgroundHeight; + setDrawableBoundsInner(currentBackgroundDrawable, backgroundLeft, backgroundDrawableTop, backgroundDrawableRight, backgroundHeight); + setDrawableBoundsInner(currentBackgroundSelectedDrawable, backgroundLeft, backgroundDrawableTop, backgroundDrawableRight, backgroundHeight); + setDrawableBoundsInner(currentBackgroundShadowDrawable, backgroundLeft, backgroundDrawableTop, backgroundDrawableRight, backgroundHeight); } else { if (!mediaBackground && !drawPinnedBottom) { currentBackgroundDrawable = Theme.chat_msgInDrawable; currentBackgroundSelectedDrawable = Theme.chat_msgInSelectedDrawable; + transitionParams.drawPinnedBottomBackground = false; } else { currentBackgroundDrawable = Theme.chat_msgInMediaDrawable; currentBackgroundSelectedDrawable = Theme.chat_msgInMediaSelectedDrawable; + transitionParams.drawPinnedBottomBackground = true; } setBackgroundTopY(); if (isDrawSelectionBackground() && (currentPosition == null || getBackground() != null)) { @@ -8775,10 +8971,12 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate } else { offsetBottom = AndroidUtilities.dp(2); } - int backgroundTop = additionalTop + (drawPinnedTop || drawPinnedTop && drawPinnedBottom ? 0 : AndroidUtilities.dp(1)); - setDrawableBounds(currentBackgroundDrawable, backgroundDrawableLeft, backgroundTop, backgroundDrawableRight, layoutHeight - offsetBottom + additionalBottom); - setDrawableBounds(currentBackgroundSelectedDrawable, backgroundDrawableLeft, backgroundTop, backgroundDrawableRight, layoutHeight - offsetBottom + additionalBottom); - setDrawableBounds(currentBackgroundShadowDrawable, backgroundDrawableLeft, backgroundTop, backgroundDrawableRight, layoutHeight - offsetBottom + additionalBottom); + backgroundDrawableTop = additionalTop + (drawPinnedTop || drawPinnedTop && drawPinnedBottom ? 0 : AndroidUtilities.dp(1)); + int backgroundHeight = layoutHeight - offsetBottom + additionalBottom; + backgroundDrawableBottom = backgroundDrawableTop + backgroundHeight; + setDrawableBoundsInner(currentBackgroundDrawable, backgroundDrawableLeft, backgroundDrawableTop, backgroundDrawableRight, backgroundHeight); + setDrawableBoundsInner(currentBackgroundSelectedDrawable, backgroundDrawableLeft, backgroundDrawableTop, backgroundDrawableRight, backgroundHeight); + setDrawableBoundsInner(currentBackgroundShadowDrawable, backgroundDrawableLeft, backgroundDrawableTop, backgroundDrawableRight, backgroundHeight); } if (hasPsaHint) { @@ -8817,7 +9015,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate Interpolator interpolator = checkBoxVisible ? CubicBezierInterpolator.EASE_OUT : CubicBezierInterpolator.EASE_IN; checkBoxTranslation = (int) Math.ceil(interpolator.getInterpolation(checkBoxAnimationProgress) * AndroidUtilities.dp(35)); if (!currentMessageObject.isOutOwner()) { - setTranslationX(checkBoxTranslation); + updateTranslation(); } int size = AndroidUtilities.dp(21); @@ -8846,30 +9044,75 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate } } - if (drawBackground && currentBackgroundDrawable != null) { + if (drawBackground && currentBackgroundDrawable != null && currentPosition == null) { if (isHighlightedAnimated) { + currentBackgroundDrawable.setAlpha((int) (255 * alphaInternal)); currentBackgroundDrawable.draw(canvas); float alpha = highlightProgress >= 300 ? 1.0f : highlightProgress / 300.0f; if (currentPosition == null) { - currentBackgroundSelectedDrawable.setAlpha((int) (alpha * 255)); + currentBackgroundSelectedDrawable.setAlpha((int) (alphaInternal * alpha * 255)); currentBackgroundSelectedDrawable.draw(canvas); } } else if (selectedBackgroundProgress != 0) { currentBackgroundDrawable.draw(canvas); - currentBackgroundSelectedDrawable.setAlpha((int) (selectedBackgroundProgress * 255)); + currentBackgroundSelectedDrawable.setAlpha((int) (selectedBackgroundProgress * alphaInternal * 255)); currentBackgroundSelectedDrawable.draw(canvas); currentBackgroundShadowDrawable = null; } else { if (isDrawSelectionBackground() && (currentPosition == null || getBackground() != null)) { - currentBackgroundSelectedDrawable.setAlpha(255); + currentBackgroundSelectedDrawable.setAlpha((int) (255 * alphaInternal)); currentBackgroundSelectedDrawable.draw(canvas); } else { + currentBackgroundDrawable.setAlpha((int) (255 * alphaInternal)); currentBackgroundDrawable.draw(canvas); } } if (currentBackgroundShadowDrawable != null && (currentPosition == null || currentPosition.flags != 0)) { currentBackgroundShadowDrawable.draw(canvas); } + + if (transitionParams.changePinnedBottomProgress != 1f) { + if (currentMessageObject.isOutOwner()) { + Theme.MessageDrawable drawable; + if (transitionParams.drawPinnedBottomBackground) { + drawable = Theme.chat_msgOutDrawable; + } else { + drawable = Theme.chat_msgOutMediaDrawable; + } + Rect rect = currentBackgroundDrawable.getBounds(); + drawable.setBounds(rect.left, rect.top, rect.right + AndroidUtilities.dp(6), rect.bottom); + canvas.save(); + canvas.clipRect(rect.right - AndroidUtilities.dp(6), rect.bottom - AndroidUtilities.dp(16), rect.right + AndroidUtilities.dp(6), rect.bottom); + int h = parentHeight; + if (h == 0) { + h = AndroidUtilities.displaySize.y; + if (getParent() instanceof View) { + View view = (View) getParent(); + h = view.getMeasuredHeight(); + } + } + drawable.setTop((int) getY(), h, pinnedTop, pinnedBottom); + drawable.setAlpha((int) (255 * (1f - transitionParams.changePinnedBottomProgress))); + drawable.draw(canvas); + drawable.setAlpha(255); + canvas.restore(); + } else { + Theme.MessageDrawable drawable; + if (transitionParams.drawPinnedBottomBackground) { + drawable = Theme.chat_msgInDrawable; + } else { + drawable = Theme.chat_msgInMediaDrawable; + } + drawable.setAlpha((int) (255 * (1f - transitionParams.changePinnedBottomProgress))); + Rect rect = currentBackgroundDrawable.getBounds(); + drawable.setBounds(rect.left - AndroidUtilities.dp(6), rect.top, rect.right, rect.bottom); + canvas.save(); + canvas.clipRect(rect.left - AndroidUtilities.dp(6), rect.bottom - AndroidUtilities.dp(16), rect.left + AndroidUtilities.dp(6), rect.bottom); + drawable.draw(canvas); + drawable.setAlpha(255); + canvas.restore(); + } + } } if (isHighlightedAnimated) { long newTime = System.currentTimeMillis(); @@ -8889,7 +9132,47 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate } } + if (alphaInternal != 1f) { + int top = 0; + int left = 0; + int bottom = getMeasuredHeight(); + int right = getMeasuredWidth(); + + if (currentBackgroundDrawable != null) { + top = currentBackgroundDrawable.getBounds().top; + bottom = currentBackgroundDrawable.getBounds().bottom; + left = currentBackgroundDrawable.getBounds().left; + right = currentBackgroundDrawable.getBounds().right; + } + + if (drawShareButton) { + if (currentMessageObject.isOutOwner()) { + left -= AndroidUtilities.dp(8) + Theme.chat_shareDrawable.getIntrinsicWidth(); + } else { + right += AndroidUtilities.dp(8) + Theme.chat_shareDrawable.getIntrinsicWidth(); + } + } + if (getY() < 0) { + top = (int) -getY(); + } + if (getY() + getMeasuredHeight() > parentHeight) { + bottom = (int) (parentHeight - getY()); + } + rect.set(left, top, right, bottom); + canvas.saveLayerAlpha(rect, (int) (255 * alphaInternal), Canvas.ALL_SAVE_FLAG); + } + if (transitionParams.animateBackgroundBoundsInner && currentBackgroundDrawable != null) { + Rect r = currentBackgroundDrawable.getBounds(); + canvas.save(); + canvas.clipRect( + r.left + AndroidUtilities.dp(4), r.top + AndroidUtilities.dp(4), + r.right - AndroidUtilities.dp(4), r.bottom - AndroidUtilities.dp(4) + ); + } drawContent(canvas); + if (transitionParams.animateBackgroundBoundsInner && currentBackgroundDrawable != null) { + canvas.restore(); + } if (drawShareButton) { if (sharePressed) { @@ -8907,10 +9190,23 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate } if (currentMessageObject.isOutOwner()) { shareStartX = currentBackgroundDrawable.getBounds().left - AndroidUtilities.dp(8) - Theme.chat_shareDrawable.getIntrinsicWidth(); + if (currentMessagesGroup != null) { + shareStartX += currentMessagesGroup.transitionParams.offsetLeft - animationOffsetX; + } } else { shareStartX = currentBackgroundDrawable.getBounds().right + AndroidUtilities.dp(8); + if (currentMessagesGroup != null) { + shareStartX += currentMessagesGroup.transitionParams.offsetRight - animationOffsetX; + } } - setDrawableBounds(Theme.chat_shareDrawable, shareStartX, shareStartY = layoutHeight - AndroidUtilities.dp(41)); + shareStartY = layoutHeight - AndroidUtilities.dp(41) + transitionParams.deltaBottom; + if (currentMessagesGroup != null) { + shareStartY += currentMessagesGroup.transitionParams.offsetBottom; + if (currentMessagesGroup.transitionParams.backgroundChangeBounds) { + shareStartY -= getTranslationY(); + } + } + setDrawableBounds(Theme.chat_shareDrawable, shareStartX, shareStartY); Theme.chat_shareDrawable.draw(canvas); if (drwaShareGoIcon) { setDrawableBounds(Theme.chat_goIconDrawable, shareStartX + AndroidUtilities.dp(12), shareStartY + AndroidUtilities.dp(9)); @@ -8945,14 +9241,14 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate } } if (currentPosition == null) { - drawNamesLayout(canvas); + drawNamesLayout(canvas, 1f); } if (!autoPlayingMedia || !MediaController.getInstance().isPlayingMessageAndReadyToDraw(currentMessageObject)) { drawOverlays(canvas); } - if ((drawTime || !mediaBackground) && !forceNotDrawTime) { - drawTime(canvas); + if ((drawTime || !mediaBackground) && !forceNotDrawTime && !transitionParams.animateBackgroundBoundsInner) { + drawTime(canvas, 1f); } if ((controlsAlpha != 1.0f || timeAlpha != 1.0f) && currentMessageObject.type != 5) { @@ -8978,6 +9274,9 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate parent.invalidate(); } } + if (alphaInternal != 1f) { + canvas.restore(); + } updateSelectionTextPosition(); } @@ -8993,10 +9292,110 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate if (currentMessageObject.isOutOwner()) { return layoutWidth - backgroundWidth - (!mediaBackground ? 0 : AndroidUtilities.dp(9)); } else { - return AndroidUtilities.dp((isChat && isAvatarVisible ? 48 : 0) + (!mediaBackground ? 3 : 9)); + int r = AndroidUtilities.dp((isChat && isAvatarVisible ? 48 : 0) + (!mediaBackground ? 3 : 9)); + if (currentMessagesGroup != null) { + if (currentPosition.leftSpanOffset != 0) { + r += (int) Math.ceil(currentPosition.leftSpanOffset / 1000.0f * getGroupPhotosWidth()); + } + } + return r; } } + public int getBackgroundDrawableRight() { + int right = backgroundWidth - (mediaBackground ? 0 : AndroidUtilities.dp(3)); + if (!mediaBackground && drawPinnedBottom && currentMessageObject.isOutOwner()) { + right -= AndroidUtilities.dp(6); + } + return getBackgroundDrawableLeft() + right; + } + + public int getBackgroundDrawableTop() { + int additionalTop = 0; + if (currentPosition != null) { + if ((currentPosition.flags & MessageObject.POSITION_FLAG_TOP) == 0) { + additionalTop -= AndroidUtilities.dp( 3); + } + } + return additionalTop + (drawPinnedTop || drawPinnedTop && drawPinnedBottom ? 0 : AndroidUtilities.dp(1)); + } + + public int getBackgroundDrawableBottom() { + int additionalBottom = 0; + if (currentPosition != null) { + if ((currentPosition.flags & MessageObject.POSITION_FLAG_TOP) == 0) { + additionalBottom += AndroidUtilities.dp(3); + } + if ((currentPosition.flags & MessageObject.POSITION_FLAG_BOTTOM) == 0) { + additionalBottom += AndroidUtilities.dp((currentMessageObject.isOutOwner() ? 3 : 4)); + } + } + + int offsetBottom; + if (drawPinnedBottom && drawPinnedTop) { + offsetBottom = 0; + } else if (drawPinnedBottom) { + offsetBottom = AndroidUtilities.dp(1); + } else { + offsetBottom = AndroidUtilities.dp(2); + } + return getBackgroundDrawableTop() + layoutHeight - offsetBottom + additionalBottom; + } + + public void drawBackground(Canvas canvas, int left, int top, int right, int bottom, boolean pinnedTop, boolean pinnedBottom) { + if (currentMessageObject.isOutOwner()) { + if (!mediaBackground && !pinnedBottom) { + currentBackgroundDrawable = Theme.chat_msgOutDrawable; + } else { + currentBackgroundDrawable = Theme.chat_msgOutMediaDrawable; + } + } else { + + if (!mediaBackground && !pinnedTop) { + currentBackgroundDrawable = Theme.chat_msgInDrawable; + } else { + currentBackgroundDrawable = Theme.chat_msgInMediaDrawable; + } + } + + + int h = parentHeight; + if (h == 0) { + h = AndroidUtilities.displaySize.y; + if (getParent() instanceof View) { + View view = (View) getParent(); + h = view.getMeasuredHeight(); + } + } + currentBackgroundDrawable.setTop(0, h, pinnedTop, pinnedBottom); + + Drawable currentBackgroundShadowDrawable = null; + + if (currentBackgroundDrawable != null) { + currentBackgroundDrawable.setBounds(left,top,right,bottom); + currentBackgroundShadowDrawable = currentBackgroundDrawable.getShadowDrawable(); + } + if (currentBackgroundSelectedDrawable != null) { + currentBackgroundSelectedDrawable.setBounds(left,top,right,bottom); + } + if (currentBackgroundShadowDrawable != null) { + currentBackgroundShadowDrawable.setBounds(left,top,right,bottom); + } + + if (currentBackgroundShadowDrawable != null) { + currentBackgroundShadowDrawable.setAlpha((int) (getAlpha() * 255)); + currentBackgroundShadowDrawable.draw(canvas); + currentBackgroundShadowDrawable.setAlpha(255); + } + + if (currentBackgroundDrawable != null) { + currentBackgroundDrawable.setAlpha((int) (getAlpha() * 255)); + currentBackgroundDrawable.draw(canvas); + currentBackgroundDrawable.setAlpha(255); + } + } + + public boolean hasNameLayout() { return drawNameLayout && nameLayout != null || drawForwardedName && forwardedNameLayout[0] != null && forwardedNameLayout[1] != null && (currentPosition == null || currentPosition.minY == 0 && currentPosition.minX == 0) || @@ -9007,7 +9406,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate return drawNameLayout && nameLayout != null; } - public void drawNamesLayout(Canvas canvas) { + public void drawNamesLayout(Canvas canvas, float alpha) { long newAnimationTime = SystemClock.elapsedRealtime(); long dt = newAnimationTime - lastNamesAnimationTime; if (dt > 17) { @@ -9015,6 +9414,15 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate } lastNamesAnimationTime = newAnimationTime; + if (currentMessageObject.deleted && currentMessagesGroup != null && currentMessagesGroup.messages.size() >= 1) { + return; + } + + if (alpha != 1f) { + rect.set(0, 0, getMaxNameWidth(), getMeasuredHeight()); + canvas.saveLayerAlpha(rect, (int) (255 * alpha), Canvas.ALL_SAVE_FLAG); + } + if (drawNameLayout && nameLayout != null) { canvas.save(); @@ -9206,6 +9614,10 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate } } } + + if (alpha != 1f) { + canvas.restore(); + } } public boolean hasCaptionLayout() { @@ -9285,8 +9697,21 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate return backgroundDrawable; } - public void drawCaptionLayout(Canvas canvas, boolean selectionOnly) { - if (captionLayout == null || selectionOnly && pressedLink == null) { + public Theme.MessageDrawable getCurrentBackgroundDrawable() { + return currentBackgroundDrawable; + } + + public void drawCaptionLayout(Canvas canvas, boolean selectionOnly, float alpha) { + if (transitionParams.animateReplaceCaptionLayout && transitionParams.animateChangeProgress != 1f) { + drawCaptionLayout(canvas, transitionParams.animateOutCaptionLayout, selectionOnly, alpha * (1f - transitionParams.animateChangeProgress)); + drawCaptionLayout(canvas, captionLayout, selectionOnly, alpha * transitionParams.animateChangeProgress); + } else { + drawCaptionLayout(canvas, captionLayout, selectionOnly, alpha); + } + } + + private void drawCaptionLayout(Canvas canvas, StaticLayout captionLayout, boolean selectionOnly, float alpha) { + if (captionLayout == null || selectionOnly && pressedLink == null || (currentMessageObject.deleted && currentPosition != null) || alpha == 0) { return; } if (currentMessageObject.isOutOwner()) { @@ -9297,7 +9722,43 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate Theme.chat_msgTextPaint.linkColor = Theme.getColor(Theme.key_chat_messageLinkIn); } canvas.save(); + float renderingAlpha = alpha; + if (currentMessagesGroup != null) { + renderingAlpha = currentMessagesGroup.transitionParams.captionEnterProgress * alpha; + } + if (renderingAlpha == 0) { + return; + } + + float captionY = this.captionY; + float captionX = this.captionX; + if (currentMessagesGroup != null && currentMessagesGroup.transitionParams.backgroundChangeBounds) { + if (!transitionParams.animateReplaceCaptionLayout) { + captionY -= getTranslationY(); + } + captionX += currentMessagesGroup.transitionParams.offsetLeft; + } else { + if (transitionParams.animateBackgroundBoundsInner) { + if (transitionParams.transformGroupToSingleMessage) { + captionY -= getTranslationY(); + captionX += transitionParams.deltaLeft; + } else if (transitionParams.moveCaption) { + captionX = this.captionX * transitionParams.animateChangeProgress + transitionParams.captionFromX * (1f - transitionParams.animateChangeProgress); + captionY = this.captionY * transitionParams.animateChangeProgress + transitionParams.captionFromY * (1f - transitionParams.animateChangeProgress); + } else { + captionX += transitionParams.deltaLeft; + } + } + } + + if (renderingAlpha != 1f) { + rect.set(captionX, captionY, captionX + captionLayout.getWidth(), captionY + captionLayout.getHeight()); + canvas.saveLayerAlpha(rect, (int) (255 * renderingAlpha), Canvas.ALL_SAVE_FLAG); + } + canvas.translate(captionX, captionY); + + if (pressedLink != null) { for (int b = 0; b < urlPath.size(); b++) { canvas.drawPath(urlPath.get(b), Theme.chat_urlPaint); @@ -9318,6 +9779,9 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate FileLog.e(e); } } + if (renderingAlpha != 1f) { + canvas.restore(); + } canvas.restore(); } @@ -9325,8 +9789,8 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate return !forceNotDrawTime; } - public void drawTime(Canvas canvas) { - if ((!drawTime || groupPhotoInvisible) && mediaBackground && captionLayout == null || timeLayout == null) { + public void drawTime(Canvas canvas, float alpha) { + if ((!drawTime || groupPhotoInvisible) && mediaBackground && captionLayout == null || timeLayout == null || (currentMessageObject.deleted && currentPosition != null)) { return; } if (currentMessageObject.type == MessageObject.TYPE_ROUND_VIDEO) { @@ -9346,10 +9810,22 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate } } } + if (alpha != 1f) { + Theme.chat_timePaint.setAlpha((int) (Theme.chat_timePaint.getAlpha() * alpha)); + } if (drawPinnedBottom) { canvas.translate(0, AndroidUtilities.dp(2)); } + float timeX = this.timeX + transitionParams.deltaRight; boolean bigRadius = false; + float layoutHeight = this.layoutHeight + transitionParams.deltaBottom; + if (currentMessagesGroup != null && currentMessagesGroup.transitionParams.backgroundChangeBounds) { + layoutHeight -= getTranslationY(); + timeX += currentMessagesGroup.transitionParams.offsetRight; + } + if (transitionParams.animateBackgroundBoundsInner) { + timeX += animationOffsetX; + } if (mediaBackground && captionLayout == null) { Paint paint; if (currentMessageObject.shouldDrawWithoutBackground()) { @@ -9358,8 +9834,8 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate paint = Theme.chat_timeBackgroundPaint; } int oldAlpha = paint.getAlpha(); - paint.setAlpha((int) (oldAlpha * timeAlpha)); - Theme.chat_timePaint.setAlpha((int) (255 * timeAlpha)); + paint.setAlpha((int) (oldAlpha * timeAlpha * alpha)); + Theme.chat_timePaint.setAlpha((int) (255 * timeAlpha * alpha)); int r; if (documentAttachType != DOCUMENT_ATTACH_TYPE_ROUND && documentAttachType != DOCUMENT_ATTACH_TYPE_STICKER) { @@ -9369,8 +9845,8 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate } else { r = AndroidUtilities.dp(4); } - int x1 = timeX - AndroidUtilities.dp(bigRadius ? 6 : 4); - int y1 = layoutHeight - AndroidUtilities.dp(28); + float x1 = timeX - AndroidUtilities.dp(bigRadius ? 6 : 4); + float y1 = layoutHeight - AndroidUtilities.dp(28); rect.set(x1, y1, x1 + timeWidth + AndroidUtilities.dp((bigRadius ? 12 : 8) + (currentMessageObject.isOutOwner() ? 20 : 0)), y1 + AndroidUtilities.dp(17)); canvas.drawRoundRect(rect, r, r, paint); @@ -9383,16 +9859,23 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate if (currentMessageObject.isSending() || currentMessageObject.isEditing()) { if (!currentMessageObject.isOutOwner()) { setDrawableBounds(Theme.chat_msgMediaClockDrawable, timeX + (currentMessageObject.scheduled ? 0 : AndroidUtilities.dp(11)), layoutHeight - AndroidUtilities.dp(14.0f) - Theme.chat_msgMediaClockDrawable.getIntrinsicHeight()); + Theme.chat_msgMediaClockDrawable.setAlpha((int) (255 * alpha)); Theme.chat_msgMediaClockDrawable.draw(canvas); + Theme.chat_msgMediaClockDrawable.setAlpha(255); } } else if (currentMessageObject.isSendError()) { if (!currentMessageObject.isOutOwner()) { - int x = timeX + (currentMessageObject.scheduled ? 0 : AndroidUtilities.dp(11)); - int y = layoutHeight - AndroidUtilities.dp(26.5f); + float x = timeX + (currentMessageObject.scheduled ? 0 : AndroidUtilities.dp(11)); + float y = layoutHeight - AndroidUtilities.dp(26.5f); rect.set(x, y, x + AndroidUtilities.dp(14), y + AndroidUtilities.dp(14)); + oldAlpha = Theme.chat_msgErrorPaint.getAlpha(); + Theme.chat_msgErrorPaint.setAlpha((int) (oldAlpha * alpha)); canvas.drawRoundRect(rect, AndroidUtilities.dp(1), AndroidUtilities.dp(1), Theme.chat_msgErrorPaint); + Theme.chat_msgErrorPaint.setAlpha(oldAlpha); setDrawableBounds(Theme.chat_msgErrorDrawable, x + AndroidUtilities.dp(6), y + AndroidUtilities.dp(2)); + Theme.chat_msgErrorDrawable.setAlpha((int) (255 * alpha)); Theme.chat_msgErrorDrawable.draw(canvas); + Theme.chat_msgErrorDrawable.setAlpha(255); } } else if (viewsLayout != null) { Drawable viewsDrawable; @@ -9402,7 +9885,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate viewsDrawable = Theme.chat_msgMediaViewsDrawable; } oldAlpha = ((BitmapDrawable) viewsDrawable).getPaint().getAlpha(); - viewsDrawable.setAlpha((int) (timeAlpha * oldAlpha)); + viewsDrawable.setAlpha((int) (timeAlpha * oldAlpha * alpha)); setDrawableBounds(viewsDrawable, timeX, layoutHeight - AndroidUtilities.dp(10.5f) - timeLayout.getHeight()); viewsDrawable.draw(canvas); viewsDrawable.setAlpha(oldAlpha); @@ -9428,26 +9911,37 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate if (!currentMessageObject.isOutOwner()) { Drawable clockDrawable = isDrawSelectionBackground() ? Theme.chat_msgInSelectedClockDrawable : Theme.chat_msgInClockDrawable; setDrawableBounds(clockDrawable, timeX + (currentMessageObject.scheduled ? 0 : AndroidUtilities.dp(11)), layoutHeight - AndroidUtilities.dp(pinnedBottom || pinnedTop ? 9.5f : 8.5f) - clockDrawable.getIntrinsicHeight()); + clockDrawable.setAlpha((int) (255 * alpha)); clockDrawable.draw(canvas); + clockDrawable.setAlpha(255); } } else if (currentMessageObject.isSendError()) { if (!currentMessageObject.isOutOwner()) { - int x = timeX + (currentMessageObject.scheduled ? 0 : AndroidUtilities.dp(11)); - int y = layoutHeight - AndroidUtilities.dp(pinnedBottom || pinnedTop ? 21.5f : 20.5f); + float x = timeX + (currentMessageObject.scheduled ? 0 : AndroidUtilities.dp(11)); + float y = layoutHeight - AndroidUtilities.dp(pinnedBottom || pinnedTop ? 21.5f : 20.5f); rect.set(x, y, x + AndroidUtilities.dp(14), y + AndroidUtilities.dp(14)); + int oldAlpha = Theme.chat_msgErrorPaint.getAlpha(); + Theme.chat_msgErrorPaint.setAlpha((int) (255 * alpha)); canvas.drawRoundRect(rect, AndroidUtilities.dp(1), AndroidUtilities.dp(1), Theme.chat_msgErrorPaint); + Theme.chat_msgErrorPaint.setAlpha(oldAlpha); setDrawableBounds(Theme.chat_msgErrorDrawable, x + AndroidUtilities.dp(6), y + AndroidUtilities.dp(2)); + Theme.chat_msgErrorDrawable.setAlpha((int) (255 * alpha)); Theme.chat_msgErrorDrawable.draw(canvas); + Theme.chat_msgErrorDrawable.setAlpha(255); } } else if (viewsLayout != null) { if (!currentMessageObject.isOutOwner()) { Drawable viewsDrawable = isDrawSelectionBackground() ? Theme.chat_msgInViewsSelectedDrawable : Theme.chat_msgInViewsDrawable; setDrawableBounds(viewsDrawable, timeX, layoutHeight - AndroidUtilities.dp(pinnedBottom || pinnedTop ? 5.5f : 4.5f) - timeLayout.getHeight()); + viewsDrawable.setAlpha((int) (255 * alpha)); viewsDrawable.draw(canvas); + viewsDrawable.setAlpha(255); } else { Drawable viewsDrawable = isDrawSelectionBackground() ? Theme.chat_msgOutViewsSelectedDrawable : Theme.chat_msgOutViewsDrawable; setDrawableBounds(viewsDrawable, timeX, layoutHeight - AndroidUtilities.dp(pinnedBottom || pinnedTop ? 5.5f : 4.5f) - timeLayout.getHeight()); + viewsDrawable.setAlpha((int) (255 * alpha)); viewsDrawable.draw(canvas); + viewsDrawable.setAlpha(255); } canvas.save(); @@ -9459,7 +9953,15 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate canvas.save(); canvas.translate(timeX + additionalX, layoutHeight - AndroidUtilities.dp(pinnedBottom || pinnedTop ? 7.5f : 6.5f) - timeLayout.getHeight()); - timeLayout.draw(canvas); + if (transitionParams.animateEditedEnter && transitionParams.animateChangeProgress != 1f) { + int oldAlpha = Theme.chat_timePaint.getAlpha(); + Theme.chat_timePaint.setAlpha((int) (oldAlpha * transitionParams.animateChangeProgress)); + transitionParams.animateEditedLayout.draw(canvas); + Theme.chat_timePaint.setAlpha(oldAlpha); + transitionParams.animateTimeLayout.draw(canvas); + } else { + timeLayout.draw(canvas); + } canvas.restore(); } @@ -9495,17 +9997,21 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate if (drawClock) { if (mediaBackground && captionLayout == null) { if (currentMessageObject.shouldDrawWithoutBackground()) { - Theme.chat_msgStickerClockDrawable.setAlpha((int) (255 * timeAlpha)); + Theme.chat_msgStickerClockDrawable.setAlpha((int) (255 * timeAlpha * alpha)); setDrawableBounds(Theme.chat_msgStickerClockDrawable, layoutWidth - AndroidUtilities.dp(bigRadius ? 24 : 22) - Theme.chat_msgStickerClockDrawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dp(13.5f) - Theme.chat_msgStickerClockDrawable.getIntrinsicHeight()); Theme.chat_msgStickerClockDrawable.draw(canvas); Theme.chat_msgStickerClockDrawable.setAlpha(255); } else { setDrawableBounds(Theme.chat_msgMediaClockDrawable, layoutWidth - AndroidUtilities.dp(bigRadius ? 24 : 22) - Theme.chat_msgMediaClockDrawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dp(13.5f) - Theme.chat_msgMediaClockDrawable.getIntrinsicHeight()); + Theme.chat_msgMediaClockDrawable.setAlpha((int) (255 * alpha)); Theme.chat_msgMediaClockDrawable.draw(canvas); + Theme.chat_msgMediaClockDrawable.setAlpha(255); } } else { setDrawableBounds(Theme.chat_msgOutClockDrawable, layoutWidth - AndroidUtilities.dp(18.5f) - Theme.chat_msgOutClockDrawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dp(8.5f) - Theme.chat_msgOutClockDrawable.getIntrinsicHeight()); + Theme.chat_msgOutClockDrawable.setAlpha((int) (255 * alpha)); Theme.chat_msgOutClockDrawable.draw(canvas); + Theme.chat_msgOutClockDrawable.setAlpha(255); } } @@ -9513,10 +10019,14 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate if (drawCheck1 || drawCheck2) { if (mediaBackground && captionLayout == null) { setDrawableBounds(Theme.chat_msgBroadcastMediaDrawable, layoutWidth - AndroidUtilities.dp(bigRadius ? 26 : 24) - Theme.chat_msgBroadcastMediaDrawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dp(14.0f) - Theme.chat_msgBroadcastMediaDrawable.getIntrinsicHeight()); + Theme.chat_msgBroadcastMediaDrawable.setAlpha((int) (255 * alpha)); Theme.chat_msgBroadcastMediaDrawable.draw(canvas); + Theme.chat_msgBroadcastMediaDrawable.setAlpha(255); } else { setDrawableBounds(Theme.chat_msgBroadcastDrawable, layoutWidth - AndroidUtilities.dp(20.5f) - Theme.chat_msgBroadcastDrawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dp(8.0f) - Theme.chat_msgBroadcastDrawable.getIntrinsicHeight()); + Theme.chat_msgBroadcastDrawable.setAlpha((int) (255 * alpha)); Theme.chat_msgBroadcastDrawable.draw(canvas); + Theme.chat_msgBroadcastDrawable.setAlpha(255); } } } else { @@ -9528,14 +10038,16 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate } else { setDrawableBounds(Theme.chat_msgStickerCheckDrawable, layoutWidth - AndroidUtilities.dp(bigRadius ? 23.5f : 21.5f) - Theme.chat_msgStickerCheckDrawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dp(13.5f) - Theme.chat_msgStickerCheckDrawable.getIntrinsicHeight()); } + Theme.chat_msgStickerCheckDrawable.setAlpha((int) (255 * alpha)); Theme.chat_msgStickerCheckDrawable.draw(canvas); + Theme.chat_msgStickerCheckDrawable.setAlpha(255); } else { if (drawCheck1) { setDrawableBounds(Theme.chat_msgMediaCheckDrawable, layoutWidth - AndroidUtilities.dp(bigRadius ? 28.3f : 26.3f) - Theme.chat_msgMediaCheckDrawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dp(13.5f) - Theme.chat_msgMediaCheckDrawable.getIntrinsicHeight()); } else { setDrawableBounds(Theme.chat_msgMediaCheckDrawable, layoutWidth - AndroidUtilities.dp(bigRadius ? 23.5f : 21.5f) - Theme.chat_msgMediaCheckDrawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dp(13.5f) - Theme.chat_msgMediaCheckDrawable.getIntrinsicHeight()); } - Theme.chat_msgMediaCheckDrawable.setAlpha((int) (255 * timeAlpha)); + Theme.chat_msgMediaCheckDrawable.setAlpha((int) (255 * timeAlpha * alpha)); Theme.chat_msgMediaCheckDrawable.draw(canvas); Theme.chat_msgMediaCheckDrawable.setAlpha(255); } @@ -9548,30 +10060,36 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate drawable = isDrawSelectionBackground() ? Theme.chat_msgOutCheckSelectedDrawable : Theme.chat_msgOutCheckDrawable; setDrawableBounds(drawable, layoutWidth - AndroidUtilities.dp(18.5f) - drawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dp(pinnedBottom || pinnedTop ? 9 : 8) - drawable.getIntrinsicHeight()); } + drawable.setAlpha((int) (255 * alpha)); drawable.draw(canvas); + drawable.setAlpha(255); } } if (drawCheck1) { if (mediaBackground && captionLayout == null) { if (currentMessageObject.shouldDrawWithoutBackground()) { setDrawableBounds(Theme.chat_msgStickerHalfCheckDrawable, layoutWidth - AndroidUtilities.dp(bigRadius ? 23.5f : 21.5f) - Theme.chat_msgStickerHalfCheckDrawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dp(13.5f) - Theme.chat_msgStickerHalfCheckDrawable.getIntrinsicHeight()); + Theme.chat_msgStickerHalfCheckDrawable.setAlpha((int) (255 * alpha)); Theme.chat_msgStickerHalfCheckDrawable.draw(canvas); + Theme.chat_msgStickerHalfCheckDrawable.setAlpha(255); } else { setDrawableBounds(Theme.chat_msgMediaHalfCheckDrawable, layoutWidth - AndroidUtilities.dp(bigRadius ? 23.5f : 21.5f) - Theme.chat_msgMediaHalfCheckDrawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dp(13.5f) - Theme.chat_msgMediaHalfCheckDrawable.getIntrinsicHeight()); - Theme.chat_msgMediaHalfCheckDrawable.setAlpha((int) (255 * timeAlpha)); + Theme.chat_msgMediaHalfCheckDrawable.setAlpha((int) (255 * timeAlpha * alpha)); Theme.chat_msgMediaHalfCheckDrawable.draw(canvas); Theme.chat_msgMediaHalfCheckDrawable.setAlpha(255); } } else { Drawable drawable = isDrawSelectionBackground() ? Theme.chat_msgOutHalfCheckSelectedDrawable : Theme.chat_msgOutHalfCheckDrawable; setDrawableBounds(drawable, layoutWidth - AndroidUtilities.dp(18) - drawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dp(pinnedBottom || pinnedTop ? 9 : 8) - drawable.getIntrinsicHeight()); + drawable.setAlpha((int) (255 * alpha)); drawable.draw(canvas); + drawable.setAlpha(255); } } } if (drawError) { int x; - int y; + float y; if (mediaBackground && captionLayout == null) { x = layoutWidth - AndroidUtilities.dp(34.5f); y = layoutHeight - AndroidUtilities.dp(26.5f); @@ -9580,9 +10098,14 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate y = layoutHeight - AndroidUtilities.dp(pinnedBottom || pinnedTop ? 22 : 21); } rect.set(x, y, x + AndroidUtilities.dp(14), y + AndroidUtilities.dp(14)); + int oldAlpha = Theme.chat_msgErrorPaint.getAlpha(); + Theme.chat_msgErrorPaint.setAlpha((int) (oldAlpha * alpha)); canvas.drawRoundRect(rect, AndroidUtilities.dp(1), AndroidUtilities.dp(1), Theme.chat_msgErrorPaint); + Theme.chat_msgErrorPaint.setAlpha(oldAlpha); setDrawableBounds(Theme.chat_msgErrorDrawable, x + AndroidUtilities.dp(6), y + AndroidUtilities.dp(2)); + Theme.chat_msgErrorDrawable.setAlpha((int) (255 * alpha)); Theme.chat_msgErrorDrawable.draw(canvas); + Theme.chat_msgErrorDrawable.setAlpha(255); } } } @@ -9613,7 +10136,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate } else { Theme.chat_msgMediaMenuDrawable.setAlpha((int) (oldAlpha * controlsAlpha)); } - setDrawableBounds(Theme.chat_msgMediaMenuDrawable, otherX = photoImage.getImageX() + photoImage.getImageWidth() - AndroidUtilities.dp(14), otherY = photoImage.getImageY() + AndroidUtilities.dp(8.1f)); + setDrawableBounds(Theme.chat_msgMediaMenuDrawable, otherX = (int) (photoImage.getImageX() + photoImage.getImageWidth() - AndroidUtilities.dp(14)), otherY = (int) (photoImage.getImageY() + AndroidUtilities.dp(8.1f))); Theme.chat_msgMediaMenuDrawable.draw(canvas); Theme.chat_msgMediaMenuDrawable.setAlpha(oldAlpha); } @@ -9660,8 +10183,8 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate } Theme.chat_infoPaint.setColor(Theme.getColor(Theme.key_chat_mediaInfoText)); - int x1 = photoImage.getImageX() + AndroidUtilities.dp(4); - int y1 = photoImage.getImageY() + AndroidUtilities.dp(4); + int x1 = (int) (photoImage.getImageX() + AndroidUtilities.dp(4)); + int y1 = (int) (photoImage.getImageY() + AndroidUtilities.dp(4)); int imageW; int infoW; @@ -9696,7 +10219,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate Theme.chat_infoPaint.setAlpha((int) (255 * controlsAlpha * loadingProgressAlpha)); - canvas.translate(noSoundCenterX = photoImage.getImageX() + AndroidUtilities.dp(8 + (canStreamVideo ? 30 * alpha : 0)), photoImage.getImageY() + AndroidUtilities.dp(5.5f + 0.2f * alpha)); + canvas.translate(noSoundCenterX = (int) (photoImage.getImageX() + AndroidUtilities.dp(8 + (canStreamVideo ? 30 * alpha : 0))), photoImage.getImageY() + AndroidUtilities.dp(5.5f + 0.2f * alpha)); if (infoLayout != null && (!drawLoadingProgress || drawDocTitleLayout)) { infoLayout.draw(canvas); } @@ -9790,7 +10313,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate } if (currentMessageObject.messageOwner.media instanceof TLRPC.TL_messageMediaGeoLive) { - int cy = photoImage.getImageY2() + AndroidUtilities.dp(30); + int cy = (int) (photoImage.getImageY2() + AndroidUtilities.dp(30)); if (!locationExpired) { forceNotDrawTime = true; float progress = 1.0f - Math.abs(ConnectionsManager.getInstance(currentAccount).getCurrentTime() - currentMessageObject.messageOwner.date) / (float) currentMessageObject.messageOwner.media.period; @@ -9821,8 +10344,8 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate canvas.restore(); } - int cx = photoImage.getImageX() + photoImage.getImageWidth() / 2 - AndroidUtilities.dp(31); - cy = photoImage.getImageY() + photoImage.getImageHeight() / 2 - AndroidUtilities.dp(38); + int cx = (int) (photoImage.getImageX() + photoImage.getImageWidth() / 2 - AndroidUtilities.dp(31)); + cy = (int) (photoImage.getImageY() + photoImage.getImageHeight() / 2 - AndroidUtilities.dp(38)); setDrawableBounds(Theme.chat_msgAvatarLiveLocationDrawable, cx, cy); Theme.chat_msgAvatarLiveLocationDrawable.draw(canvas); @@ -10214,11 +10737,11 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate } else { menuDrawable = isDrawSelectionBackground() ? Theme.chat_msgInMenuSelectedDrawable : Theme.chat_msgInMenuDrawable; } - setDrawableBounds(menuDrawable, otherX = photoImage.getImageX() + backgroundWidth - AndroidUtilities.dp(48), otherY = photoImage.getImageY() - AndroidUtilities.dp(2)); + setDrawableBounds(menuDrawable, otherX = (int) (photoImage.getImageX() + backgroundWidth - AndroidUtilities.dp(48)), otherY = (int) (photoImage.getImageY() - AndroidUtilities.dp(2))); menuDrawable.draw(canvas); if (drawInstantView) { - int textX = photoImage.getImageX() - AndroidUtilities.dp(2); + int textX = (int) (photoImage.getImageX() - AndroidUtilities.dp(2)); int instantY = currentBackgroundDrawable.getBounds().bottom - AndroidUtilities.dp(36 + 28); Paint backPaint = Theme.chat_instantViewRectPaint; if (currentMessageObject.isOutOwner()) { @@ -10280,7 +10803,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate if (drawPhotoCheckBox) { int size = AndroidUtilities.dp(21); photoCheckBox.setColor(null, null, currentMessageObject.isOutOwner() ? Theme.key_chat_outBubbleSelected : Theme.key_chat_inBubbleSelected); - photoCheckBox.setBounds(photoImage.getImageX2() - AndroidUtilities.dp(21 + 4), photoImage.getImageY() + AndroidUtilities.dp(4), size, size); + photoCheckBox.setBounds((int) photoImage.getImageX2() - AndroidUtilities.dp(21 + 4), (int) photoImage.getImageY() + AndroidUtilities.dp(4), size, size); photoCheckBox.draw(canvas); } } @@ -10351,6 +10874,9 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate } else { this.willRemoved = false; } + if (getParent() == null && attachedToWindow) { + onDetachedFromWindow(); + } } @Override @@ -10467,7 +10993,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate replyImageReceiver.setIgnoreImageSet(true); locationImageReceiver.setIgnoreImageSet(true); - if (groupedMessages != null) { + if (groupedMessages != null && groupedMessages.messages.size() != 1) { int h = 0; for (int i = 0; i < groupedMessages.messages.size(); i++) { MessageObject o = groupedMessages.messages.get(i); @@ -10523,6 +11049,65 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate } } + private float slidingOffsetX; + private float animationOffsetX; + + public Property ANIMATION_OFFSET_X = new Property(Float.class, "animationOffsetX") { + @Override + public Float get(ChatMessageCell object) { + return object.animationOffsetX; + } + + @Override + public void set(ChatMessageCell object, Float value) { + object.setAnimationOffsetX(value); + } + }; + + public void setSlidingOffset(float offsetX) { + slidingOffsetX = offsetX; + updateTranslation(); + } + + public void setAnimationOffsetX(float offsetX) { + animationOffsetX = offsetX; + updateTranslation(); + } + + private void updateTranslation() { + int checkBoxOffset = !currentMessageObject.isOutOwner() ? checkBoxTranslation : 0; + setTranslationX(slidingOffsetX + animationOffsetX + checkBoxOffset); + } + + public float getNonAnimationTranslationX(boolean update) { + if (!currentMessageObject.isOutOwner()) { + if (update && (checkBoxVisible || checkBoxAnimationInProgress)) { + Interpolator interpolator = checkBoxVisible ? CubicBezierInterpolator.EASE_OUT : CubicBezierInterpolator.EASE_IN; + checkBoxTranslation = (int) Math.ceil(interpolator.getInterpolation(checkBoxAnimationProgress) * AndroidUtilities.dp(35)); + } + return slidingOffsetX + checkBoxTranslation; + } else { + return slidingOffsetX; + } + } + + public float getSlidingOffsetX() { + return slidingOffsetX; + } + + public boolean willRemovedAfterAnimation() { + return willRemoved; + } + + public float getAnimationOffsetX() { + return animationOffsetX; + } + + @Override + public void setTranslationX(float translationX) { + super.setTranslationX(translationX); + } + private class MessageAccessibilityNodeProvider extends AccessibilityNodeProvider { private final int LINK_IDS_START = 2000; @@ -10770,7 +11355,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate info.setText(instantViewLayout.getText()); } info.addAction(AccessibilityNodeInfo.ACTION_CLICK); - int textX = photoImage.getImageX(); + int textX = (int) photoImage.getImageX(); int instantY = getMeasuredHeight() - AndroidUtilities.dp(36 + 28); int addX; if (currentMessageObject.isOutOwner()) { @@ -10796,7 +11381,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate } info.addAction(AccessibilityNodeInfo.ACTION_CLICK); // } else if (drawShareButton && x >= shareStartX && x <= shareStartX + AndroidUtilities.dp(40) && y >= shareStartY && y <= shareStartY + AndroidUtilities.dp(32)) { - rect.set(shareStartX, shareStartY, shareStartX + AndroidUtilities.dp(40), shareStartY + AndroidUtilities.dp(32)); + rect.set((int) shareStartX, (int) shareStartY, (int) shareStartX + AndroidUtilities.dp(40), (int) shareStartY + AndroidUtilities.dp(32)); info.setBoundsInParent(rect); if (accessibilityVirtualViewBounds.get(virtualViewId) == null || !accessibilityVirtualViewBounds.get(virtualViewId).equals(rect)) { accessibilityVirtualViewBounds.put(virtualViewId, new Rect(rect)); @@ -10911,4 +11496,199 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate return links[id]; } } + + public void setImageCoords(float x, float y, float w, float h) { + photoImage.setImageCoords(x, y, w, h); + if (documentAttachType == DOCUMENT_ATTACH_TYPE_VIDEO || documentAttachType == DOCUMENT_ATTACH_TYPE_GIF) { + videoButtonX = (int) (photoImage.getImageX() + AndroidUtilities.dp(8)); + videoButtonY = (int) (photoImage.getImageY() + AndroidUtilities.dp(8)); + videoRadialProgress.setProgressRect(videoButtonX, videoButtonY, videoButtonX + AndroidUtilities.dp(24), videoButtonY + AndroidUtilities.dp(24)); + + buttonX = (int) (x + (photoImage.getImageWidth() - AndroidUtilities.dp(48)) / 2.0f); + buttonY = (int) (photoImage.getImageY() + (photoImage.getImageHeight() - AndroidUtilities.dp(48)) / 2); + radialProgress.setProgressRect(buttonX, buttonY, buttonX + AndroidUtilities.dp(48), buttonY + AndroidUtilities.dp(48)); + } + } + + @Override + public float getAlpha() { + if (ALPHA_PROPERTY_WORKAROUND) { + return alphaInternal; + } + return super.getAlpha(); + } + + @Override + public void setAlpha(float alpha) { + if (ALPHA_PROPERTY_WORKAROUND) { + alphaInternal = alpha; + invalidate(); + } else { + super.setAlpha(alpha); + } + } + + public TransitionParams getTransitionParams() { + return transitionParams; + } + + public class TransitionParams { + + public float lastDrawingImageX, lastDrawingImageY, lastDrawingImageW, lastDrawingImageH; + public float lastDrawingCaptionX, lastDrawingCaptionY; + + public boolean imageChangeBoundsTransition; + public int deltaLeft; + public int deltaRight; + public int deltaBottom; + public int deltaTop; + + public float animateToImageX, animateToImageY, animateToImageW, animateToImageH; + public float captionFromX, captionFromY; + private boolean moveCaption; + + public int[] imageRoundRadius = new int[4]; + public float captionEnterProgress = 1f; + + public boolean wasDraw; + public boolean animateBackgroundBoundsInner; + public boolean ignoreAlpha; + public boolean drawPinnedBottomBackground; + public float changePinnedBottomProgress = 1f; + public int[] animateToRadius; + public boolean animateRadius; + public boolean transformGroupToSingleMessage; + public Rect lastDrawingBackgroundRect = new Rect(); + + boolean animateMessageText; + private ArrayList animateOutTextBlocks; + private ArrayList lastDrawingTextBlocks; + + private boolean animateEditedEnter; + private StaticLayout animateEditedLayout; + private StaticLayout animateTimeLayout; + private boolean lastDrawingEdited; + + boolean animateReplaceCaptionLayout; + private StaticLayout animateOutCaptionLayout; + private StaticLayout lastDrawingCaptionLayout; + + public float animateChangeProgress = 1f; + private boolean lastDrawBotButtons; + + + public void recordDrawingState() { + wasDraw = true; + lastDrawingImageX = photoImage.getImageX(); + lastDrawingImageY = photoImage.getImageY(); + lastDrawingImageW = photoImage.getImageWidth(); + lastDrawingImageH = photoImage.getImageHeight(); + int[] r = photoImage.getRoundRadius(); + System.arraycopy(r, 0, imageRoundRadius, 0, 4); + if (currentBackgroundDrawable != null) { + lastDrawingBackgroundRect.set(currentBackgroundDrawable.getBounds()); + } + lastDrawingTextBlocks = currentMessageObject.textLayoutBlocks; + lastDrawingEdited = edited; + + lastDrawingCaptionX = captionX; + lastDrawingCaptionY = captionY; + + lastDrawingCaptionLayout = captionLayout; + lastDrawBotButtons = !botButtons.isEmpty(); + } + + public boolean animateChange() { + if (!wasDraw) { + return false; + } + boolean changed = false; + + animateMessageText = false; + if (currentMessageObject.textLayoutBlocks != lastDrawingTextBlocks) { + animateMessageText = true; + animateOutTextBlocks = lastDrawingTextBlocks; + changed = true; + } + if (edited && !lastDrawingEdited && timeLayout != null) { + String editedStr = LocaleController.getString("EditedMessage", R.string.EditedMessage); + String text = timeLayout.getText().toString(); + int i = text.indexOf(editedStr); + if (i >= 0) { + animateEditedLayout = new StaticLayout(editedStr, Theme.chat_timePaint, timeTextWidth + AndroidUtilities.dp(100), Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false); + SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder(); + spannableStringBuilder.append(editedStr); + spannableStringBuilder.append(text.substring(editedStr.length())); + spannableStringBuilder.setSpan(new EmptyStubSpan(), 0, editedStr.length(), 0); + animateTimeLayout = new StaticLayout(spannableStringBuilder, Theme.chat_timePaint, timeTextWidth + AndroidUtilities.dp(100), Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false); + animateEditedEnter = true; + changed = true; + } + } + + if (captionLayout != lastDrawingCaptionLayout) { + String oldCaption = lastDrawingCaptionLayout == null ? null : lastDrawingCaptionLayout.getText().toString(); + String currentCaption = captionLayout == null ? null : captionLayout.getText().toString(); + if (currentCaption != null && ((oldCaption == null && currentCaption != null) || + !oldCaption.equals(currentCaption))) { + animateReplaceCaptionLayout = true; + animateOutCaptionLayout = lastDrawingCaptionLayout; + changed = true; + } + } else { + updateCaptionLayout(); + if (lastDrawingCaptionX != captionX || lastDrawingCaptionY != captionY) { + moveCaption = true; + captionFromX = lastDrawingCaptionX; + captionFromY = lastDrawingCaptionY; + changed = true; + } + } + return changed; + } + + public void onDetach() { + wasDraw = false; + // resetAnimation(); + } + + public void resetAnimation() { + animateBackgroundBoundsInner = false; + deltaLeft = 0; + deltaRight = 0; + deltaBottom = 0; + deltaTop = 0; + if (imageChangeBoundsTransition && animateToImageW != 0 && animateToImageH != 0) { + photoImage.setImageCoords(animateToImageX, animateToImageY, animateToImageW, animateToImageH); + } + if (animateRadius) { + photoImage.setRoundRadius(animateToRadius); + } + animateToImageX = 0; + animateToImageY = 0; + animateToImageW = 0; + animateToImageH = 0; + imageChangeBoundsTransition = false; + changePinnedBottomProgress = 1f; + captionEnterProgress = 1f; + animateRadius = false; + animateChangeProgress = 1f; + animateMessageText = false; + animateOutTextBlocks = null; + animateEditedLayout = null; + animateTimeLayout = null; + animateEditedEnter = false; + animateReplaceCaptionLayout = false; + transformGroupToSingleMessage = false; + animateOutCaptionLayout = null; + moveCaption = false; + } + + public boolean supportChangeAnimation() { + if (lastDrawBotButtons || !botButtons.isEmpty()) { + return false; + } + return true; + } + } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ContextLinkCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ContextLinkCell.java index 635ba0087..c9e951563 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ContextLinkCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ContextLinkCell.java @@ -85,6 +85,8 @@ public class ContextLinkCell extends FrameLayout implements DownloadController.F private boolean canPreviewGif; + private boolean isForceGif; + private int linkY; private StaticLayout linkLayout; @@ -95,6 +97,7 @@ public class ContextLinkCell extends FrameLayout implements DownloadController.F private StaticLayout descriptionLayout; private TLRPC.BotInlineResult inlineResult; + private TLRPC.User inlineBot; private TLRPC.Document documentAttach; private int currentDate; private TLRPC.Photo photoAttach; @@ -116,6 +119,8 @@ public class ContextLinkCell extends FrameLayout implements DownloadController.F private float scale; private static AccelerateInterpolator interpolator = new AccelerateInterpolator(0.5f); + private boolean hideLoadProgress; + private CheckBox2 checkBox; private ContextLinkCellDelegate delegate; @@ -215,7 +220,7 @@ public class ContextLinkCell extends FrameLayout implements DownloadController.F String ext = null; if (documentAttach != null) { - if (MessageObject.isGifDocument(documentAttach)) { + if (isForceGif || MessageObject.isGifDocument(documentAttach)) { currentPhotoObject = FileLoader.getClosestPhotoSizeWithSize(documentAttach.thumbs, 90); } else if (MessageObject.isStickerDocument(documentAttach) || MessageObject.isAnimatedStickerDocument(documentAttach, true)) { currentPhotoObject = FileLoader.getClosestPhotoSizeWithSize(documentAttach.thumbs, 90); @@ -236,7 +241,11 @@ public class ContextLinkCell extends FrameLayout implements DownloadController.F if (inlineResult.content instanceof TLRPC.TL_webDocument) { if (inlineResult.type != null) { if (inlineResult.type.startsWith("gif")) { - webDocument = (TLRPC.TL_webDocument) inlineResult.content; + if (inlineResult.thumb instanceof TLRPC.TL_webDocument && "video/mp4".equals(inlineResult.thumb.mime_type)) { + webDocument = (TLRPC.TL_webDocument) inlineResult.thumb; + } else { + webDocument = (TLRPC.TL_webDocument) inlineResult.content; + } documentAttachType = DOCUMENT_ATTACH_TYPE_GIF; } else if (inlineResult.type.equals("photo")) { if (inlineResult.thumb instanceof TLRPC.TL_webDocument) { @@ -315,7 +324,16 @@ public class ContextLinkCell extends FrameLayout implements DownloadController.F if (documentAttachType == DOCUMENT_ATTACH_TYPE_GIF) { if (documentAttach != null) { - linkImageView.setImage(ImageLocation.getForDocument(documentAttach), null, ImageLocation.getForDocument(currentPhotoObject, documentAttach), currentPhotoFilter, documentAttach.size, ext, parentObject, 0); + TLRPC.TL_videoSize thumb = MessageObject.getDocumentVideoThumb(documentAttach); + if (thumb != null) { + linkImageView.setImage(ImageLocation.getForDocument(thumb, documentAttach), null, ImageLocation.getForDocument(currentPhotoObject, documentAttach), currentPhotoFilter, -1, ext, parentObject, 1); + } else { + ImageLocation location = ImageLocation.getForDocument(documentAttach); + if (isForceGif) { + location.imageType = FileLoader.IMAGE_TYPE_ANIMATION; + } + linkImageView.setImage(location, null, ImageLocation.getForDocument(currentPhotoObject, documentAttach), currentPhotoFilter, documentAttach.size, ext, parentObject, 0); + } } else if (webFile != null) { linkImageView.setImage(ImageLocation.getForWebFile(webFile), null, ImageLocation.getForPhoto(currentPhotoObject, photoAttach), currentPhotoFilter, -1, ext, parentObject, 1); } else { @@ -450,9 +468,14 @@ public class ContextLinkCell extends FrameLayout implements DownloadController.F } } - public void setLink(TLRPC.BotInlineResult contextResult, boolean media, boolean divider, boolean shadow) { + public void setLink(TLRPC.BotInlineResult contextResult, TLRPC.User bot, boolean media, boolean divider, boolean shadow) { + setLink(contextResult, bot, media, divider, shadow, false); + } + + public void setLink(TLRPC.BotInlineResult contextResult, TLRPC.User bot, boolean media, boolean divider, boolean shadow, boolean forceGif) { needDivider = divider; needShadow = shadow; + inlineBot = bot; parentObject = inlineResult = contextResult; if (inlineResult != null) { documentAttach = inlineResult.document; @@ -462,11 +485,19 @@ public class ContextLinkCell extends FrameLayout implements DownloadController.F photoAttach = null; } mediaWebpage = media; + isForceGif = forceGif; setAttachType(); + if (forceGif) { + documentAttachType = DOCUMENT_ATTACH_TYPE_GIF; + } requestLayout(); updateButtonState(false, false); } + public TLRPC.User getInlineBot() { + return inlineBot; + } + public Object getParentObject() { return parentObject; } @@ -484,7 +515,9 @@ public class ContextLinkCell extends FrameLayout implements DownloadController.F documentAttach = document; photoAttach = null; mediaWebpage = true; + isForceGif = true; setAttachType(); + documentAttachType = DOCUMENT_ATTACH_TYPE_GIF; requestLayout(); updateButtonState(false, false); } @@ -703,24 +736,24 @@ public class ContextLinkCell extends FrameLayout implements DownloadController.F } else if (inlineResult != null && inlineResult.type.equals("file")) { int w = Theme.chat_inlineResultFile.getIntrinsicWidth(); int h = Theme.chat_inlineResultFile.getIntrinsicHeight(); - int x = linkImageView.getImageX() + (AndroidUtilities.dp(52) - w) / 2; - int y = linkImageView.getImageY() + (AndroidUtilities.dp(52) - h) / 2; + int x = (int) (linkImageView.getImageX() + (AndroidUtilities.dp(52) - w) / 2); + int y = (int) (linkImageView.getImageY() + (AndroidUtilities.dp(52) - h) / 2); canvas.drawRect(linkImageView.getImageX(), linkImageView.getImageY(), linkImageView.getImageX() + AndroidUtilities.dp(52), linkImageView.getImageY() + AndroidUtilities.dp(52), LetterDrawable.paint); Theme.chat_inlineResultFile.setBounds(x, y, x + w, y + h); Theme.chat_inlineResultFile.draw(canvas); } else if (inlineResult != null && (inlineResult.type.equals("audio") || inlineResult.type.equals("voice"))) { int w = Theme.chat_inlineResultAudio.getIntrinsicWidth(); int h = Theme.chat_inlineResultAudio.getIntrinsicHeight(); - int x = linkImageView.getImageX() + (AndroidUtilities.dp(52) - w) / 2; - int y = linkImageView.getImageY() + (AndroidUtilities.dp(52) - h) / 2; + int x = (int) (linkImageView.getImageX() + (AndroidUtilities.dp(52) - w) / 2); + int y = (int) (linkImageView.getImageY() + (AndroidUtilities.dp(52) - h) / 2); canvas.drawRect(linkImageView.getImageX(), linkImageView.getImageY(), linkImageView.getImageX() + AndroidUtilities.dp(52), linkImageView.getImageY() + AndroidUtilities.dp(52), LetterDrawable.paint); Theme.chat_inlineResultAudio.setBounds(x, y, x + w, y + h); Theme.chat_inlineResultAudio.draw(canvas); } else if (inlineResult != null && (inlineResult.type.equals("venue") || inlineResult.type.equals("geo"))) { int w = Theme.chat_inlineResultLocation.getIntrinsicWidth(); int h = Theme.chat_inlineResultLocation.getIntrinsicHeight(); - int x = linkImageView.getImageX() + (AndroidUtilities.dp(52) - w) / 2; - int y = linkImageView.getImageY() + (AndroidUtilities.dp(52) - h) / 2; + int x = (int) (linkImageView.getImageX() + (AndroidUtilities.dp(52) - w) / 2); + int y = (int) (linkImageView.getImageY() + (AndroidUtilities.dp(52) - h) / 2); canvas.drawRect(linkImageView.getImageX(), linkImageView.getImageY(), linkImageView.getImageX() + AndroidUtilities.dp(52), linkImageView.getImageY() + AndroidUtilities.dp(52), LetterDrawable.paint); Theme.chat_inlineResultLocation.setBounds(x, y, x + w, y + h); Theme.chat_inlineResultLocation.draw(canvas); @@ -731,8 +764,8 @@ public class ContextLinkCell extends FrameLayout implements DownloadController.F if (inlineResult != null && (inlineResult.send_message instanceof TLRPC.TL_botInlineMessageMediaGeo || inlineResult.send_message instanceof TLRPC.TL_botInlineMessageMediaVenue)) { int w = Theme.chat_inlineResultLocation.getIntrinsicWidth(); int h = Theme.chat_inlineResultLocation.getIntrinsicHeight(); - int x = linkImageView.getImageX() + (linkImageView.getImageWidth() - w) / 2; - int y = linkImageView.getImageY() + (linkImageView.getImageHeight() - h) / 2; + int x = (int) (linkImageView.getImageX() + (linkImageView.getImageWidth() - w) / 2); + int y = (int) (linkImageView.getImageY() + (linkImageView.getImageHeight() - h) / 2); canvas.drawRect(linkImageView.getImageX(), linkImageView.getImageY(), linkImageView.getImageX() + linkImageView.getImageWidth(), linkImageView.getImageY() + linkImageView.getImageHeight(), LetterDrawable.paint); Theme.chat_inlineResultLocation.setBounds(x, y, x + w, y + h); Theme.chat_inlineResultLocation.draw(canvas); @@ -818,19 +851,28 @@ public class ContextLinkCell extends FrameLayout implements DownloadController.F fileName = FileLoader.getAttachFileName(currentPhotoObject); cacheFile = FileLoader.getPathToAttach(currentPhotoObject); } else if (inlineResult.content instanceof TLRPC.TL_webDocument) { - fileName = Utilities.MD5(inlineResult.content.url) + "." + ImageLoader.getHttpUrlExtension(inlineResult.content.url, "jpg"); + fileName = Utilities.MD5(inlineResult.content.url) + "." + ImageLoader.getHttpUrlExtension(inlineResult.content.url, FileLoader.getMimeTypePart(inlineResult.content.mime_type)); cacheFile = new File(FileLoader.getDirectory(FileLoader.MEDIA_DIR_CACHE), fileName); + if (documentAttachType == DOCUMENT_ATTACH_TYPE_GIF && inlineResult.thumb instanceof TLRPC.TL_webDocument && "video/mp4".equals(inlineResult.thumb.mime_type)) { + fileName = null; + } } else if (inlineResult.thumb instanceof TLRPC.TL_webDocument) { - fileName = Utilities.MD5(inlineResult.thumb.url) + "." + ImageLoader.getHttpUrlExtension(inlineResult.thumb.url, "jpg"); + fileName = Utilities.MD5(inlineResult.thumb.url) + "." + ImageLoader.getHttpUrlExtension(inlineResult.thumb.url, FileLoader.getMimeTypePart(inlineResult.thumb.mime_type)); cacheFile = new File(FileLoader.getDirectory(FileLoader.MEDIA_DIR_CACHE), fileName); } } else if (documentAttach != null) { fileName = FileLoader.getAttachFileName(documentAttach); cacheFile = FileLoader.getPathToAttach(documentAttach); } + + if (documentAttach != null && documentAttachType == DOCUMENT_ATTACH_TYPE_GIF && MessageObject.getDocumentVideoThumb(documentAttach) != null) { + fileName = null; + } } if (TextUtils.isEmpty(fileName)) { + buttonState = -1; + radialProgress.setIcon(MediaActionDrawable.ICON_NONE, ifSame, false); return; } if (!cacheFile.exists()) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/DialogCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/DialogCell.java index c28c447b2..8e37498f8 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/DialogCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/DialogCell.java @@ -2070,12 +2070,12 @@ public class DialogCell extends BaseCell { if (user != null && isDialogCell && currentDialogFolderId == 0 && !MessagesController.isSupportUser(user) && !user.bot) { boolean isOnline = !user.self && (user.status != null && user.status.expires > ConnectionsManager.getInstance(currentAccount).getCurrentTime() || MessagesController.getInstance(currentAccount).onlinePrivacy.containsKey(user.id)); if (isOnline || onlineProgress != 0) { - int top = avatarImage.getImageY2() - AndroidUtilities.dp(useForceThreeLines || SharedConfig.useThreeLinesLayout ? 6 : 8); + int top = (int) (avatarImage.getImageY2() - AndroidUtilities.dp(useForceThreeLines || SharedConfig.useThreeLinesLayout ? 6 : 8)); int left; if (LocaleController.isRTL) { - left = avatarImage.getImageX() + AndroidUtilities.dp(useForceThreeLines || SharedConfig.useThreeLinesLayout ? 10 : 6); + left = (int) (avatarImage.getImageX() + AndroidUtilities.dp(useForceThreeLines || SharedConfig.useThreeLinesLayout ? 10 : 6)); } else { - left = avatarImage.getImageX2() - AndroidUtilities.dp(useForceThreeLines || SharedConfig.useThreeLinesLayout ? 10 : 6); + left = (int) (avatarImage.getImageX2() - AndroidUtilities.dp(useForceThreeLines || SharedConfig.useThreeLinesLayout ? 10 : 6)); } Theme.dialogs_onlineCirclePaint.setColor(Theme.getColor(Theme.key_windowBackgroundWhite)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/FeaturedStickerSetCell2.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/FeaturedStickerSetCell2.java index 8f1a0956d..1627114a5 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/FeaturedStickerSetCell2.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/FeaturedStickerSetCell2.java @@ -37,9 +37,14 @@ import org.telegram.messenger.UserConfig; import org.telegram.tgnet.TLObject; import org.telegram.tgnet.TLRPC; import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.ActionBar.ThemeDescription; import org.telegram.ui.Components.BackupImageView; import org.telegram.ui.Components.LayoutHelper; import org.telegram.ui.Components.ProgressButton; +import org.telegram.ui.Components.RecyclerListView; + +import java.util.ArrayList; +import java.util.List; public class FeaturedStickerSetCell2 extends FrameLayout { @@ -87,8 +92,6 @@ public class FeaturedStickerSetCell2 extends FrameLayout { addButton = new ProgressButton(context); addButton.setText(LocaleController.getString("Add", R.string.Add)); addButton.setTextColor(Theme.getColor(Theme.key_featuredStickers_buttonText)); - addButton.setProgressColor(Theme.getColor(Theme.key_featuredStickers_buttonProgress)); - addButton.setBackgroundRoundRect(Theme.getColor(Theme.key_featuredStickers_addButton), Theme.getColor(Theme.key_featuredStickers_addButtonPressed)); addView(addButton, LayoutHelper.createFrameRelatively(LayoutHelper.WRAP_CONTENT, 28, Gravity.TOP | Gravity.END, 0, 18, 14, 0)); delButton = new TextView(context); @@ -98,6 +101,8 @@ public class FeaturedStickerSetCell2 extends FrameLayout { delButton.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); delButton.setText(LocaleController.getString("StickersRemove", R.string.StickersRemove)); addView(delButton, LayoutHelper.createFrameRelatively(LayoutHelper.WRAP_CONTENT, 28, Gravity.TOP | Gravity.END, 0, 16, 14, 0)); + + updateColors(); } @Override @@ -294,4 +299,19 @@ public class FeaturedStickerSetCell2 extends FrameLayout { public BackupImageView getImageView() { return imageView; } + + public void updateColors() { + addButton.setProgressColor(Theme.getColor(Theme.key_featuredStickers_buttonProgress)); + addButton.setBackgroundRoundRect(Theme.getColor(Theme.key_featuredStickers_addButton), Theme.getColor(Theme.key_featuredStickers_addButtonPressed)); + } + + public static void createThemeDescriptions(List descriptions, RecyclerListView listView, ThemeDescription.ThemeDescriptionDelegate delegate) { + descriptions.add(new ThemeDescription(listView, ThemeDescription.FLAG_TEXTCOLOR, new Class[]{FeaturedStickerSetCell.class}, new String[]{"textView"}, null, null, null, Theme.key_windowBackgroundWhiteBlackText)); + descriptions.add(new ThemeDescription(listView, ThemeDescription.FLAG_TEXTCOLOR, new Class[]{FeaturedStickerSetCell.class}, new String[]{"valueTextView"}, null, null, null, Theme.key_windowBackgroundWhiteGrayText2)); + descriptions.add(new ThemeDescription(listView, ThemeDescription.FLAG_TEXTCOLOR, new Class[]{FeaturedStickerSetCell.class}, new String[]{"addButton"}, null, null, null, Theme.key_featuredStickers_buttonText)); + descriptions.add(new ThemeDescription(listView, ThemeDescription.FLAG_TEXTCOLOR, new Class[]{FeaturedStickerSetCell.class}, new String[]{"delButton"}, null, null, null, Theme.key_featuredStickers_removeButtonText)); + descriptions.add(new ThemeDescription(listView, 0, new Class[]{FeaturedStickerSetCell.class}, Theme.dividerPaint, null, null, Theme.key_divider)); + descriptions.add(new ThemeDescription(null, 0, null, null, null, delegate, Theme.key_featuredStickers_buttonProgress)); + descriptions.add(new ThemeDescription(null, 0, null, null, null, delegate, Theme.key_featuredStickers_addButtonPressed)); + } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/FeaturedStickerSetInfoCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/FeaturedStickerSetInfoCell.java index caec3db53..d7e18ab28 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/FeaturedStickerSetInfoCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/FeaturedStickerSetInfoCell.java @@ -33,12 +33,18 @@ import org.telegram.messenger.R; import org.telegram.messenger.UserConfig; import org.telegram.tgnet.TLRPC; import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.ActionBar.ThemeDescription; import org.telegram.ui.Components.ColorSpanUnderline; import org.telegram.ui.Components.LayoutHelper; import org.telegram.ui.Components.ProgressButton; +import org.telegram.ui.Components.RecyclerListView; + +import java.util.List; public class FeaturedStickerSetInfoCell extends FrameLayout { + private boolean canAddRemove; + private TextView nameTextView; private TextView infoTextView; private ProgressButton addButton; @@ -55,12 +61,23 @@ public class FeaturedStickerSetInfoCell extends FrameLayout { private int currentAccount = UserConfig.selectedAccount; private Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); + private int stickerSetNameSearchIndex; + private int stickerSetNameSearchLength; + + private CharSequence url; + private int urlSearchLength; + public FeaturedStickerSetInfoCell(Context context, int left) { this(context, left, false); } public FeaturedStickerSetInfoCell(Context context, int left, boolean supportRtl) { + this(context, left, supportRtl, true); + } + + public FeaturedStickerSetInfoCell(Context context, int left, boolean supportRtl, boolean canAddRemove) { super(context); + this.canAddRemove = canAddRemove; FrameLayout.LayoutParams lp; @@ -89,58 +106,65 @@ public class FeaturedStickerSetInfoCell extends FrameLayout { } addView(infoTextView, lp); - addButton = new ProgressButton(context); - addButton.setProgressColor(Theme.getColor(Theme.key_featuredStickers_buttonProgress)); - addButton.setTextColor(Theme.getColor(Theme.key_featuredStickers_buttonText)); - addButton.setBackgroundRoundRect(Theme.getColor(Theme.key_featuredStickers_addButton), Theme.getColor(Theme.key_featuredStickers_addButtonPressed)); - addButton.setText(LocaleController.getString("Add", R.string.Add)); - if (supportRtl) { - lp = LayoutHelper.createFrameRelatively(LayoutHelper.WRAP_CONTENT, 28, Gravity.TOP | Gravity.END, 0, 16, 14, 0); - } else { - lp = LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, 28, Gravity.TOP | Gravity.RIGHT, 0, 16, 14, 0); - } - addView(addButton, lp); + if (canAddRemove) { + addButton = new ProgressButton(context); + addButton.setTextColor(Theme.getColor(Theme.key_featuredStickers_buttonText)); + addButton.setText(LocaleController.getString("Add", R.string.Add)); + if (supportRtl) { + lp = LayoutHelper.createFrameRelatively(LayoutHelper.WRAP_CONTENT, 28, Gravity.TOP | Gravity.END, 0, 16, 14, 0); + } else { + lp = LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, 28, Gravity.TOP | Gravity.RIGHT, 0, 16, 14, 0); + } + addView(addButton, lp); - delButton = new TextView(context); - delButton.setGravity(Gravity.CENTER); - delButton.setTextColor(Theme.getColor(Theme.key_featuredStickers_removeButtonText)); - delButton.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); - delButton.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); - delButton.setText(LocaleController.getString("StickersRemove", R.string.StickersRemove)); - if (supportRtl) { - lp = LayoutHelper.createFrameRelatively(LayoutHelper.WRAP_CONTENT, 28, Gravity.TOP | Gravity.END, 0, 16, 14, 0); - } else { - lp = LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, 28, Gravity.TOP | Gravity.RIGHT, 0, 16, 14, 0); + delButton = new TextView(context); + delButton.setGravity(Gravity.CENTER); + delButton.setTextColor(Theme.getColor(Theme.key_featuredStickers_removeButtonText)); + delButton.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); + delButton.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); + delButton.setText(LocaleController.getString("StickersRemove", R.string.StickersRemove)); + if (supportRtl) { + lp = LayoutHelper.createFrameRelatively(LayoutHelper.WRAP_CONTENT, 28, Gravity.TOP | Gravity.END, 0, 16, 14, 0); + } else { + lp = LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, 28, Gravity.TOP | Gravity.RIGHT, 0, 16, 14, 0); + } + addView(delButton, lp); } - addView(delButton, lp); setWillNotDraw(false); + updateColors(); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(MeasureSpec.makeMeasureSpec(MeasureSpec.getSize(widthMeasureSpec), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(60), MeasureSpec.EXACTLY)); - int width = addButton.getMeasuredWidth(); - int width2 = delButton.getMeasuredWidth(); - FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) delButton.getLayoutParams(); - if (width2 < width) { - layoutParams.rightMargin = AndroidUtilities.dp(14) + (width - width2) / 2; - } else { - layoutParams.rightMargin = AndroidUtilities.dp(14); - } + if (canAddRemove) { + int width = addButton.getMeasuredWidth(); + int width2 = delButton.getMeasuredWidth(); + FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) delButton.getLayoutParams(); + if (width2 < width) { + layoutParams.rightMargin = AndroidUtilities.dp(14) + (width - width2) / 2; + } else { + layoutParams.rightMargin = AndroidUtilities.dp(14); + } - measureChildWithMargins(nameTextView, widthMeasureSpec, width, heightMeasureSpec, 0); + measureChildWithMargins(nameTextView, widthMeasureSpec, width, heightMeasureSpec, 0); + } } public void setAddOnClickListener(OnClickListener onClickListener) { - hasOnClick = true; - addButton.setOnClickListener(onClickListener); - delButton.setOnClickListener(onClickListener); + if (canAddRemove) { + hasOnClick = true; + addButton.setOnClickListener(onClickListener); + delButton.setOnClickListener(onClickListener); + } } public void setAddDrawProgress(boolean drawProgress, boolean animated) { - addButton.setDrawProgress(drawProgress, animated); + if (canAddRemove) { + addButton.setDrawProgress(drawProgress, animated); + } } public void setStickerSet(TLRPC.StickerSetCovered stickerSet, boolean unread) { @@ -160,85 +184,98 @@ public class FeaturedStickerSetInfoCell extends FrameLayout { animatorSet.cancel(); animatorSet = null; } + set = stickerSet; + stickerSetNameSearchIndex = index; + stickerSetNameSearchLength = searchLength; if (searchLength != 0) { - SpannableStringBuilder builder = new SpannableStringBuilder(stickerSet.set.title); - try { - builder.setSpan(new ForegroundColorSpan(Theme.getColor(Theme.key_windowBackgroundWhiteBlueText4)), index, index + searchLength, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } catch (Exception ignore) { - - } - nameTextView.setText(builder); + updateStickerSetNameSearchSpan(); } else { nameTextView.setText(stickerSet.set.title); } infoTextView.setText(LocaleController.formatPluralString("Stickers", stickerSet.set.count)); isUnread = unread; - if (hasOnClick) { - addButton.setVisibility(VISIBLE); - isInstalled = forceInstalled || MediaDataController.getInstance(currentAccount).isStickerPackInstalled(stickerSet.set.id); - if (animated) { - if (isInstalled) { - delButton.setVisibility(VISIBLE); - } else { - addButton.setVisibility(VISIBLE); - } - animatorSet = new AnimatorSet(); - animatorSet.setDuration(250); - animatorSet.playTogether( - ObjectAnimator.ofFloat(delButton, View.ALPHA, isInstalled ? 1.0f : 0.0f), - ObjectAnimator.ofFloat(delButton, View.SCALE_X, isInstalled ? 1.0f : 0.0f), - ObjectAnimator.ofFloat(delButton, View.SCALE_Y, isInstalled ? 1.0f : 0.0f), - ObjectAnimator.ofFloat(addButton, View.ALPHA, isInstalled ? 0.0f : 1.0f), - ObjectAnimator.ofFloat(addButton, View.SCALE_X, isInstalled ? 0.0f : 1.0f), - ObjectAnimator.ofFloat(addButton, View.SCALE_Y, isInstalled ? 0.0f : 1.0f)); - animatorSet.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - if (isInstalled) { - addButton.setVisibility(INVISIBLE); - } else { - delButton.setVisibility(INVISIBLE); - } + if (canAddRemove) { + if (hasOnClick) { + addButton.setVisibility(VISIBLE); + isInstalled = forceInstalled || MediaDataController.getInstance(currentAccount).isStickerPackInstalled(stickerSet.set.id); + if (animated) { + if (isInstalled) { + delButton.setVisibility(VISIBLE); + } else { + addButton.setVisibility(VISIBLE); } - }); - animatorSet.setInterpolator(new OvershootInterpolator(1.02f)); - animatorSet.start(); - } else { - if (isInstalled) { - delButton.setVisibility(VISIBLE); - delButton.setAlpha(1.0f); - delButton.setScaleX(1.0f); - delButton.setScaleY(1.0f); - addButton.setVisibility(INVISIBLE); - addButton.setAlpha(0.0f); - addButton.setScaleX(0.0f); - addButton.setScaleY(0.0f); + animatorSet = new AnimatorSet(); + animatorSet.setDuration(250); + animatorSet.playTogether( + ObjectAnimator.ofFloat(delButton, View.ALPHA, isInstalled ? 1.0f : 0.0f), + ObjectAnimator.ofFloat(delButton, View.SCALE_X, isInstalled ? 1.0f : 0.0f), + ObjectAnimator.ofFloat(delButton, View.SCALE_Y, isInstalled ? 1.0f : 0.0f), + ObjectAnimator.ofFloat(addButton, View.ALPHA, isInstalled ? 0.0f : 1.0f), + ObjectAnimator.ofFloat(addButton, View.SCALE_X, isInstalled ? 0.0f : 1.0f), + ObjectAnimator.ofFloat(addButton, View.SCALE_Y, isInstalled ? 0.0f : 1.0f)); + animatorSet.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + if (isInstalled) { + addButton.setVisibility(INVISIBLE); + } else { + delButton.setVisibility(INVISIBLE); + } + } + }); + animatorSet.setInterpolator(new OvershootInterpolator(1.02f)); + animatorSet.start(); } else { - addButton.setVisibility(VISIBLE); - addButton.setAlpha(1.0f); - addButton.setScaleX(1.0f); - addButton.setScaleY(1.0f); - delButton.setVisibility(INVISIBLE); - delButton.setAlpha(0.0f); - delButton.setScaleX(0.0f); - delButton.setScaleY(0.0f); + if (isInstalled) { + delButton.setVisibility(VISIBLE); + delButton.setAlpha(1.0f); + delButton.setScaleX(1.0f); + delButton.setScaleY(1.0f); + addButton.setVisibility(INVISIBLE); + addButton.setAlpha(0.0f); + addButton.setScaleX(0.0f); + addButton.setScaleY(0.0f); + } else { + addButton.setVisibility(VISIBLE); + addButton.setAlpha(1.0f); + addButton.setScaleX(1.0f); + addButton.setScaleY(1.0f); + delButton.setVisibility(INVISIBLE); + delButton.setAlpha(0.0f); + delButton.setScaleX(0.0f); + delButton.setScaleY(0.0f); + } } + } else { + addButton.setVisibility(GONE); } - } else { - addButton.setVisibility(GONE); } + } - set = stickerSet; + private void updateStickerSetNameSearchSpan() { + if (stickerSetNameSearchLength != 0) { + SpannableStringBuilder builder = new SpannableStringBuilder(set.set.title); + try { + builder.setSpan(new ForegroundColorSpan(Theme.getColor(Theme.key_windowBackgroundWhiteBlueText4)), stickerSetNameSearchIndex, stickerSetNameSearchIndex + stickerSetNameSearchLength, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + } catch (Exception ignore) { + } + nameTextView.setText(builder); + } } public void setUrl(CharSequence text, int searchLength) { - if (text != null) { - SpannableStringBuilder builder = new SpannableStringBuilder(text); - try { - builder.setSpan(new ColorSpanUnderline(Theme.getColor(Theme.key_windowBackgroundWhiteBlueText4)), 0, searchLength, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - builder.setSpan(new ColorSpanUnderline(Theme.getColor(Theme.key_chat_emojiPanelTrendingDescription)), searchLength, text.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } catch (Exception ignore) { + url = text; + urlSearchLength = searchLength; + updateUrlSearchSpan(); + } + private void updateUrlSearchSpan() { + if (url != null) { + SpannableStringBuilder builder = new SpannableStringBuilder(url); + try { + builder.setSpan(new ColorSpanUnderline(Theme.getColor(Theme.key_windowBackgroundWhiteBlueText4)), 0, urlSearchLength, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + builder.setSpan(new ColorSpanUnderline(Theme.getColor(Theme.key_chat_emojiPanelTrendingDescription)), urlSearchLength, url.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + } catch (Exception ignore) { } infoTextView.setText(builder); } @@ -270,4 +307,27 @@ public class FeaturedStickerSetInfoCell extends FrameLayout { canvas.drawLine(0, 0, getWidth(), 0, Theme.dividerPaint); } } + + public void updateColors() { + if (canAddRemove) { + addButton.setProgressColor(Theme.getColor(Theme.key_featuredStickers_buttonProgress)); + addButton.setBackgroundRoundRect(Theme.getColor(Theme.key_featuredStickers_addButton), Theme.getColor(Theme.key_featuredStickers_addButtonPressed)); + } + updateStickerSetNameSearchSpan(); + updateUrlSearchSpan(); + } + + public static void createThemeDescriptions(List descriptions, RecyclerListView listView, ThemeDescription.ThemeDescriptionDelegate delegate) { + descriptions.add(new ThemeDescription(listView, ThemeDescription.FLAG_TEXTCOLOR, new Class[]{FeaturedStickerSetInfoCell.class}, new String[]{"nameTextView"}, null, null, null, Theme.key_chat_emojiPanelTrendingTitle)); + descriptions.add(new ThemeDescription(listView, ThemeDescription.FLAG_TEXTCOLOR, new Class[]{FeaturedStickerSetInfoCell.class}, new String[]{"infoTextView"}, null, null, null, Theme.key_chat_emojiPanelTrendingDescription)); + descriptions.add(new ThemeDescription(listView, ThemeDescription.FLAG_TEXTCOLOR, new Class[]{FeaturedStickerSetInfoCell.class}, new String[]{"addButton"}, null, null, null, Theme.key_featuredStickers_buttonText)); + descriptions.add(new ThemeDescription(listView, ThemeDescription.FLAG_TEXTCOLOR, new Class[]{FeaturedStickerSetInfoCell.class}, new String[]{"delButton"}, null, null, null, Theme.key_featuredStickers_removeButtonText)); + descriptions.add(new ThemeDescription(listView, 0, new Class[]{FeaturedStickerSetInfoCell.class}, null, null, null, Theme.key_featuredStickers_unread)); + descriptions.add(new ThemeDescription(listView, 0, new Class[]{FeaturedStickerSetInfoCell.class}, Theme.dividerPaint, null, null, Theme.key_divider)); + descriptions.add(new ThemeDescription(null, 0, null, null, null, delegate, Theme.key_featuredStickers_buttonProgress)); + descriptions.add(new ThemeDescription(null, 0, null, null, null, delegate, Theme.key_featuredStickers_addButton)); + descriptions.add(new ThemeDescription(null, 0, null, null, null, delegate, Theme.key_featuredStickers_addButtonPressed)); + descriptions.add(new ThemeDescription(null, 0, null, null, null, delegate, Theme.key_windowBackgroundWhiteBlueText4)); + descriptions.add(new ThemeDescription(null, 0, null, null, null, delegate, Theme.key_chat_emojiPanelTrendingDescription)); + } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/GraySectionCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/GraySectionCell.java index 563bcc4d1..095aba317 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/GraySectionCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/GraySectionCell.java @@ -17,12 +17,16 @@ import android.widget.TextView; import org.telegram.messenger.AndroidUtilities; import org.telegram.messenger.LocaleController; import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.ActionBar.ThemeDescription; import org.telegram.ui.Components.LayoutHelper; +import org.telegram.ui.Components.RecyclerListView; + +import java.util.List; public class GraySectionCell extends FrameLayout { private TextView textView; - private TextView righTextView; + private TextView rightTextView; public GraySectionCell(Context context) { super(context); @@ -36,11 +40,11 @@ public class GraySectionCell extends FrameLayout { textView.setGravity((LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.CENTER_VERTICAL); addView(textView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, (LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP, 16, 0, 16, 0)); - righTextView = new TextView(getContext()); - righTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); - righTextView.setTextColor(Theme.getColor(Theme.key_graySectionText)); - righTextView.setGravity((LocaleController.isRTL ? Gravity.LEFT : Gravity.RIGHT) | Gravity.CENTER_VERTICAL); - addView(righTextView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.MATCH_PARENT, (LocaleController.isRTL ? Gravity.LEFT : Gravity.RIGHT) | Gravity.TOP, 16, 0, 16, 0)); + rightTextView = new TextView(getContext()); + rightTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); + rightTextView.setTextColor(Theme.getColor(Theme.key_graySectionText)); + rightTextView.setGravity((LocaleController.isRTL ? Gravity.LEFT : Gravity.RIGHT) | Gravity.CENTER_VERTICAL); + addView(rightTextView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.MATCH_PARENT, (LocaleController.isRTL ? Gravity.LEFT : Gravity.RIGHT) | Gravity.TOP, 16, 0, 16, 0)); } @Override @@ -50,13 +54,19 @@ public class GraySectionCell extends FrameLayout { public void setText(String text) { textView.setText(text); - righTextView.setVisibility(GONE); + rightTextView.setVisibility(GONE); } public void setText(String left, String right, OnClickListener onClickListener) { textView.setText(left); - righTextView.setText(right); - righTextView.setOnClickListener(onClickListener); - righTextView.setVisibility(VISIBLE); + rightTextView.setText(right); + rightTextView.setOnClickListener(onClickListener); + rightTextView.setVisibility(VISIBLE); + } + + public static void createThemeDescriptions(List descriptions, RecyclerListView listView) { + descriptions.add(new ThemeDescription(listView, 0, new Class[]{GraySectionCell.class}, new String[]{"textView"}, null, null, null, Theme.key_graySectionText)); + descriptions.add(new ThemeDescription(listView, 0, new Class[]{GraySectionCell.class}, new String[]{"rightTextView"}, null, null, null, Theme.key_graySectionText)); + descriptions.add(new ThemeDescription(listView, ThemeDescription.FLAG_CELLBACKGROUNDCOLOR, new Class[]{GraySectionCell.class}, null, null, null, Theme.key_graySection)); } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/GroupCreateUserCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/GroupCreateUserCell.java index ae6d9dc4f..0bcec29a4 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/GroupCreateUserCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/GroupCreateUserCell.java @@ -52,10 +52,13 @@ public class GroupCreateUserCell extends FrameLayout { private boolean drawDivider; private int padding; - public GroupCreateUserCell(Context context, boolean needCheck, int padding) { + private boolean showSelfAsSaved; + + public GroupCreateUserCell(Context context, boolean needCheck, int pad, boolean selfAsSaved) { super(context); drawDivider = false; - this.padding = padding; + padding = pad; + showSelfAsSaved = selfAsSaved; avatarDrawable = new AvatarDrawable(); avatarImageView = new BackupImageView(context); @@ -174,7 +177,11 @@ public class GroupCreateUserCell extends FrameLayout { statusTextView.setText(null); avatarImageView.setImage(null, "50_50", avatarDrawable); } else { - ((LayoutParams) nameTextView.getLayoutParams()).topMargin = AndroidUtilities.dp(10); + if (currentStatus != null && TextUtils.isEmpty(currentStatus)) { + ((LayoutParams) nameTextView.getLayoutParams()).topMargin = AndroidUtilities.dp(19); + } else { + ((LayoutParams) nameTextView.getLayoutParams()).topMargin = AndroidUtilities.dp(10); + } avatarImageView.getLayoutParams().width = avatarImageView.getLayoutParams().height = AndroidUtilities.dp(46); if (checkBox != null) { ((LayoutParams) checkBox.getLayoutParams()).topMargin = AndroidUtilities.dp(33); @@ -187,7 +194,7 @@ public class GroupCreateUserCell extends FrameLayout { if (currentObject instanceof TLRPC.User) { TLRPC.User currentUser = (TLRPC.User) currentObject; - if (UserObject.isUserSelf(currentUser)) { + if (showSelfAsSaved && UserObject.isUserSelf(currentUser)) { nameTextView.setText(LocaleController.getString("SavedMessages", R.string.SavedMessages), true); statusTextView.setText(null); avatarDrawable.setAvatarType(AvatarDrawable.AVATAR_TYPE_SAVED); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/PhotoAttachPhotoCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/PhotoAttachPhotoCell.java index 6941309ba..dea5ad69e 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/PhotoAttachPhotoCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/PhotoAttachPhotoCell.java @@ -21,6 +21,7 @@ import android.graphics.drawable.Drawable; import android.os.Build; import android.os.Bundle; import android.os.SystemClock; +import android.text.TextUtils; import android.util.TypedValue; import android.view.Gravity; import android.view.MotionEvent; @@ -227,11 +228,22 @@ public class PhotoAttachPhotoCell extends FrameLayout { imageView.setImage(ImageLocation.getForPhoto(searchImage.photoSize, searchImage.photo), "80_80", thumb, searchImage); } else if (searchImage.thumbPath != null) { imageView.setImage(searchImage.thumbPath, null, thumb); - } else if (searchImage.thumbUrl != null && searchImage.thumbUrl.length() > 0) { - imageView.setImage(searchImage.thumbUrl, null, thumb); - } else if (MessageObject.isDocumentHasThumb(searchImage.document)) { - TLRPC.PhotoSize photoSize = FileLoader.getClosestPhotoSizeWithSize(searchImage.document.thumbs, 320); - imageView.setImage(ImageLocation.getForDocument(photoSize, searchImage.document), null, thumb, searchImage); + } else if (!TextUtils.isEmpty(searchImage.thumbUrl)) { + ImageLocation location = ImageLocation.getForPath(searchImage.thumbUrl); + if (searchImage.type == 1 && searchImage.thumbUrl.endsWith("mp4")) { + location.imageType = FileLoader.IMAGE_TYPE_ANIMATION; + } + imageView.setImage(location, null, thumb, searchImage); + } else if (searchImage.document != null) { + MessageObject.getDocumentVideoThumb(searchImage.document); + TLRPC.TL_videoSize videoSize = MessageObject.getDocumentVideoThumb(searchImage.document); + if (videoSize != null) { + TLRPC.PhotoSize currentPhotoObject = FileLoader.getClosestPhotoSizeWithSize(searchImage.document.thumbs, 90); + imageView.setImage(ImageLocation.getForDocument(videoSize, searchImage.document), null, ImageLocation.getForDocument(currentPhotoObject, searchImage.document), "52_52", null, -1, 1, searchImage); + } else { + TLRPC.PhotoSize photoSize = FileLoader.getClosestPhotoSizeWithSize(searchImage.document.thumbs, 320); + imageView.setImage(ImageLocation.getForDocument(photoSize, searchImage.document), null, thumb, searchImage); + } } else { imageView.setImageDrawable(thumb); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/PhotoPickerPhotoCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/PhotoPickerPhotoCell.java index 0c3f9a86a..ae6c3ee46 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/PhotoPickerPhotoCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/PhotoPickerPhotoCell.java @@ -8,18 +8,15 @@ package org.telegram.ui.Cells; -import android.animation.Animator; -import android.animation.AnimatorListenerAdapter; -import android.animation.AnimatorSet; -import android.animation.ObjectAnimator; import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; +import android.graphics.Path; +import android.graphics.RectF; import android.graphics.drawable.Drawable; import android.util.TypedValue; import android.view.Gravity; import android.view.View; -import android.view.animation.DecelerateInterpolator; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.TextView; @@ -34,38 +31,51 @@ import org.telegram.messenger.R; import org.telegram.tgnet.TLRPC; import org.telegram.ui.ActionBar.Theme; import org.telegram.ui.Components.BackupImageView; -import org.telegram.ui.Components.CheckBox; +import org.telegram.ui.Components.CheckBox2; import org.telegram.ui.Components.LayoutHelper; -import org.telegram.ui.PhotoViewer; public class PhotoPickerPhotoCell extends FrameLayout { public BackupImageView imageView; public FrameLayout checkFrame; - public CheckBox checkBox; + public CheckBox2 checkBox; public TextView videoTextView; public FrameLayout videoInfoContainer; - private AnimatorSet animator; - private AnimatorSet animatorSet; - public int itemWidth; - private boolean zoomOnSelect; + private int itemWidth; + private int extraWidth; private Paint backgroundPaint = new Paint(); - private MediaController.PhotoEntry photoEntry; - public PhotoPickerPhotoCell(Context context, boolean zoom) { + public PhotoPickerPhotoCell(Context context) { super(context); setWillNotDraw(false); - zoomOnSelect = zoom; - imageView = new BackupImageView(context); + imageView.setRoundRadius(AndroidUtilities.dp(4)); addView(imageView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); checkFrame = new FrameLayout(context); addView(checkFrame, LayoutHelper.createFrame(42, 42, Gravity.RIGHT | Gravity.TOP)); - videoInfoContainer = new FrameLayout(context); - videoInfoContainer.setBackgroundResource(R.drawable.phototime); + videoInfoContainer = new FrameLayout(context) { + + private Path path = new Path(); + float[] radii = new float[8]; + private RectF rect = new RectF(); + private Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); + + @Override + protected void onDraw(Canvas canvas) { + rect.set(0, 0, getMeasuredWidth(), getMeasuredHeight()); + radii[0] = radii[1] = radii[2] = radii[3] = 0; + radii[4] = radii[5] = radii[6] = radii[7] = AndroidUtilities.dp(4); + path.reset(); + path.addRoundRect(rect, radii, Path.Direction.CW); + path.close(); + paint.setColor(0x7f000000); + canvas.drawPath(path, paint); + } + }; + videoInfoContainer.setWillNotDraw(false); videoInfoContainer.setPadding(AndroidUtilities.dp(3), 0, AndroidUtilities.dp(3), 0); addView(videoInfoContainer, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 16, Gravity.BOTTOM | Gravity.LEFT)); @@ -79,19 +89,18 @@ public class PhotoPickerPhotoCell extends FrameLayout { videoTextView.setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_NO); videoInfoContainer.addView(videoTextView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT | Gravity.CENTER_VERTICAL, 18, -0.7f, 0, 0)); - checkBox = new CheckBox(context, R.drawable.checkbig); - checkBox.setSize(zoom ? 30 : 26); - checkBox.setCheckOffset(AndroidUtilities.dp(1)); - checkBox.setDrawBackground(true); - checkBox.setColor(Theme.getColor(Theme.key_dialogFloatingButton), 0xffffffff); - addView(checkBox, LayoutHelper.createFrame(zoom ? 30 : 26, zoom ? 30 : 26, Gravity.RIGHT | Gravity.TOP, 0, 4, 4, 0)); + checkBox = new CheckBox2(context, 24); + checkBox.setDrawBackgroundAsArc(11); + checkBox.setColor(Theme.key_chat_attachCheckBoxBackground, Theme.key_chat_attachPhotoBackground, Theme.key_chat_attachCheckBoxCheck); + addView(checkBox, LayoutHelper.createFrame(26, 26, Gravity.LEFT | Gravity.TOP, 55, 4, 0, 0)); + checkBox.setVisibility(VISIBLE); setFocusable(true); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - super.onMeasure(MeasureSpec.makeMeasureSpec(itemWidth, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(itemWidth, MeasureSpec.EXACTLY)); + super.onMeasure(MeasureSpec.makeMeasureSpec(itemWidth + extraWidth, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(itemWidth, MeasureSpec.EXACTLY)); } @Override @@ -100,39 +109,30 @@ public class PhotoPickerPhotoCell extends FrameLayout { updateColors(); } - public void updateColors() { - checkBox.setColor(Theme.getColor(Theme.key_dialogFloatingButton), 0xffffffff); + public void setItemWidth(int width, int extra) { + itemWidth = width; + extraWidth = extra; + + FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) checkFrame.getLayoutParams(); + layoutParams.rightMargin = extra; + + layoutParams = (FrameLayout.LayoutParams) imageView.getLayoutParams(); + layoutParams.rightMargin = extra; + + layoutParams = (FrameLayout.LayoutParams) videoInfoContainer.getLayoutParams(); + layoutParams.rightMargin = extra; } - public void showCheck(boolean show) { - if (animatorSet != null) { - animatorSet.cancel(); - animatorSet = null; - } - animatorSet = new AnimatorSet(); - animatorSet.setInterpolator(new DecelerateInterpolator()); - animatorSet.setDuration(180); - animatorSet.playTogether( - ObjectAnimator.ofFloat(videoInfoContainer, "alpha", show ? 1.0f : 0.0f), - ObjectAnimator.ofFloat(checkBox, "alpha", show ? 1.0f : 0.0f)); - animatorSet.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - if (animation.equals(animatorSet)) { - animatorSet = null; - } - } - }); - animatorSet.start(); + public void updateColors() { + checkBox.setColor(Theme.key_chat_attachCheckBoxBackground, Theme.key_chat_attachPhotoBackground, Theme.key_chat_attachCheckBoxCheck); } public void setNum(int num) { checkBox.setNum(num); } - public void setImage(MediaController.PhotoEntry entry) { - Drawable thumb = zoomOnSelect ? Theme.chat_attachEmptyDrawable : getResources().getDrawable(R.drawable.nophotos); - photoEntry = entry; + public void setImage(MediaController.PhotoEntry photoEntry) { + Drawable thumb = getResources().getDrawable(R.drawable.nophotos); if (photoEntry.thumbPath != null) { imageView.setImage(photoEntry.thumbPath, null, thumb); } else if (photoEntry.path != null) { @@ -153,7 +153,7 @@ public class PhotoPickerPhotoCell extends FrameLayout { } public void setImage(MediaController.SearchImage searchImage) { - Drawable thumb = zoomOnSelect ? Theme.chat_attachEmptyDrawable : getResources().getDrawable(R.drawable.nophotos); + Drawable thumb = getResources().getDrawable(R.drawable.nophotos); if (searchImage.thumbPhotoSize != null) { imageView.setImage(ImageLocation.getForPhoto(searchImage.thumbPhotoSize, searchImage.photo), null, thumb, searchImage); } else if (searchImage.photoSize != null) { @@ -172,50 +172,5 @@ public class PhotoPickerPhotoCell extends FrameLayout { public void setChecked(final int num, final boolean checked, final boolean animated) { checkBox.setChecked(num, checked, animated); - if (animator != null) { - animator.cancel(); - animator = null; - } - if (zoomOnSelect) { - if (animated) { - animator = new AnimatorSet(); - animator.playTogether(ObjectAnimator.ofFloat(imageView, View.SCALE_X, checked ? 0.85f : 1.0f), - ObjectAnimator.ofFloat(imageView, View.SCALE_Y, checked ? 0.85f : 1.0f)); - animator.setDuration(200); - animator.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - if (animator != null && animator.equals(animation)) { - animator = null; - if (!checked) { - setBackgroundColor(0); - } - } - } - - @Override - public void onAnimationCancel(Animator animation) { - if (animator != null && animator.equals(animation)) { - animator = null; - } - } - }); - animator.start(); - } else { - imageView.setScaleX(checked ? 0.85f : 1.0f); - imageView.setScaleY(checked ? 0.85f : 1.0f); - } - } - } - - @Override - protected void onDraw(Canvas canvas) { - if (!zoomOnSelect) { - return; - } - if (checkBox.isChecked() || imageView.getScaleX() != 1.0f || !imageView.getImageReceiver().hasNotThumb() || imageView.getImageReceiver().getCurrentAlpha() != 1.0f || photoEntry != null && PhotoViewer.isShowingImage(photoEntry.path)) { - backgroundPaint.setColor(Theme.getColor(Theme.key_chat_attachPhotoBackground)); - canvas.drawRect(0, 0, imageView.getMeasuredWidth(), imageView.getMeasuredHeight(), backgroundPaint); - } } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/SharedLinkCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/SharedLinkCell.java index 4e73e3d54..a3a5bf254 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/SharedLinkCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/SharedLinkCell.java @@ -31,7 +31,6 @@ import org.telegram.messenger.LocaleController; import org.telegram.messenger.MessageObject; import org.telegram.messenger.FileLoader; import org.telegram.messenger.FileLog; -import org.telegram.messenger.browser.Browser; import org.telegram.tgnet.TLRPC; import org.telegram.ui.Components.CheckBox2; import org.telegram.ui.Components.LayoutHelper; @@ -46,10 +45,8 @@ public class SharedLinkCell extends FrameLayout { public interface SharedLinkCellDelegate { void needOpenWebView(TLRPC.WebPage webPage); - boolean canPerformActions(); - - void onLinkLongPress(final String urlFinal); + void onLinkPress(final String urlFinal, boolean longPress); } private boolean checkingForLongPress = false; @@ -75,7 +72,7 @@ public class SharedLinkCell extends FrameLayout { checkingForLongPress = false; performHapticFeedback(HapticFeedbackConstants.LONG_PRESS); if (pressedLink >= 0) { - delegate.onLinkLongPress(links.get(pressedLink)); + delegate.onLinkPress(links.get(pressedLink), true); } MotionEvent event = MotionEvent.obtain(0, 0, MotionEvent.ACTION_CANCEL, 0, 0, 0); onTouchEvent(event); @@ -430,7 +427,7 @@ public class SharedLinkCell extends FrameLayout { if (webPage != null && webPage.embed_url != null && webPage.embed_url.length() != 0) { delegate.needOpenWebView(webPage); } else { - Browser.openUrl(getContext(), links.get(pressedLink)); + delegate.onLinkPress(links.get(pressedLink), false); } } catch (Exception e) { FileLog.e(e); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/StickerSetNameCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/StickerSetNameCell.java index 0a13d0f08..ebe78223d 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/StickerSetNameCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/StickerSetNameCell.java @@ -25,8 +25,12 @@ import android.widget.TextView; import org.telegram.messenger.AndroidUtilities; import org.telegram.messenger.Emoji; import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.ActionBar.ThemeDescription; import org.telegram.ui.Components.ColorSpanUnderline; import org.telegram.ui.Components.LayoutHelper; +import org.telegram.ui.Components.RecyclerListView; + +import java.util.List; public class StickerSetNameCell extends FrameLayout { @@ -36,6 +40,13 @@ public class StickerSetNameCell extends FrameLayout { private boolean empty; private boolean isEmoji; + private CharSequence stickerSetName; + private int stickerSetNameSearchIndex; + private int stickerSetNameSearchLength; + + private CharSequence url; + private int urlSearchLength; + public StickerSetNameCell(Context context, boolean emoji) { this(context, emoji, false); } @@ -85,18 +96,21 @@ public class StickerSetNameCell extends FrameLayout { } public void setUrl(CharSequence text, int searchLength) { - if (text != null) { - SpannableStringBuilder builder = new SpannableStringBuilder(text); - try { - builder.setSpan(new ColorSpanUnderline(Theme.getColor(Theme.key_chat_emojiPanelStickerSetNameHighlight)), 0, searchLength, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //TODO - builder.setSpan(new ColorSpanUnderline(Theme.getColor(Theme.key_chat_emojiPanelStickerSetName)), searchLength, text.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } catch (Exception ignore) { + url = text; + urlSearchLength = searchLength; + urlTextView.setVisibility(text != null ? VISIBLE : GONE); + updateUrlSearchSpan(); + } + private void updateUrlSearchSpan() { + if (url != null) { + SpannableStringBuilder builder = new SpannableStringBuilder(url); + try { + builder.setSpan(new ColorSpanUnderline(Theme.getColor(Theme.key_chat_emojiPanelStickerSetNameHighlight)), 0, urlSearchLength, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + builder.setSpan(new ColorSpanUnderline(Theme.getColor(Theme.key_chat_emojiPanelStickerSetName)), urlSearchLength, url.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + } catch (Exception ignore) { } urlTextView.setText(builder); - urlTextView.setVisibility(VISIBLE); - } else { - urlTextView.setVisibility(GONE); } } @@ -104,20 +118,21 @@ public class StickerSetNameCell extends FrameLayout { setText(text, resId, 0, 0); } + public void setTitleColor(int color) { + textView.setTextColor(color); + } + public void setText(CharSequence text, int resId, int index, int searchLength) { + stickerSetName = text; + stickerSetNameSearchIndex = index; + stickerSetNameSearchLength = searchLength; if (text == null) { empty = true; textView.setText(""); buttonView.setVisibility(INVISIBLE); } else { if (searchLength != 0) { - SpannableStringBuilder builder = new SpannableStringBuilder(text); - try { - builder.setSpan(new ForegroundColorSpan(Theme.getColor(Theme.key_chat_emojiPanelStickerSetNameHighlight)), index, index + searchLength, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } catch (Exception ignore) { - - } - textView.setText(builder); + updateTextSearchSpan(); } else { textView.setText(Emoji.replaceEmoji(text, textView.getPaint().getFontMetricsInt(), AndroidUtilities.dp(14), false)); } @@ -130,6 +145,17 @@ public class StickerSetNameCell extends FrameLayout { } } + private void updateTextSearchSpan() { + if (stickerSetName != null && stickerSetNameSearchLength != 0) { + SpannableStringBuilder builder = new SpannableStringBuilder(stickerSetName); + try { + builder.setSpan(new ForegroundColorSpan(Theme.getColor(Theme.key_chat_emojiPanelStickerSetNameHighlight)), stickerSetNameSearchIndex, stickerSetNameSearchIndex + stickerSetNameSearchLength, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + } catch (Exception ignore) { + } + textView.setText(Emoji.replaceEmoji(builder, textView.getPaint().getFontMetricsInt(), AndroidUtilities.dp(14), false)); + } + } + public void setOnIconClickListener(OnClickListener onIconClickListener) { buttonView.setOnClickListener(onIconClickListener); } @@ -156,4 +182,17 @@ public class StickerSetNameCell extends FrameLayout { } super.measureChildWithMargins(child, parentWidthMeasureSpec, widthUsed, parentHeightMeasureSpec, heightUsed); } + + public void updateColors() { + updateTextSearchSpan(); + updateUrlSearchSpan(); + } + + public static void createThemeDescriptions(List descriptions, RecyclerListView listView, ThemeDescription.ThemeDescriptionDelegate delegate) { + descriptions.add(new ThemeDescription(listView, ThemeDescription.FLAG_TEXTCOLOR, new Class[]{StickerSetNameCell.class}, new String[]{"textView"}, null, null, null, Theme.key_chat_emojiPanelStickerSetName)); + descriptions.add(new ThemeDescription(listView, ThemeDescription.FLAG_TEXTCOLOR, new Class[]{StickerSetNameCell.class}, new String[]{"urlTextView"}, null, null, null, Theme.key_chat_emojiPanelStickerSetName)); + descriptions.add(new ThemeDescription(listView, ThemeDescription.FLAG_IMAGECOLOR, new Class[]{StickerSetNameCell.class}, new String[]{"buttonView"}, null, null, null, Theme.key_chat_emojiPanelStickerSetNameIcon)); + descriptions.add(new ThemeDescription(null, 0, null, null, null, delegate, Theme.key_chat_emojiPanelStickerSetNameHighlight)); + descriptions.add(new ThemeDescription(null, 0, null, null, null, delegate, Theme.key_chat_emojiPanelStickerSetName)); + } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/TextSelectionHelper.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/TextSelectionHelper.java index c60d67756..a2b62a1d4 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/TextSelectionHelper.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/TextSelectionHelper.java @@ -50,6 +50,7 @@ import org.telegram.ui.Components.RecyclerListView; import java.util.ArrayList; +import static com.google.zxing.common.detector.MathUtils.distance; import static org.telegram.ui.ActionBar.FloatingToolbar.STYLE_THEME; import static org.telegram.ui.ActionBar.Theme.key_chat_inTextSelectionHighlight; @@ -408,10 +409,6 @@ public abstract class TextSelectionHelper= 0 && selectionEnd >= 0; } - float distance(int x1, int y1, int x2, int y2) { - return (float) Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)); - } - private ActionBarPopupWindow popupWindow; private ActionBarPopupWindow.ActionBarPopupWindowLayout popupLayout; private TextView deleteView; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ChannelAdminLogActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ChannelAdminLogActivity.java index c1e1f99d3..8706c388b 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ChannelAdminLogActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ChannelAdminLogActivity.java @@ -89,7 +89,6 @@ import org.telegram.ui.ActionBar.BottomSheet; import org.telegram.ui.ActionBar.SimpleTextView; import org.telegram.ui.ActionBar.Theme; import org.telegram.ui.ActionBar.ThemeDescription; -import org.telegram.ui.Cells.BotHelpCell; import org.telegram.ui.Cells.ChatActionCell; import org.telegram.ui.Cells.ChatLoadingCell; import org.telegram.ui.Cells.ChatMessageCell; @@ -185,6 +184,8 @@ public class ChannelAdminLogActivity extends BaseFragment implements Notificatio private MessageObject scrollToMessage; + private int allowAnimationIndex; + private PhotoViewer.PhotoViewerProvider provider = new PhotoViewer.EmptyPhotoViewerProvider() { @Override @@ -1737,9 +1738,8 @@ public class ChannelAdminLogActivity extends BaseFragment implements Notificatio @Override public void onTransitionAnimationStart(boolean isOpen, boolean backward) { if (isOpen) { - NotificationCenter.getInstance(currentAccount).setAllowedNotificationsDutingAnimation(new int[]{NotificationCenter.chatInfoDidLoad, NotificationCenter.dialogsNeedReload, + allowAnimationIndex = NotificationCenter.getInstance(currentAccount).setAnimationInProgress(allowAnimationIndex, new int[]{NotificationCenter.chatInfoDidLoad, NotificationCenter.dialogsNeedReload, NotificationCenter.closeChats, NotificationCenter.messagesDidLoad, NotificationCenter.botKeyboardDidLoad/*, NotificationCenter.botInfoDidLoad*/}); - NotificationCenter.getInstance(currentAccount).setAnimationInProgress(true); openAnimationEnded = false; } } @@ -1747,7 +1747,7 @@ public class ChannelAdminLogActivity extends BaseFragment implements Notificatio @Override public void onTransitionAnimationEnd(boolean isOpen, boolean backward) { if (isOpen) { - NotificationCenter.getInstance(currentAccount).setAnimationInProgress(false); + NotificationCenter.getInstance(currentAccount).onAnimationFinish(allowAnimationIndex); openAnimationEnded = true; } } @@ -2204,17 +2204,6 @@ public class ChannelAdminLogActivity extends BaseFragment implements Notificatio }); } else if (viewType == 2) { view = new ChatUnreadCell(mContext); - } else if (viewType == 3) { - view = new BotHelpCell(mContext); - ((BotHelpCell) view).setDelegate(url -> { - if (url.startsWith("@")) { - MessagesController.getInstance(currentAccount).openByUserName(url.substring(1), ChannelAdminLogActivity.this, 0); - } else if (url.startsWith("#")) { - DialogsActivity fragment = new DialogsActivity(null); - fragment.setSearchString(url); - presentFragment(fragment); - } - }); } else if (viewType == 4) { view = new ChatLoadingCell(mContext); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ChannelCreateActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ChannelCreateActivity.java index a3dd23a99..9a914bd0f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ChannelCreateActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ChannelCreateActivity.java @@ -300,7 +300,7 @@ public class ChannelCreateActivity extends BaseFragment implements NotificationC measureChildWithMargins(actionBar, widthMeasureSpec, 0, heightMeasureSpec, 0); - int keyboardSize = SharedConfig.smoothKeyboard ? 0 : getKeyboardHeight(); + int keyboardSize = SharedConfig.smoothKeyboard ? 0 : measureKeyboardHeight(); if (keyboardSize > AndroidUtilities.dp(20)) { ignoreLayout = true; nameTextView.hideEmojiView(); @@ -333,7 +333,7 @@ public class ChannelCreateActivity extends BaseFragment implements NotificationC protected void onLayout(boolean changed, int l, int t, int r, int b) { final int count = getChildCount(); - int keyboardSize = SharedConfig.smoothKeyboard ? 0 : getKeyboardHeight(); + int keyboardSize = SharedConfig.smoothKeyboard ? 0 : measureKeyboardHeight(); int paddingBottom = keyboardSize <= AndroidUtilities.dp(20) && !AndroidUtilities.isInMultiwindow && !AndroidUtilities.isTablet() ? nameTextView.getEmojiPadding() : 0; setBottomClip(paddingBottom); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java index 953fffddf..dafd855cb 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java @@ -38,7 +38,6 @@ import android.graphics.Rect; import android.graphics.RectF; import android.graphics.Typeface; import android.graphics.drawable.Drawable; -import android.media.ThumbnailUtils; import android.net.Uri; import android.os.Build; import android.os.Bundle; @@ -49,6 +48,7 @@ import android.text.Spannable; import android.text.SpannableString; import android.text.SpannableStringBuilder; import android.text.Spanned; +import android.text.StaticLayout; import android.text.TextPaint; import android.text.TextUtils; import android.text.style.CharacterStyle; @@ -84,6 +84,8 @@ import android.widget.TextView; import android.widget.Toast; import androidx.core.content.FileProvider; +import androidx.core.graphics.ColorUtils; +import androidx.recyclerview.widget.ChatListItemAnimator; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.GridLayoutManagerFixed; import androidx.recyclerview.widget.LinearLayoutManager; @@ -191,6 +193,7 @@ import org.telegram.ui.Components.Size; import org.telegram.ui.Components.SizeNotifierFrameLayout; import org.telegram.ui.Components.StickersAlert; import org.telegram.ui.Components.TextStyleSpan; +import org.telegram.ui.Components.TrendingStickersAlert; import org.telegram.ui.Components.TypefaceSpan; import org.telegram.ui.Components.URLSpanBotCommand; import org.telegram.ui.Components.URLSpanMono; @@ -203,7 +206,6 @@ import org.telegram.ui.Components.voip.VoIPHelper; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; -import java.net.IDN; import java.net.URLDecoder; import java.util.ArrayList; import java.util.Calendar; @@ -230,6 +232,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not private View progressView2; private FrameLayout bottomOverlay; protected ChatActivityEnterView chatActivityEnterView; + int chatActivityEnterViewAnimateFromTop; private View timeItem2; private ActionBarMenuItem attachItem; private ActionBarMenuItem headerItem; @@ -239,10 +242,11 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not private ActionBarMenuSubItem addContactItem; private ClippingImageView animatingImageView; private RecyclerListView chatListView; + private ChatListItemAnimator chatListItemAniamtor; private int chatListViewClipTop; private GridLayoutManagerFixed chatLayoutManager; private ChatActivityAdapter chatAdapter; - private TextView bottomOverlayChatText; + private UnreadCounterTextView bottomOverlayChatText; private UnreadCounterTextView bottomOverlayChatText2; private RadialProgressView bottomOverlayProgress; private AnimatorSet bottomOverlayAnimation; @@ -387,6 +391,8 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not private AnimatorSet editButtonAnimation; private AnimatorSet forwardButtonAnimation; + private int lastStableId = 10; + private boolean openSearchKeyboard; private boolean waitingForReplyMessageLoad; @@ -437,7 +443,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not private boolean forceScrollToTop; private boolean scrollToTopUnReadOnResume; private long dialog_id; - private int lastLoadIndex; + private int lastLoadIndex = 1; private SparseArray[] selectedMessagesIds = new SparseArray[]{new SparseArray<>(), new SparseArray<>()}; private SparseArray[] selectedMessagesCanCopyIds = new SparseArray[]{new SparseArray<>(), new SparseArray<>()}; private SparseArray[] selectedMessagesCanStarIds = new SparseArray[]{new SparseArray<>(), new SparseArray<>()}; @@ -543,13 +549,32 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not private float lastTouchY; private ChatMessageCell dummyMessageCell; - private FireworksOverlay fireworksOverlay; private boolean swipeBackEnabled = true; public static Pattern publicMsgUrlPattern; public static Pattern privateMsgUrlPattern; + private boolean waitingForSendingMessageLoad; + private ValueAnimator changeBoundAnimator; + + private int transitionAnimationIndex; + private final static int[] allowedNotificationsDuringChatListAnimations = new int[]{ + NotificationCenter.messagesRead, + NotificationCenter.messagesReadEncrypted, + NotificationCenter.messagesReadContent, + NotificationCenter.pinnedMessageDidLoad, + NotificationCenter.newDraftReceived, + NotificationCenter.updateMentionsCount, + NotificationCenter.didUpdateConnectionState, + NotificationCenter.updateInterfaces, + NotificationCenter.closeChats, + NotificationCenter.contactsDidLoad, + NotificationCenter.chatInfoCantLoad, + NotificationCenter.userInfoDidLoad, + NotificationCenter.didSetNewWallpapper, + NotificationCenter.didApplyNewTheme + }; private interface ChatActivityDelegate { void openReplyMessage(int mid); @@ -557,7 +582,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not void openSearch(String text); } - private class UnreadCounterTextView extends TextView { + private class UnreadCounterTextView extends View { private int currentCounter; private String currentCounterString; @@ -566,18 +591,102 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not private Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); private RectF rect = new RectF(); private int circleWidth; + private int rippleColor; + + private StaticLayout textLayout; + private StaticLayout textLayoutOut; + private int layoutTextWidth; + private TextPaint layoutPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG); + + Drawable selectableBackground; + + ValueAnimator replaceAnimator; + float replaceProgress = 1f; + boolean animatedFromBottom; + int textColor; + int panelBackgroundColor; + int counterColor; public UnreadCounterTextView(Context context) { super(context); textPaint.setTextSize(AndroidUtilities.dp(13)); textPaint.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); + + layoutPaint.setTextSize(AndroidUtilities.dp(15)); + layoutPaint.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); + } + + public void setText(CharSequence text, boolean animatedFromBottom) { + this.animatedFromBottom = animatedFromBottom; + textLayoutOut = textLayout; + layoutTextWidth = (int) Math.ceil(layoutPaint.measureText(text, 0, text.length())); + textLayout = new StaticLayout(text, layoutPaint, layoutTextWidth, Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, true); + invalidate(); + + if (textLayoutOut != null) { + if (replaceAnimator != null) { + replaceAnimator.cancel(); + } + replaceProgress = 0; + replaceAnimator = ValueAnimator.ofFloat(0,1f); + replaceAnimator.addUpdateListener(animation -> { + replaceProgress = (float) animation.getAnimatedValue(); + invalidate(); + }); + replaceAnimator.setDuration(150); + replaceAnimator.start(); + } + + } + public void setText(CharSequence text) { + layoutTextWidth = (int) Math.ceil(layoutPaint.measureText(text, 0, text.length())); + textLayout = new StaticLayout(text, layoutPaint, layoutTextWidth, Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, true); + invalidate(); } @Override - public void setTextColor(int color) { - super.setTextColor(color); - textPaint.setColor(Theme.getColor(Theme.key_chat_messagePanelBackground)); - paint.setColor(Theme.getColor(Theme.key_chat_goDownButtonCounterBackground)); + protected void drawableStateChanged() { + super.drawableStateChanged(); + if (selectableBackground != null) { + selectableBackground.setState(getDrawableState()); + } + } + + @Override + public boolean verifyDrawable(Drawable drawable) { + if (selectableBackground != null) { + return selectableBackground == drawable || super.verifyDrawable(drawable); + } + return super.verifyDrawable(drawable); + } + + @Override + public void jumpDrawablesToCurrentState() { + super.jumpDrawablesToCurrentState(); + if (selectableBackground != null) { + selectableBackground.jumpToCurrentState(); + } + } + + @Override + public boolean onTouchEvent(MotionEvent event) { + if (event.getAction() == MotionEvent.ACTION_DOWN) { + if (textLayout != null) { + int lineWidth = (int) Math.ceil(textLayout.getLineWidth(0)); + int contentWidth = lineWidth + (circleWidth > 0 ? circleWidth + AndroidUtilities.dp(8) : 0); + contentWidth += AndroidUtilities.dp(48); + int x = (getMeasuredWidth() - contentWidth) / 2; + rect.set( + x, getMeasuredHeight() / 2f - contentWidth / 2f, + x + contentWidth, getMeasuredHeight() / 2f + contentWidth / 2f + ); + if (!rect.contains(event.getX(), event.getY())) { + setPressed(false); + return false; + } + } + } + return super.onTouchEvent(event); } public void updateCounter() { @@ -598,7 +707,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not currentCounterString = null; circleWidth = 0; } else { - currentCounterString = String.format("%d", currentCounter); + currentCounterString = AndroidUtilities.formatWholeNumber(currentCounter, 0); textWidth = (int) Math.ceil(textPaint.measureText(currentCounterString)); int newWidth = Math.max(AndroidUtilities.dp(20), AndroidUtilities.dp(12) + textWidth); if (circleWidth != newWidth) { @@ -611,16 +720,67 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not @Override protected void onDraw(Canvas canvas) { - canvas.save(); - canvas.translate(-circleWidth / 2, 0); - super.onDraw(canvas); - canvas.restore(); + Layout layout = textLayout; + int color = Theme.getColor(Theme.key_chat_fieldOverlayText); + if (textColor != color) { + layoutPaint.setColor(textColor = color); + } + color = Theme.getColor(Theme.key_chat_messagePanelBackground); + if (panelBackgroundColor != color) { + textPaint.setColor(panelBackgroundColor = color); + } + color = Theme.getColor(Theme.key_chat_goDownButtonCounterBackground); + if (counterColor != color) { + paint.setColor(counterColor = color); + } + + if (getParent() != null) { + int contentWidth = getMeasuredWidth(); + int x = (getMeasuredWidth() - contentWidth) / 2; + if (rippleColor != Theme.getColor(Theme.key_chat_fieldOverlayText) || selectableBackground == null) { + selectableBackground = Theme.createSimpleSelectorCircleDrawable(AndroidUtilities.dp(60), 0, ColorUtils.setAlphaComponent(rippleColor = Theme.getColor(Theme.key_chat_fieldOverlayText), 26)); + selectableBackground.setCallback(this); + } + int start = (getLeft() + x) <= 0 ? x - AndroidUtilities.dp(20) : x; + int end = x + contentWidth > ((View) getParent()).getMeasuredWidth() ? x + contentWidth + AndroidUtilities.dp(20) : x + contentWidth; + selectableBackground.setBounds( + start, getMeasuredHeight() / 2 - contentWidth / 2, + end, getMeasuredHeight() / 2 + contentWidth / 2 + ); + selectableBackground.draw(canvas); + } + if (textLayout != null) { + canvas.save(); + if (replaceProgress != 1f && textLayoutOut != null) { + int oldAlpha = layoutPaint.getAlpha(); + + canvas.save(); + canvas.translate((getMeasuredWidth() - textLayoutOut.getWidth()) / 2 - circleWidth / 2, (getMeasuredHeight() - textLayout.getHeight()) / 2); + canvas.translate(0, (animatedFromBottom ? -1f : 1f) * AndroidUtilities.dp(18) * replaceProgress); + layoutPaint.setAlpha((int) (oldAlpha * (1f - replaceProgress))); + textLayoutOut.draw(canvas); + canvas.restore(); + + canvas.save(); + canvas.translate((getMeasuredWidth() - layoutTextWidth) / 2 - circleWidth / 2, (getMeasuredHeight() - textLayout.getHeight()) / 2); + canvas.translate(0, (animatedFromBottom ? 1f : -1f) * AndroidUtilities.dp(18) * (1f - replaceProgress)); + layoutPaint.setAlpha((int) (oldAlpha * (replaceProgress))); + textLayout.draw(canvas); + canvas.restore(); + + layoutPaint.setAlpha(oldAlpha); + } else { + canvas.translate((getMeasuredWidth() - layoutTextWidth) / 2 - circleWidth / 2, (getMeasuredHeight() - textLayout.getHeight()) / 2); + textLayout.draw(canvas); + } + + canvas.restore(); + } if (currentCounterString != null) { - Layout layout = getLayout(); - if (layout != null && getLineCount() > 0) { + if (layout != null) { int lineWidth = (int) Math.ceil(layout.getLineWidth(0)); - int x = (getMeasuredWidth() + (lineWidth - circleWidth)) / 2 + AndroidUtilities.dp(8); + int x = (getMeasuredWidth() - lineWidth) / 2 + lineWidth - circleWidth / 2 + AndroidUtilities.dp(6); rect.set(x, getMeasuredHeight() / 2 - AndroidUtilities.dp(10), x + circleWidth, getMeasuredHeight() / 2 + AndroidUtilities.dp(10)); canvas.drawRoundRect(rect, AndroidUtilities.dp(10), AndroidUtilities.dp(10), paint); canvas.drawText(currentCounterString, rect.centerX() - textWidth / 2.0f, rect.top + AndroidUtilities.dp(14.5f), textPaint); @@ -976,6 +1136,9 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not getNotificationCenter().addObserver(this, NotificationCenter.updateMentionsCount); getNotificationCenter().addObserver(this, NotificationCenter.didUpdatePollResults); getNotificationCenter().addObserver(this, NotificationCenter.chatOnlineCountDidLoad); + if (currentEncryptedChat != null) { + getNotificationCenter().addObserver(this, NotificationCenter.didVerifyMessagesStickers); + } } getNotificationCenter().addObserver(this, NotificationCenter.messagesDidLoad); NotificationCenter.getGlobalInstance().addObserver(this, NotificationCenter.emojiDidLoad); @@ -1042,38 +1205,38 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } } - waitingForLoad.add(lastLoadIndex); - if (startLoadFromMessageId != 0) { - startLoadFromMessageIdSaved = startLoadFromMessageId; - if (migrated_to != 0) { - mergeDialogId = migrated_to; - getMessagesController().loadMessages(mergeDialogId, loadingFromOldPosition ? 50 : (AndroidUtilities.isTablet() ? 30 : 20), startLoadFromMessageId, 0, true, 0, classGuid, 3, 0, ChatObject.isChannel(currentChat), inScheduleMode, lastLoadIndex++); - } else { - getMessagesController().loadMessages(dialog_id, loadingFromOldPosition ? 50 : (AndroidUtilities.isTablet() ? 30 : 20), startLoadFromMessageId, 0, true, 0, classGuid, 3, 0, ChatObject.isChannel(currentChat), inScheduleMode, lastLoadIndex++); - } - } else { - getMessagesController().loadMessages(dialog_id, AndroidUtilities.isTablet() ? 30 : 20, 0, 0, true, 0, classGuid, 2, 0, ChatObject.isChannel(currentChat), inScheduleMode, lastLoadIndex++); - } - if (!inScheduleMode) { - waitingForLoad.add(lastLoadIndex); - getMessagesController().loadMessages(dialog_id, 1, 0, 0, true, 0, classGuid, 2, 0, ChatObject.isChannel(currentChat), true, lastLoadIndex++); - } - + boolean loadInfo = false; if (currentChat != null) { chatInfo = getMessagesController().getChatFull(currentChat.id); if (currentChat.megagroup && !getMessagesController().isChannelAdminsLoaded(currentChat.id)) { getMessagesController().loadChannelAdmins(currentChat.id, true); } - TLRPC.ChatFull info = getMessagesStorage().loadChatInfo(currentChat.id, null, true, false); - if (chatInfo == null) { - chatInfo = info; - } + getMessagesStorage().loadChatInfo(currentChat.id, null, true, false); if (!inScheduleMode && chatInfo != null && ChatObject.isChannel(currentChat) && chatInfo.migrated_from_chat_id != 0) { mergeDialogId = -chatInfo.migrated_from_chat_id; maxMessageId[1] = chatInfo.migrated_from_max_id; } + loadInfo = chatInfo == null; } else if (currentUser != null) { getMessagesController().loadUserInfo(currentUser, true, classGuid); + loadInfo = userInfo == null; + } + + waitingForLoad.add(lastLoadIndex); + if (startLoadFromMessageId != 0) { + startLoadFromMessageIdSaved = startLoadFromMessageId; + if (migrated_to != 0) { + mergeDialogId = migrated_to; + getMessagesController().loadMessages(mergeDialogId, 0, loadInfo, loadingFromOldPosition ? 50 : (AndroidUtilities.isTablet() ? 30 : 20), startLoadFromMessageId, 0, true, 0, classGuid, 3, 0, ChatObject.isChannel(currentChat), inScheduleMode, lastLoadIndex++); + } else { + getMessagesController().loadMessages(dialog_id, mergeDialogId, loadInfo, loadingFromOldPosition ? 50 : (AndroidUtilities.isTablet() ? 30 : 20), startLoadFromMessageId, 0, true, 0, classGuid, 3, 0, ChatObject.isChannel(currentChat), inScheduleMode, lastLoadIndex++); + } + } else { + getMessagesController().loadMessages(dialog_id, mergeDialogId, loadInfo, AndroidUtilities.isTablet() ? 30 : 20, 0, 0, true, 0, classGuid, 2, 0, ChatObject.isChannel(currentChat), inScheduleMode, lastLoadIndex++); + } + if (!inScheduleMode) { + waitingForLoad.add(lastLoadIndex); + getMessagesController().loadMessages(dialog_id, mergeDialogId, false, 1, 0, 0, true, 0, classGuid, 2, 0, ChatObject.isChannel(currentChat), true, lastLoadIndex++); } if (!inScheduleMode) { @@ -1100,6 +1263,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not getSecretChatHelper().sendNotifyLayerMessage(currentEncryptedChat, null); } } + return true; } @@ -1180,6 +1344,9 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not getNotificationCenter().removeObserver(this, NotificationCenter.videoLoadingStateChanged); getNotificationCenter().removeObserver(this, NotificationCenter.scheduledMessagesUpdated); getNotificationCenter().removeObserver(this, NotificationCenter.diceStickersDidLoad); + if (currentEncryptedChat != null) { + getNotificationCenter().removeObserver(this, NotificationCenter.didVerifyMessagesStickers); + } if (!inScheduleMode && AndroidUtilities.isTablet()) { getNotificationCenter().postNotificationName(NotificationCenter.openedChatChanged, dialog_id, true); @@ -1213,6 +1380,9 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not if (textSelectionHelper != null) { textSelectionHelper.clear(); } + if (chatListItemAniamtor != null) { + chatListItemAniamtor.onDestroy(); + } } @Override @@ -1220,7 +1390,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not textSelectionHelper = new TextSelectionHelper.ChatListTextSelectionHelper(); if (chatMessageCellsCache.isEmpty()) { - for (int a = 0; a < 8; a++) { + for (int a = 0; a < 15; a++) { chatMessageCellsCache.add(new ChatMessageCell(context)); } } @@ -1267,14 +1437,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not public void onItemClick(final int id) { if (id == -1) { if (actionBar.isActionModeShowed()) { - for (int a = 1; a >= 0; a--) { - selectedMessagesIds[a].clear(); - selectedMessagesCanCopyIds[a].clear(); - selectedMessagesCanStarIds[a].clear(); - } - hideActionMode(); - updatePinnedMessageView(true); - updateVisibleRows(); + clearSelectionMode(); } else { if (!checkRecordLocked(true)) { finishFragment(); @@ -1306,14 +1469,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not if (str.length() != 0) { AndroidUtilities.addToClipboard(str); } - for (int a = 1; a >= 0; a--) { - selectedMessagesIds[a].clear(); - selectedMessagesCanCopyIds[a].clear(); - selectedMessagesCanStarIds[a].clear(); - } - hideActionMode(); - updatePinnedMessageView(true); - updateVisibleRows(); + clearSelectionMode(); } else if (id == delete) { if (getParentActivity() == null) { return; @@ -1407,14 +1563,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not getMediaDataController().addRecentSticker(MediaDataController.TYPE_FAVE, msg, msg.getDocument(), (int) (System.currentTimeMillis() / 1000), !hasUnfavedSelected); } } - for (int a = 1; a >= 0; a--) { - selectedMessagesIds[a].clear(); - selectedMessagesCanCopyIds[a].clear(); - selectedMessagesCanStarIds[a].clear(); - } - hideActionMode(); - updatePinnedMessageView(true); - updateVisibleRows(); + clearSelectionMode(); } else if (id == edit) { MessageObject messageObject = null; for (int a = 1; a >= 0; a--) { @@ -1772,6 +1921,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not fragmentView = new SizeNotifierFrameLayout(context, SharedConfig.smoothKeyboard, parentLayout) { int inputFieldHeight = 0; + int lastHeight; ArrayList drawTimeAfter = new ArrayList<>(); ArrayList drawNamesAfter = new ArrayList<>(); @@ -1882,7 +2032,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } else { drawLaterRoundProgressCell.drawOverlays(canvas); if (drawLaterRoundProgressCell.needDrawTime()) { - drawLaterRoundProgressCell.drawTime(canvas); + drawLaterRoundProgressCell.drawTime(canvas, drawLaterRoundProgressCell.getAlpha()); } } canvas.restore(); @@ -1902,14 +2052,17 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not private void drawChildElement(Canvas canvas, float listTop, ChatMessageCell cell, int type) { canvas.save(); + float canvasOffsetX = chatListView.getLeft() + cell.getLeft(); + float canvasOffsetY = chatListView.getY() + cell.getY(); + float alpha = cell.shouldDrawAlphaLayer() ? cell.getAlpha() : 1f; canvas.clipRect(chatListView.getLeft(), listTop, chatListView.getRight(), chatListView.getY() + chatListView.getMeasuredHeight()); - canvas.translate(chatListView.getLeft() + cell.getLeft(), chatListView.getY() + cell.getY()); + canvas.translate(canvasOffsetX, canvasOffsetY); if (type == 0) { - cell.drawTime(canvas); + cell.drawTime(canvas, alpha); } else if (type == 1) { - cell.drawNamesLayout(canvas); + cell.drawNamesLayout(canvas, alpha); } else { - cell.drawCaptionLayout(canvas, (cell.getCurrentPosition().flags & MessageObject.POSITION_FLAG_LEFT) == 0); + cell.drawCaptionLayout(canvas, (cell.getCurrentPosition().flags & MessageObject.POSITION_FLAG_LEFT) == 0, alpha); } canvas.restore(); } @@ -1929,6 +2082,8 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not scrimGroup = null; } + boolean groupedBackgroundWasDraw = false; + int count = chatListView.getChildCount(); for (int num = 0; num < count; num++) { View child = chatListView.getChildAt(num); @@ -1944,10 +2099,28 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not group = null; cell = null; } - if (child != scrimView && (scrimGroup == null || scrimGroup != group)) { + if (child != scrimView && (scrimGroup == null || scrimGroup != group) || child.getAlpha() == 0f) { continue; } + if (!groupedBackgroundWasDraw && cell != null && scrimGroup != null) { + float x = cell.getNonAnimationTranslationX(true); + float l = (scrimGroup.transitionParams.left + x + scrimGroup.transitionParams.offsetLeft); + float t = (scrimGroup.transitionParams.top + scrimGroup.transitionParams.offsetTop + chatListView.getY()); + float r = (scrimGroup.transitionParams.right + x + scrimGroup.transitionParams.offsetRight); + float b = (scrimGroup.transitionParams.bottom + scrimGroup.transitionParams.offsetBottom + chatListView.getY()); + + if (!scrimGroup.transitionParams.backgroundChangeBounds) { + t += cell.getTranslationY(); + b += cell.getTranslationY(); + } + canvas.save(); + canvas.clipRect(0, listTop, getMeasuredWidth(), chatListView.getY() + chatListView.getHeight()); + cell.drawBackground(canvas, (int) l, (int) t, (int) r, (int) b, scrimGroup.transitionParams.pinnedTop, scrimGroup.transitionParams.pinnedBotton); + canvas.restore(); + groupedBackgroundWasDraw = true; + } + int clipLeft = 0; int clipBottom = 0; if (position != null) { @@ -1961,6 +2134,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not float viewClipRight; float viewClipTop; float viewClipBottom; + if (clipLeft != 0) { float x = chatListView.getLeft() + clipLeft + child.getTranslationX(); float y = chatListView.getTop() + child.getTop(); @@ -1983,10 +2157,15 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not viewClipRight = Math.min(chatListView.getRight(), chatListView.getLeft() + child.getX() + child.getMeasuredWidth()); viewClipBottom = Math.min(chatListView.getY() + chatListView.getMeasuredHeight(), chatListView.getY() + child.getY() + child.getMeasuredHeight()); } + if (viewClipTop < viewClipBottom) { - canvas.save(); + if (child.getAlpha() != 1f) { + canvas.saveLayerAlpha(viewClipLeft, viewClipTop, viewClipRight, viewClipBottom, (int) (255 * child.getAlpha()), Canvas.ALL_SAVE_FLAG); + } else { + canvas.save(); + } canvas.clipRect(viewClipLeft, viewClipTop, viewClipRight, viewClipBottom); - canvas.translate(chatListView.getLeft() + child.getLeft(), chatListView.getY() + child.getTop()); + canvas.translate(chatListView.getLeft() + child.getX(), chatListView.getY() + child.getY()); child.draw(canvas); canvas.restore(); } @@ -2005,6 +2184,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } } } + int size = drawTimeAfter.size(); if (size > 0) { for (int a = 0; a < size; a++) { @@ -2065,6 +2245,9 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not heightSize -= actionBarHeight; } + if (lastHeight != allHeight && ! SharedConfig.smoothKeyboard) { + measureKeyboardHeight(); + } int keyboardSize = SharedConfig.smoothKeyboard ? 0 : getKeyboardHeight(); if (keyboardSize <= AndroidUtilities.dp(20)) { @@ -2117,7 +2300,11 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not child.measure(contentWidthSpec, contentHeightSpec); } else if (child == instantCameraView || child == overlayView) { int contentWidthSpec = MeasureSpec.makeMeasureSpec(widthSize, MeasureSpec.EXACTLY); - int contentHeightSpec = MeasureSpec.makeMeasureSpec(allHeight - inputFieldHeight + AndroidUtilities.dp(3), MeasureSpec.EXACTLY); + int h = allHeight; + if (SharedConfig.smoothKeyboard) { + h -= chatActivityEnterView.getEmojiPadding(); + } + int contentHeightSpec = MeasureSpec.makeMeasureSpec(h - inputFieldHeight + AndroidUtilities.dp(3), MeasureSpec.EXACTLY); child.measure(contentWidthSpec, contentHeightSpec); } else if (child == emptyViewContainer) { int contentWidthSpec = MeasureSpec.makeMeasureSpec(widthSize, MeasureSpec.EXACTLY); @@ -2332,7 +2519,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not private void setNonNoveTranslation(int y) { contentView.setTranslationY(y); actionBar.setTranslationY(0); - // instantCameraView.setTranslationY(instantCameraView.getBottom() - chatListView.getBottom() + chatListView.getTranslationY()); + contentView.setBackgroundTranslation(0); if (pinnedMessageView != null) { pinnedMessageView.setTranslationY(0); @@ -2344,6 +2531,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not fragmentLocationContextView.setTranslationY(0); } topChatPanelView.setTranslationY(0); + instantCameraView.onPanTranslationUpdate(0); } @Override @@ -2354,7 +2542,6 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not if (chatAttachAlert != null && chatAttachAlert.isShowing() || chatActivityEnterView.isPopupShowing()) { setNonNoveTranslation(y); } else { - // instantCameraView.setTranslationY(instantCameraView.getBottom() - chatListView.getBottom() + chatListView.getTranslationY()); actionBar.setTranslationY(y); contentView.setBackgroundTranslation(y); if (pinnedMessageView != null) { @@ -2367,6 +2554,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not fragmentLocationContextView.setTranslationY(y); } topChatPanelView.setTranslationY(y); + instantCameraView.onPanTranslationUpdate(y); } } }; @@ -2449,15 +2637,31 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not private float replyButtonProgress; private long lastReplyButtonAnimationTime; + private boolean ignoreLayout; + int lastH = 0; @Override - protected void onMeasure(int widthSpec, int heightSpec) { - super.onMeasure(widthSpec, heightSpec); - if (lastH != getMeasuredHeight()) { - chatScrollHelper.cancel(); + public void requestLayout() { + if (ignoreLayout) { + return; } - lastH = getMeasuredHeight(); + super.requestLayout(); + } + + @Override + protected void onMeasure(int widthSpec, int heightSpec) { + int height = MeasureSpec.getSize(heightSpec); + if (lastH != height) { + ignoreLayout = true; + if (chatListItemAniamtor != null) { + chatListItemAniamtor.endAnimations(); + } + chatScrollHelper.cancel(); + ignoreLayout = false; + lastH = height; + } + super.onMeasure(widthSpec, heightSpec); } @Override @@ -2468,20 +2672,6 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not hideHints(false); } forceScrollToTop = false; - if (chatAdapter.isBot) { - int childCount = getChildCount(); - for (int a = 0; a < childCount; a++) { - View child = getChildAt(a); - if (child instanceof BotHelpCell) { - int height = b - t; - int top = height / 2 - child.getMeasuredHeight() / 2; - if (child.getTop() > top) { - child.layout(0, top, r - l, top + child.getMeasuredHeight()); - } - break; - } - } - } if (textSelectionHelper != null && textSelectionHelper.isSelectionMode()) { textSelectionHelper.invalidate(); } @@ -2500,7 +2690,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } ChatMessageCell cell = (ChatMessageCell) child; if (cell.getCurrentMessagesGroup() == group) { - cell.setTranslationX(dx); + cell.setSlidingOffset(dx); cell.invalidate(); } } @@ -2518,7 +2708,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not @Override public boolean onInterceptTouchEvent(MotionEvent e) { textSelectionHelper.checkSelectionCancel(e); - if (animationRunning) { + if (isScrollAnimationRunning()) { return false; } boolean result = super.onInterceptTouchEvent(e); @@ -2533,7 +2723,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not if (slidingView == null) { return; } - float translationX = slidingView.getTranslationX(); + float translationX = slidingView.getNonAnimationTranslationX(false); long newTime = System.currentTimeMillis(); long dt = Math.min(17, newTime - lastReplyButtonAnimationTime); lastReplyButtonAnimationTime = newTime; @@ -2572,7 +2762,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } Theme.chat_shareDrawable.setAlpha(alpha); Theme.chat_replyIconDrawable.setAlpha(alpha); - float x = getMeasuredWidth() + slidingView.getTranslationX() / 2; + float x = getMeasuredWidth() + slidingView.getNonAnimationTranslationX(false) / 2; float y = slidingView.getTop() + slidingView.getMeasuredHeight() / 2; if (!Theme.isCustomTheme() || Theme.hasThemeKey(Theme.key_chat_shareBackground)) { Theme.chat_shareDrawable.setColorFilter(Theme.getShareColorFilter(Theme.getColor(Theme.key_chat_shareBackground), false)); @@ -2639,7 +2829,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } else { wasTrackingVibrate = false; } - slidingView.setTranslationX(dx); + slidingView.setSlidingOffset(dx); MessageObject messageObject = slidingView.getMessageObject(); if (messageObject.isRoundVideo() || messageObject.isVideo()) { updateTextureViewPosition(false); @@ -2648,10 +2838,10 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not invalidate(); } } else if (slidingView != null && (e == null || e.getPointerId(0) == startedTrackingPointerId && (e.getAction() == MotionEvent.ACTION_CANCEL || e.getAction() == MotionEvent.ACTION_UP || e.getAction() == MotionEvent.ACTION_POINTER_UP))) { - if (e != null && e.getAction() != MotionEvent.ACTION_CANCEL && Math.abs(slidingView.getTranslationX()) >= AndroidUtilities.dp(50)) { + if (e != null && e.getAction() != MotionEvent.ACTION_CANCEL && Math.abs(slidingView.getNonAnimationTranslationX(false)) >= AndroidUtilities.dp(50)) { showFieldPanelForReply(slidingView.getMessageObject()); } - endTrackingX = slidingView.getTranslationX(); + endTrackingX = slidingView.getSlidingOffsetX(); if (endTrackingX == 0) { slidingView = null; } @@ -2667,7 +2857,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not @Override public boolean onTouchEvent(MotionEvent e) { textSelectionHelper.checkSelectionCancel(e); - if (animationRunning) { + if (isScrollAnimationRunning()) { return false; } boolean result = super.onTouchEvent(e); @@ -2711,7 +2901,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not public void onDraw(Canvas c) { super.onDraw(c); if (slidingView != null) { - float translationX = slidingView.getTranslationX(); + float translationX = slidingView.getSlidingOffsetX(); if (!maybeStartTrackingSlidingView && !startedTrackingSlidingView && endTrackingX != 0 && translationX != 0) { long newTime = System.currentTimeMillis(); long dt = newTime - lastTrackingAnimationTime; @@ -2725,7 +2915,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not endTrackingX = 0; } setGroupTranslationX(slidingView, translationX); - slidingView.setTranslationX(translationX); + slidingView.setSlidingOffset(translationX); MessageObject messageObject = slidingView.getMessageObject(); if (messageObject.isRoundVideo() || messageObject.isVideo()) { updateTextureViewPosition(false); @@ -2739,19 +2929,34 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not drawReplyButton(c); } - if (chatListView.animationRunning) { + if (chatListView.isScrollAnimationRunning()) { updateTextureViewPosition(false); } } + + ArrayList drawingGroups = new ArrayList<>(10); + @Override protected void dispatchDraw(Canvas canvas) { drawLaterRoundProgressCell = null; MessageObject.GroupedMessages lastDrawnGroup = null; int count = getChildCount(); + for (int a = 0; a < count; a++) { View child = getChildAt(a); - if (child instanceof ChatMessageCell) { + if (chatAdapter.isBot && child instanceof BotHelpCell) { + BotHelpCell botCell = (BotHelpCell) child; + int top = getMeasuredHeight() / 2 - child.getMeasuredHeight() / 2; + if (!botCell.animating()) { + if (child.getTop() > top) { + child.setTranslationY(top - child.getTop()); + } else { + child.setTranslationY(0); + } + } + break; + } else if (child instanceof ChatMessageCell) { ChatMessageCell cell = (ChatMessageCell) child; MessageObject.GroupedMessages group = cell.getCurrentMessagesGroup(); if (group != null && group == lastDrawnGroup) { @@ -2814,6 +3019,107 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } } } + + MessageObject.GroupedMessages scrimGroup = null; + if (scrimView instanceof ChatMessageCell) { + scrimGroup = ((ChatMessageCell) scrimView).getCurrentMessagesGroup(); + } + for (int k = 0; k < 3; k++) { + drawingGroups.clear(); + if (k == 2 && !chatListView.isScrollAnimationRunning()) { + continue; + } + for (int i = 0; i < count; i++) { + View child = chatListView.getChildAt(i); + if (child instanceof ChatMessageCell) { + ChatMessageCell cell = (ChatMessageCell) child; + if (chatListView.isScrollAnimationRunning()) { + if (child.getY() > chatListView.getHeight() || child.getY() + child.getHeight() < 0) { + continue; + } + } else { + if (child.getTop() > chatListView.getHeight() || child.getTop() + child.getHeight() < 0) { + continue; + } + } + MessageObject.GroupedMessages group = cell.getCurrentMessagesGroup(); + if (group == null || (k == 0 && group.messages.size() == 1) || (k == 1 && !group.transitionParams.drawBackgroundForDeletedItems)) { + continue; + } + if ((k == 0 && cell.getMessageObject().deleted) || (k == 1 && !cell.getMessageObject().deleted)) { + continue; + } + if ((k == 2 && !cell.willRemovedAfterAnimation()) || (k != 2 && cell.willRemovedAfterAnimation())) { + continue; + } + + if (!drawingGroups.contains(group)) { + group.transitionParams.left = 0; + group.transitionParams.top = 0; + group.transitionParams.right = 0; + group.transitionParams.bottom = 0; + + group.transitionParams.pinnedBotton = false; + group.transitionParams.pinnedTop = false; + group.transitionParams.cell = cell; + drawingGroups.add(group); + } + + if ((cell.getCurrentPosition().flags & MessageObject.POSITION_FLAG_TOP) != 0) { + group.transitionParams.pinnedTop = cell.isPinnedTop(); + } + if ((cell.getCurrentPosition().flags & MessageObject.POSITION_FLAG_BOTTOM) != 0) { + group.transitionParams.pinnedBotton = cell.isPinnedBottom(); + } + + + int left = (cell.getLeft() + cell.getBackgroundDrawableLeft()); + int right = (cell.getLeft() + cell.getBackgroundDrawableRight()); + int top = (cell.getTop() + cell.getBackgroundDrawableTop()); + int bottom = (cell.getTop() + cell.getBackgroundDrawableBottom()); + + if (cell.willRemovedAfterAnimation()) { + group.transitionParams.cell = cell; + } + + if (group.transitionParams.top == 0 || top < group.transitionParams.top) { + group.transitionParams.top = top; + } + if (group.transitionParams.bottom == 0 || bottom > group.transitionParams.bottom) { + group.transitionParams.bottom = bottom; + } + if (group.transitionParams.left == 0 || left < group.transitionParams.left) { + group.transitionParams.left = left; + } + if (group.transitionParams.right == 0 || right > group.transitionParams.right) { + group.transitionParams.right = right; + } + } + } + + for (int i = 0; i < drawingGroups.size(); i++) { + MessageObject.GroupedMessages group = drawingGroups.get(i); + if (group == scrimGroup) { + group.transitionParams.cell = null; + continue; + } + float x = group.transitionParams.cell.getNonAnimationTranslationX(true); + float l = (group.transitionParams.left + x + group.transitionParams.offsetLeft); + float t = (group.transitionParams.top + group.transitionParams.offsetTop); + float r = (group.transitionParams.right + x + group.transitionParams.offsetRight); + float b = (group.transitionParams.bottom + group.transitionParams.offsetBottom); + + if (!group.transitionParams.backgroundChangeBounds) { + t += group.transitionParams.cell.getTranslationY(); + b += group.transitionParams.cell.getTranslationY(); + } + + group.transitionParams.cell.drawBackground(canvas, (int) l, (int) t, (int) r, (int) b, group.transitionParams.pinnedTop, group.transitionParams.pinnedBotton); + group.transitionParams.cell = null; + group.transitionParams.drawCaptionLayout = group.hasCaption; + } + } + super.dispatchDraw(canvas); } @@ -2828,10 +3134,12 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not skipDraw = true; } + MessageObject.GroupedMessages group = null; + if (child instanceof ChatMessageCell) { cell = (ChatMessageCell) child; MessageObject.GroupedMessagePosition position = cell.getCurrentPosition(); - MessageObject.GroupedMessages group = cell.getCurrentMessagesGroup(); + group = cell.getCurrentMessagesGroup(); if (position != null) { if (position.pw != position.spanSize && position.spanSize == 1000 && position.siblingHeights == null && group.hasSibling) { clipLeft = cell.getBackgroundDrawableLeft(); @@ -2860,7 +3168,26 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } boolean result; if (!skipDraw) { + boolean clipToGroupBounds = group != null && group.transitionParams.backgroundChangeBounds; + if (clipToGroupBounds) { + canvas.save(); + float x = cell.getNonAnimationTranslationX(true); + float l = (group.transitionParams.left + x + group.transitionParams.offsetLeft); + float t = (group.transitionParams.top + group.transitionParams.offsetTop); + float r = (group.transitionParams.right + x + group.transitionParams.offsetRight); + float b = (group.transitionParams.bottom + group.transitionParams.offsetBottom); + + canvas.clipRect( + l + AndroidUtilities.dp(4), + t + AndroidUtilities.dp(4), + r - AndroidUtilities.dp(4), + b - AndroidUtilities.dp(4) + ); + } result = super.drawChild(canvas, child, drawingTime); + if (clipToGroupBounds) { + canvas.restore(); + } } else { result = false; } @@ -2894,8 +3221,8 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not for (int a = 0; a < size; a++) { cell = drawTimeAfter.get(a); canvas.save(); - canvas.translate(cell.getLeft() + cell.getTranslationX(), cell.getY()); - cell.drawTime(canvas); + canvas.translate(cell.getLeft() + cell.getNonAnimationTranslationX(false), cell.getY()); + cell.drawTime(canvas, cell.shouldDrawAlphaLayer() ? cell.getAlpha() : 1f); canvas.restore(); } drawTimeAfter.clear(); @@ -2904,9 +3231,13 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not if (size > 0) { for (int a = 0; a < size; a++) { cell = drawNamesAfter.get(a); + float canvasOffsetX = cell.getLeft() + cell.getNonAnimationTranslationX(false); + float canvasOffsetY = cell.getY(); + float alpha = cell.shouldDrawAlphaLayer() ? cell.getAlpha() : 1f; + canvas.save(); - canvas.translate(cell.getLeft() + cell.getTranslationX(), cell.getY()); - cell.drawNamesLayout(canvas); + canvas.translate(canvasOffsetX, canvasOffsetY); + cell.drawNamesLayout(canvas, alpha); canvas.restore(); } drawNamesAfter.clear(); @@ -2915,12 +3246,33 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not if (size > 0) { for (int a = 0; a < size; a++) { cell = drawCaptionAfter.get(a); - if (cell.getCurrentPosition() == null) { - continue; + boolean selectionOnly = false; + if (cell.getCurrentPosition() != null) { + selectionOnly = (cell.getCurrentPosition().flags & MessageObject.POSITION_FLAG_LEFT) == 0; } + float alpha = cell.shouldDrawAlphaLayer() ? cell.getAlpha() : 1f; + float canvasOffsetX = cell.getLeft() + cell.getNonAnimationTranslationX(false); + float canvasOffsetY = cell.getY(); canvas.save(); - canvas.translate(cell.getLeft() + cell.getTranslationX(), cell.getY()); - cell.drawCaptionLayout(canvas, (cell.getCurrentPosition().flags & MessageObject.POSITION_FLAG_LEFT) == 0); + MessageObject.GroupedMessages groupedMessages = cell.getCurrentMessagesGroup(); + if (groupedMessages != null && groupedMessages.transitionParams.backgroundChangeBounds) { + float x = cell.getNonAnimationTranslationX(true); + float l = (groupedMessages.transitionParams.left + x + groupedMessages.transitionParams.offsetLeft); + float t = (groupedMessages.transitionParams.top + groupedMessages.transitionParams.offsetTop); + float r = (groupedMessages.transitionParams.right + x + groupedMessages.transitionParams.offsetRight); + float b = (groupedMessages.transitionParams.bottom + groupedMessages.transitionParams.offsetBottom); + + if (!groupedMessages.transitionParams.backgroundChangeBounds) { + t += cell.getTranslationY(); + b += cell.getTranslationY(); + } + canvas.clipRect( + l + AndroidUtilities.dp(8), t + AndroidUtilities.dp(8), + r - AndroidUtilities.dp(8), b - AndroidUtilities.dp(8) + ); + } + canvas.translate(canvasOffsetX, canvasOffsetY); + cell.drawCaptionLayout(canvas, selectionOnly, alpha); canvas.restore(); } drawCaptionAfter.clear(); @@ -2936,37 +3288,63 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not ChatMessageCell chatMessageCell = (ChatMessageCell) child; MessageObject.GroupedMessagePosition position = chatMessageCell.getCurrentPosition(); - if (position != null) { - if (position.last || position.minX == 0 && position.minY == 0) { + if (position != null || chatMessageCell.getTransitionParams().animateBackgroundBoundsInner) { + if (position == null || (position.last || position.minX == 0 && position.minY == 0)) { if (num == count - 1) { + float alpha = chatMessageCell.shouldDrawAlphaLayer() ? chatMessageCell.getAlpha() : 1f; + float canvasOffsetX = chatMessageCell.getLeft() + chatMessageCell.getNonAnimationTranslationX(false); + float canvasOffsetY = chatMessageCell.getTop(); canvas.save(); - canvas.translate(chatMessageCell.getLeft() + chatMessageCell.getTranslationX(), chatMessageCell.getTop()); - if (position.last) { - chatMessageCell.drawTime(canvas); + canvas.translate(canvasOffsetX, canvasOffsetY); + if (position == null || position.last) { + chatMessageCell.drawTime(canvas, alpha); } - if (position.minX == 0 && position.minY == 0) { - chatMessageCell.drawNamesLayout(canvas); + if (position == null || (position.minX == 0 && position.minY == 0)) { + chatMessageCell.drawNamesLayout(canvas, alpha); } canvas.restore(); } else { - if (position.last) { + if (position == null || position.last) { drawTimeAfter.add(chatMessageCell); } - if (position.minX == 0 && position.minY == 0 && chatMessageCell.hasNameLayout()) { + if ((position == null || (position.minX == 0 && position.minY == 0)) && chatMessageCell.hasNameLayout()) { drawNamesAfter.add(chatMessageCell); } } } - if (num == count - 1) { - canvas.save(); - canvas.translate(chatMessageCell.getLeft() + chatMessageCell.getTranslationX(), chatMessageCell.getTop()); - if (chatMessageCell.hasCaptionLayout() && (position.flags & MessageObject.POSITION_FLAG_BOTTOM) != 0) { - chatMessageCell.drawCaptionLayout(canvas, (position.flags & MessageObject.POSITION_FLAG_LEFT) == 0); - } - canvas.restore(); - } else { - if (chatMessageCell.hasCaptionLayout() && (position.flags & MessageObject.POSITION_FLAG_BOTTOM) != 0) { - drawCaptionAfter.add(chatMessageCell); + if (position != null || chatMessageCell.getTransitionParams().transformGroupToSingleMessage) { + if (num == count - 1) { + float alpha = chatMessageCell.shouldDrawAlphaLayer() ? chatMessageCell.getAlpha() : 1f; + float canvasOffsetX = chatMessageCell.getLeft() + chatMessageCell.getNonAnimationTranslationX(false); + float canvasOffsetY = chatMessageCell.getTop(); + canvas.save(); + MessageObject.GroupedMessages groupedMessages = chatMessageCell.getCurrentMessagesGroup(); + if (groupedMessages != null && groupedMessages.transitionParams.backgroundChangeBounds) { + float x = chatMessageCell.getNonAnimationTranslationX(true); + float l = (groupedMessages.transitionParams.left + x + groupedMessages.transitionParams.offsetLeft); + float t = (groupedMessages.transitionParams.top + groupedMessages.transitionParams.offsetTop); + float r = (groupedMessages.transitionParams.right + x + groupedMessages.transitionParams.offsetRight); + float b = (groupedMessages.transitionParams.bottom + groupedMessages.transitionParams.offsetBottom); + + if (groupedMessages.transitionParams.backgroundChangeBounds) { + t -= chatMessageCell.getTranslationY(); + b -= chatMessageCell.getTranslationY(); + } + canvas.clipRect( + l + AndroidUtilities.dp(8), t + AndroidUtilities.dp(8), + r - AndroidUtilities.dp(8), b - AndroidUtilities.dp(8) + ); + } + canvas.translate(canvasOffsetX, canvasOffsetY); + if (position == null || (position.flags & MessageObject.POSITION_FLAG_BOTTOM) != 0) { + boolean selectionOnly = position != null && (position.flags & MessageObject.POSITION_FLAG_LEFT) == 0; + chatMessageCell.drawCaptionLayout(canvas, selectionOnly, alpha); + } + canvas.restore(); + } else { + if (position == null || (position.flags & MessageObject.POSITION_FLAG_BOTTOM) != 0) { + drawCaptionAfter.add(chatMessageCell); + } } } } @@ -2985,12 +3363,18 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not ImageReceiver imageReceiver = chatMessageCell.getAvatarImage(); if (imageReceiver != null) { MessageObject.GroupedMessages groupedMessages = getValidGroupedMessage(message); + if (chatMessageCell.getMessageObject().deleted) { + if (child.getTranslationY() != 0) { + canvas.restore(); + } + return result; + } - int top = child.getTop(); + boolean replaceAnimation = chatListView.isScrollAnimationRunning() || (groupedMessages != null && groupedMessages.transitionParams.backgroundChangeBounds); + int top = replaceAnimation ? child.getTop() : (int) child.getY(); if (chatMessageCell.isPinnedBottom()) { - int p; - if (chatMessageCell.willRemoved) { + if (chatMessageCell.willRemovedAfterAnimation()) { p = chatScrollHelper.positionToOldView.indexOfValue(child); if (p >= 0) { p = chatScrollHelper.positionToOldView.keyAt(p); @@ -3020,7 +3404,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } else { nextPosition = p - 1; } - if (chatMessageCell.willRemoved) { + if (chatMessageCell.willRemovedAfterAnimation()) { View view = chatScrollHelper.positionToOldView.get(nextPosition); if (view != null) { if (child.getTranslationY() != 0) { @@ -3039,56 +3423,69 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } } } - float tx = chatMessageCell.getTranslationX(); - int y = child.getTop() + chatMessageCell.getLayoutHeight(); + float tx = chatMessageCell.getSlidingOffsetX() + chatMessageCell.getCheckBoxTranslation(); + + + int y = (int) ((replaceAnimation ? child.getTop() : child.getY()) + chatMessageCell.getLayoutHeight()); int maxY = chatListView.getMeasuredHeight() - chatListView.getPaddingBottom(); if (y > maxY) { y = maxY; } - if (chatMessageCell.willRemoved) { - if (chatMessageCell.isPinnedTop()) { - View view = chatMessageCell; - int p = chatScrollHelper.positionToOldView.indexOfValue(view); + + if (!replaceAnimation && child.getTranslationY() != 0) { + canvas.restore(); + } + if (chatMessageCell.isPinnedTop()) { + int p; + if (chatMessageCell.willRemovedAfterAnimation()) { + p = chatScrollHelper.positionToOldView.indexOfValue(child); if (p >= 0) { p = chatScrollHelper.positionToOldView.keyAt(p); } - if (p >= 0) { - int tries = 0; - while (true) { - if (tries >= 20) { + } else { + ViewHolder holder = chatListView.getChildViewHolder(child); + p = holder.getAdapterPosition(); + } + if (p >= 0) { + int tries = 0; + while (true) { + if (tries >= 20) { + break; + } + tries++; + + int prevPosition; + if (groupedMessages != null && position != null) { + int idx = groupedMessages.posArray.indexOf(position); + if (idx < 0) { break; } - tries++; - int prevPosition; - if (groupedMessages != null && position != null) { - int idx = groupedMessages.posArray.indexOf(position); - if (idx < 0) { - break; - } - int size = groupedMessages.posArray.size(); - if ((position.flags & MessageObject.POSITION_FLAG_TOP) != 0) { - prevPosition = p + idx + 1; - } else { - prevPosition = p + 1; - for (int a = idx - 1; a >= 0; a--) { - if (groupedMessages.posArray.get(a).maxY < position.minY) { - break; - } else { - prevPosition++; - } - } - } + int size = groupedMessages.posArray.size(); + if ((position.flags & MessageObject.POSITION_FLAG_TOP) != 0) { + prevPosition = p + idx + 1; } else { prevPosition = p + 1; + for (int a = idx - 1; a >= 0; a--) { + if (groupedMessages.posArray.get(a).maxY < position.minY) { + break; + } else { + prevPosition++; + } + } } - view = chatScrollHelper.positionToOldView.get(prevPosition); + } else { + prevPosition = p + 1; + } + if (chatMessageCell.willRemovedAfterAnimation()) { + View view = chatScrollHelper.positionToOldView.get(prevPosition); if (view != null) { - p = prevPosition; - top = (int) view.getY(); + top = view.getTop(); if (view instanceof ChatMessageCell) { cell = (ChatMessageCell) view; if (!cell.isPinnedTop()) { break; + } else { + p = prevPosition; } } else { break; @@ -3096,52 +3493,16 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } else { break; } - } - } - } - } else { - if (chatMessageCell.isPinnedTop()) { - ViewHolder holder = chatListView.getChildViewHolder(child); - if (holder != null) { - int tries = 0; - while (true) { - if (tries >= 20) { - break; - } - tries++; - int p = holder.getAdapterPosition(); - int prevPosition; - if (groupedMessages != null && position != null) { - int idx = groupedMessages.posArray.indexOf(position); - if (idx < 0) { - break; - } - int size = groupedMessages.posArray.size(); - if ((position.flags & MessageObject.POSITION_FLAG_TOP) != 0) { - prevPosition = p + idx + 1; - } else { - prevPosition = p + 1; - for (int a = idx - 1; a >= 0; a--) { - if (groupedMessages.posArray.get(a).maxY < position.minY) { - break; - } else { - prevPosition++; - } - } - } - } else { - prevPosition = p + 1; - } - holder = chatListView.findViewHolderForAdapterPosition(prevPosition); + } else { + ViewHolder holder = chatListView.findViewHolderForAdapterPosition(prevPosition); if (holder != null) { - top = (int) holder.itemView.getY(); + top = holder.itemView.getTop(); if (holder.itemView instanceof ChatMessageCell) { cell = (ChatMessageCell) holder.itemView; - if (y - AndroidUtilities.dp(48) < holder.itemView.getBottom()) { - //tx = Math.min(cell.getTranslationX(), tx); - } if (!cell.isPinnedTop()) { break; + } else { + p = prevPosition; } } else { break; @@ -3160,11 +3521,25 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not canvas.save(); canvas.translate(tx, 0); } + if (chatMessageCell.getCurrentMessagesGroup() != null) { + if (chatMessageCell.getCurrentMessagesGroup().transitionParams.backgroundChangeBounds) { + y -= chatMessageCell.getTranslationY(); + } + } imageReceiver.setImageY(y - AndroidUtilities.dp(44)); + if (cell.shouldDrawAlphaLayer()) { + imageReceiver.setAlpha(cell.getAlpha()); + } else { + imageReceiver.setAlpha(1f); + } imageReceiver.draw(canvas); if (tx != 0) { canvas.restore(); } + + if (!replaceAnimation && child.getTranslationY() != 0) { + canvas.save(); + } } } @@ -3199,6 +3574,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not if (currentEncryptedChat != null && Build.VERSION.SDK_INT >= 19) { chatListView.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS); } + chatListView.setNestedScrollingEnabled(false); chatListView.setInstantClick(true); chatListView.setDisableHighlightState(true); chatListView.setTag(1); @@ -3206,13 +3582,68 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not chatListView.setAdapter(chatAdapter = new ChatActivityAdapter(context)); chatListView.setClipToPadding(false); chatListView.setPadding(0, AndroidUtilities.dp(4), 0, AndroidUtilities.dp(3)); - chatListView.setItemAnimator(null); - chatListView.setLayoutAnimation(null); + if (MessagesController.getGlobalMainSettings().getBoolean("view_animations", true)) { + chatListItemAniamtor = new ChatListItemAnimator(this, chatListView) { + + int index = -1; + Runnable finishRunnable; + + @Override + public void onAnimationStart() { + if (index == -1) { + index = getNotificationCenter().setAnimationInProgress(index, allowedNotificationsDuringChatListAnimations); + } + if (finishRunnable != null) { + AndroidUtilities.cancelRunOnUIThread(finishRunnable); + finishRunnable = null; + } + if (BuildVars.LOGS_ENABLED) { + FileLog.d("chatItemAnimator disable notifications"); + } + } + + @Override + protected void onAllAnimationsDone() { + super.onAllAnimationsDone(); + if (finishRunnable != null) { + AndroidUtilities.cancelRunOnUIThread(finishRunnable); + } + AndroidUtilities.runOnUIThread(finishRunnable = () -> { + if (index != -1) { + getNotificationCenter().onAnimationFinish(index); + index = -1; + } + if (BuildVars.LOGS_ENABLED) { + FileLog.d("chatItemAnimator enable notifications"); + } + }); + } + + + @Override + public void endAnimations() { + super.endAnimations(); + if (finishRunnable != null) { + AndroidUtilities.cancelRunOnUIThread(finishRunnable); + } + AndroidUtilities.runOnUIThread(finishRunnable = () -> { + if (index != -1) { + getNotificationCenter().onAnimationFinish(index); + index = -1; + } + if (BuildVars.LOGS_ENABLED) { + FileLog.d("chatItemAnimator enable notifications"); + } + }); + } + }; + chatListItemAniamtor.setSupportsChangeAnimations(false); + } chatLayoutManager = new GridLayoutManagerFixed(context, 1000, LinearLayoutManager.VERTICAL, true) { @Override public boolean supportsPredictiveItemAnimations() { - return false; + return true; } @Override @@ -3230,6 +3661,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not return false; } + @Override protected boolean hasSiblingChild(int position) { if (position >= chatAdapter.messagesStartRow && position < chatAdapter.messagesEndRow) { @@ -3334,6 +3766,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } chatListView.setOverScrollMode(RecyclerView.OVER_SCROLL_ALWAYS); textSelectionHelper.stopScrolling(); + updateVisibleRows(); } else { if (newState == RecyclerView.SCROLL_STATE_SETTLING) { wasManualScroll = true; @@ -4107,7 +4540,11 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not int[] size = MessageObject.getInlineResultWidthAndHeight(result); EmbedBottomSheet.show(getParentActivity(), result.title != null ? result.title : "", result.description, result.content.url, result.content.url, size[0], size[1]); } else { - Browser.openUrl(getParentActivity(), result.content.url); + if (AndroidUtilities.shouldShowUrlInAlert(result.content.url)) { + AlertsCreator.showOpenUrlAlert(ChatActivity.this, result.content.url, true, true, true); + } else { + Browser.openUrl(getParentActivity(), result.content.url); + } } } })); @@ -4399,6 +4836,9 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not bottomMessagesActionContainer.setOnTouchListener((v, event) -> true); chatActivityEnterView = new ChatActivityEnterView(getParentActivity(), contentView, this, true) { + + int lastContentViewHeight; + @Override public boolean onInterceptTouchEvent(MotionEvent ev) { if (getAlpha() != 1.0f) { @@ -4422,12 +4862,73 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } return super.dispatchTouchEvent(ev); } + + @Override + protected void onLayout(boolean changed, int left, int top, int right, int bottom) { + super.onLayout(changed, left, top, right, bottom); + int t = getBackgroundTop(); + if (chatActivityEnterViewAnimateFromTop != 0 && t != chatActivityEnterViewAnimateFromTop && lastContentViewHeight == contentView.getMeasuredHeight()) { + if (changeBoundAnimator != null) { + changeBoundAnimator.cancel(); + } + int dy = chatActivityEnterViewAnimateFromTop - t; + animatedTop = dy; + chatListView.setTranslationY(dy); + if (topView != null && topView.getVisibility() == View.VISIBLE) { + topView.setTranslationY(animatedTop + (1f - topViewEnterProgress) * topView.getLayoutParams().height); + if (topLineView != null) { + topLineView.setTranslationY(animatedTop); + } + } + + contentView.setClipChildren(false); + + changeBoundAnimator = ValueAnimator.ofFloat(1f, 0); + changeBoundAnimator.addUpdateListener(a -> { + int v = (int) (dy * (float) a.getAnimatedValue()); + animatedTop = v; + if (topView != null && topView.getVisibility() == View.VISIBLE) { + topView.setTranslationY(animatedTop + (1f - topViewEnterProgress) * topView.getLayoutParams().height); + if (topLineView != null) { + topLineView.setTranslationY(animatedTop); + } + } else { + chatListView.setTranslationY(v); + } + invalidate(); + }); + changeBoundAnimator.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + animatedTop = 0; + if (topView != null && topView.getVisibility() == View.VISIBLE) { + topView.setTranslationY(animatedTop + (1f - topViewEnterProgress) * topView.getLayoutParams().height); + if (topLineView != null) { + topLineView.setTranslationY(animatedTop); + } + } else { + chatListView.setTranslationY(0); + } + contentView.setClipChildren(true); + changeBoundAnimator = null; + } + }); + changeBoundAnimator.setDuration(200); + changeBoundAnimator.setStartDelay(20); + changeBoundAnimator.setInterpolator(CubicBezierInterpolator.DEFAULT); + if (!waitingForSendingMessageLoad) { + changeBoundAnimator.start(); + } + } + lastContentViewHeight = contentView.getMeasuredHeight(); + chatActivityEnterViewAnimateFromTop = 0; + } }; chatActivityEnterView.setDelegate(new ChatActivityEnterView.ChatActivityEnterViewDelegate() { @Override public void onMessageSend(CharSequence message, boolean notify, int scheduleDate) { - if (!inScheduleMode) { - moveScrollToLastMessage(); + if (chatListItemAniamtor != null) { + chatActivityEnterViewAnimateFromTop = chatActivityEnterView.getBackgroundTop(); } if (mentionsAdapter != null) { mentionsAdapter.addHashtagsFromMessage(message); @@ -4444,7 +4945,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } updateScheduledInterface(false); } - hideFieldPanel(notify, scheduleDate, false); + hideFieldPanel(notify, scheduleDate, true); } @Override @@ -4574,10 +5075,14 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not @Override public void onMessageEditEnd(boolean loading) { + if (chatListItemAniamtor != null) { + chatActivityEnterViewAnimateFromTop = chatActivityEnterView.getBackgroundTop(); + } if (!loading) { mentionsAdapter.setNeedBotContext(currentEncryptedChat == null || AndroidUtilities.getPeerLayerVersion(currentEncryptedChat.layer) >= 46); if (editingMessageObject != null) { - hideFieldPanel(false); + AndroidUtilities.runOnUIThread(() -> hideFieldPanel(true), 30); + } chatActivityEnterView.setAllowStickersAndGifs(currentEncryptedChat == null || AndroidUtilities.getPeerLayerVersion(currentEncryptedChat.layer) >= 23, currentEncryptedChat == null || AndroidUtilities.getPeerLayerVersion(currentEncryptedChat.layer) >= 46); if (editingMessageObjectReqId != 0) { @@ -4615,6 +5120,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not allowContextBotPanel = !chatActivityEnterView.isPopupShowing(); checkContextBotPanel(); + chatActivityEnterViewAnimateFromTop = 0; } @Override @@ -4640,7 +5146,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not if (state == 0) { instantCameraView.showCamera(); chatListView.stopScroll(); - chatAdapter.updateRows(); + chatAdapter.updateRowsSafe(); } else if (state == 1 || state == 3 || state == 4) { instantCameraView.send(state, notify, scheduleDate); } else if (state == 2 || state == 5) { @@ -4707,10 +5213,13 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not @Override public void bottomPanelTranslationYChanged(float translation) { chatListView.setTranslationY(translation); -// instantCameraView.setTranslationY(translation); -// instantCameraView.onPanTranslationUpdate((int) translation); chatActivityEnterView.setTranslationY(translation); } + + @Override + public void prepareMessageSending() { + waitingForSendingMessageLoad = true; + } }); chatActivityEnterView.setDialogId(dialog_id, currentAccount); if (chatInfo != null) { @@ -4954,7 +5463,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not searchUpButton.setBackgroundDrawable(Theme.createSelectorDrawable(Theme.getColor(Theme.key_actionBarActionModeDefaultSelector), 1)); searchContainer.addView(searchUpButton, LayoutHelper.createFrame(48, 48, Gravity.RIGHT | Gravity.TOP, 0, 0, 48, 0)); searchUpButton.setOnClickListener(view -> { - if (chatListView.animationRunning) { + if (chatListView.isScrollAnimationRunning()) { return; } getMediaDataController().searchMessagesInChat(null, dialog_id, mergeDialogId, classGuid, 1, searchingUserMessages); @@ -4974,7 +5483,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not searchDownButton.setBackgroundDrawable(Theme.createSelectorDrawable(Theme.getColor(Theme.key_actionBarActionModeDefaultSelector), 1)); searchContainer.addView(searchDownButton, LayoutHelper.createFrame(48, 48, Gravity.RIGHT | Gravity.TOP, 0, 0, 0, 0)); searchDownButton.setOnClickListener(view -> { - if (chatListView.animationRunning) { + if (chatListView.isScrollAnimationRunning()) { return; } getMediaDataController().searchMessagesInChat(null, dialog_id, mergeDialogId, classGuid, 2, searchingUserMessages); @@ -5111,16 +5620,13 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } }; bottomOverlayChat.setWillNotDraw(false); - bottomOverlayChat.setPadding(0, AndroidUtilities.dp(3), 0, 0); + bottomOverlayChat.setPadding(0, AndroidUtilities.dp(1.5f), 0, 0); bottomOverlayChat.setVisibility(View.INVISIBLE); + bottomOverlayChat.setClipChildren(false); contentView.addView(bottomOverlayChat, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 51, Gravity.BOTTOM)); - bottomOverlayChatText = new TextView(context); - bottomOverlayChatText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); - bottomOverlayChatText.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); - bottomOverlayChatText.setTextColor(Theme.getColor(Theme.key_chat_fieldOverlayText)); - bottomOverlayChatText.setGravity(Gravity.CENTER); - bottomOverlayChat.addView(bottomOverlayChatText, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); + bottomOverlayChatText = new UnreadCounterTextView(context); + bottomOverlayChat.addView(bottomOverlayChatText, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, 0, 0, 1.5f, 0, 0)); bottomOverlayChatText.setOnClickListener(view -> { if (getParentActivity() == null) { return; @@ -5178,12 +5684,8 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not }); bottomOverlayChatText2 = new UnreadCounterTextView(context); - bottomOverlayChatText2.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); - bottomOverlayChatText2.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); - bottomOverlayChatText2.setTextColor(Theme.getColor(Theme.key_chat_fieldOverlayText)); - bottomOverlayChatText2.setGravity(Gravity.CENTER); bottomOverlayChatText2.setVisibility(View.GONE); - bottomOverlayChat.addView(bottomOverlayChatText2, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); + bottomOverlayChat.addView(bottomOverlayChatText2, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, 0, 0, 1.5f, 0, 0)); bottomOverlayChatText2.setOnClickListener(v -> { if (chatInfo == null) { return; @@ -5264,7 +5766,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not contentView.addView(slowModeHint, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT | Gravity.TOP, 19, 0, 19, 0)); } - chatAdapter.updateRows(); + chatAdapter.updateRowsSafe(); if (loading && messages.isEmpty()) { progressView.setVisibility(chatAdapter.botInfoRow == -1 ? View.VISIBLE : View.INVISIBLE); chatListView.setEmptyView(null); @@ -5301,7 +5803,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not swipeBackEnabled = !isSelected; if (isSelected) { if (slidingView != null) { - slidingView.setTranslationX(0); + slidingView.setSlidingOffset(0); slidingView = null; } maybeStartTrackingSlidingView = false; @@ -5328,6 +5830,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not return fragmentView; } + private TextureView createTextureView(boolean add) { if (parentLayout == null) { return null; @@ -5677,7 +6180,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not waitingForLoad.add(lastLoadIndex); postponedScrollMessageId = 0; postponedScrollIsCanceled = false; - getMessagesController().loadMessages(dialog_id, 30, 0, date, true, 0, classGuid, 4, 0, ChatObject.isChannel(currentChat), inScheduleMode, lastLoadIndex++); + getMessagesController().loadMessages(dialog_id, mergeDialogId, false, 30, 0, date, true, 0, classGuid, 4, 0, ChatObject.isChannel(currentChat), inScheduleMode, lastLoadIndex++); floatingDateView.setAlpha(0.0f); floatingDateView.setTag(null); } @@ -5718,7 +6221,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not if (chatAttachAlert.isShowing()) { AndroidUtilities.requestAdjustResize(getParentActivity(), classGuid); if (chatActivityEnterView.getVisibility() == View.VISIBLE && fragmentView != null) { - fragmentView.requestLayout(); + // fragmentView.requestLayout(); } } super.dismissInternal(); @@ -5751,15 +6254,16 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not MediaController.PhotoEntry photoEntry = (MediaController.PhotoEntry) selectedPhotos.get(selectedPhotosOrder.get(a)); SendMessagesHelper.SendingMediaInfo info = new SendMessagesHelper.SendingMediaInfo(); - if (photoEntry.imagePath != null) { + if (!photoEntry.isVideo && photoEntry.imagePath != null) { info.path = photoEntry.imagePath; } else if (photoEntry.path != null) { info.path = photoEntry.path; } + info.thumbPath = photoEntry.thumbPath; info.isVideo = photoEntry.isVideo; info.caption = photoEntry.caption != null ? photoEntry.caption.toString() : null; info.entities = photoEntry.entities; - info.masks = !photoEntry.stickers.isEmpty() ? new ArrayList<>(photoEntry.stickers) : null; + info.masks = photoEntry.stickers; info.ttl = photoEntry.ttl; info.videoEditedInfo = photoEntry.editedInfo; info.canDeleteAfter = photoEntry.canDeleteAfter; @@ -5812,6 +6316,15 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not AndroidUtilities.setAdjustResizeToNothing(getParentActivity(), classGuid); fragmentView.requestLayout(); } + + @Override + public void doOnIdle(Runnable runnable) { + if (chatListItemAniamtor != null && chatListItemAniamtor.isRunning()) { + chatListItemAniamtor.runOnAnimationEnd(runnable); + } else { + runnable.run(); + } + } }); } } @@ -6125,7 +6638,11 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not return; } - voiceHintTextView.setText(video ? LocaleController.getString("HoldToVideo", R.string.HoldToVideo) : LocaleController.getString("HoldToAudio", R.string.HoldToAudio)); + if (chatActivityEnterView.hasRecordVideo()) { + voiceHintTextView.setText(video ? LocaleController.getString("HoldToVideo", R.string.HoldToVideo) : LocaleController.getString("HoldToAudio", R.string.HoldToAudio)); + } else { + voiceHintTextView.setText(LocaleController.getString("HoldToAudioOnly", R.string.HoldToAudioOnly)); + } if (voiceHintHideRunnable != null) { if (voiceHintAnimation != null) { @@ -6407,6 +6924,9 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } private void showGifHint() { + if (chatActivityEnterView == null || chatActivityEnterView.getVisibility() != View.VISIBLE) { + return; + } SharedPreferences preferences = MessagesController.getGlobalMainSettings(); if (preferences.getBoolean("gifhint", false)) { return; @@ -6734,6 +7254,11 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not return chatActivityEnterView; } + public boolean isKeyboardVisible() { + int keyboardSize = SharedConfig.smoothKeyboard ? 0 : contentView.getKeyboardHeight(); + return keyboardSize > AndroidUtilities.dp(20); + } + private void checkScrollForLoad(boolean scroll) { if (chatLayoutManager == null || paused) { return; @@ -6752,24 +7277,24 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not loading = true; waitingForLoad.add(lastLoadIndex); if (messagesByDays.size() != 0) { - getMessagesController().loadMessages(dialog_id, 50, maxMessageId[0], 0, !cacheEndReached[0], minDate[0], classGuid, 0, 0, ChatObject.isChannel(currentChat), inScheduleMode, lastLoadIndex++); + getMessagesController().loadMessages(dialog_id, mergeDialogId, false, 50, maxMessageId[0], 0, !cacheEndReached[0], minDate[0], classGuid, 0, 0, ChatObject.isChannel(currentChat), inScheduleMode, lastLoadIndex++); } else { - getMessagesController().loadMessages(dialog_id, 50, 0, 0, !cacheEndReached[0], minDate[0], classGuid, 0, 0, ChatObject.isChannel(currentChat), inScheduleMode, lastLoadIndex++); + getMessagesController().loadMessages(dialog_id, mergeDialogId, false, 50, 0, 0, !cacheEndReached[0], minDate[0], classGuid, 0, 0, ChatObject.isChannel(currentChat), inScheduleMode, lastLoadIndex++); } } else if (mergeDialogId != 0 && !endReached[1]) { loading = true; waitingForLoad.add(lastLoadIndex); - getMessagesController().loadMessages(mergeDialogId, 50, maxMessageId[1], 0, !cacheEndReached[1], minDate[1], classGuid, 0, 0, false, inScheduleMode, lastLoadIndex++); + getMessagesController().loadMessages(mergeDialogId, 0, false, 50, maxMessageId[1], 0, !cacheEndReached[1], minDate[1], classGuid, 0, 0, false, inScheduleMode, lastLoadIndex++); } } if (visibleItemCount > 0 && !loadingForward && firstVisibleItem <= 10) { if (mergeDialogId != 0 && !forwardEndReached[1]) { waitingForLoad.add(lastLoadIndex); - getMessagesController().loadMessages(mergeDialogId, 50, minMessageId[1], 0, true, maxDate[1], classGuid, 1, 0, false, inScheduleMode, lastLoadIndex++); + getMessagesController().loadMessages(mergeDialogId, 0, false, 50, minMessageId[1], 0, true, maxDate[1], classGuid, 1, 0, false, inScheduleMode, lastLoadIndex++); loadingForward = true; } else if (!forwardEndReached[0]) { waitingForLoad.add(lastLoadIndex); - getMessagesController().loadMessages(dialog_id, 50, minMessageId[0], 0, true, maxDate[0], classGuid, 1, 0, ChatObject.isChannel(currentChat), inScheduleMode, lastLoadIndex++); + getMessagesController().loadMessages(dialog_id, mergeDialogId, false, 50, minMessageId[0], 0, true, maxDate[0], classGuid, 1, 0, ChatObject.isChannel(currentChat), inScheduleMode, lastLoadIndex++); loadingForward = true; } } @@ -6920,7 +7445,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not boolean hasNoGifs = false; for (int a = 0; a < photos.size(); a++) { SendMessagesHelper.SendingMediaInfo info = photos.get(a); - if (info.inlineResult == null) { + if (info.inlineResult == null && info.videoEditedInfo == null) { hasNoGifs = true; break; } @@ -6930,7 +7455,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } for (int a = 0; a < photos.size(); a++) { SendMessagesHelper.SendingMediaInfo info = photos.get(a); - if (info.inlineResult != null) { + if (info.inlineResult != null && info.videoEditedInfo == null) { SendMessagesHelper.prepareSendingBotContextResult(getAccountInstance(), info.inlineResult, info.params, dialog_id, replyingMessageObject, notify, scheduleDate); photos.remove(a); a--; @@ -7128,6 +7653,9 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not if (arrayList == null || arrayList.isEmpty()) { return; } + if ((scheduleDate != 0) == inScheduleMode) { + waitingForSendingMessageLoad = true; + } if (!fromMyName) { AlertsCreator.showSendMediaAlert(getSendMessagesHelper().sendMessage(arrayList, dialog_id, notify, scheduleDate), this); } else { @@ -7535,7 +8063,9 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not forwardMessages(messagesToForward, false, notify, scheduleDate != 0 && scheduleDate != 0x7ffffffe ? scheduleDate + 1 : scheduleDate); } chatActivityEnterView.setForceShowSendButton(false, false); - chatActivityEnterView.hideTopView(animated); + if (!waitingForSendingMessageLoad) { + chatActivityEnterView.hideTopView(animated); + } chatActivityEnterView.setReplyingMessageObject(null); chatActivityEnterView.setEditingMessageObject(null, false); topViewWasVisible = 0; @@ -7549,6 +8079,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not private void moveScrollToLastMessage() { if (chatListView != null && !messages.isEmpty()) { chatLayoutManager.scrollToPositionWithOffset(0, 0); + chatListView.stopScroll(); } } @@ -7604,7 +8135,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } private void scrollToLastMessage(boolean pagedown) { - if (chatListView.animationRunning) { + if (chatListView.isScrollAnimationRunning()) { return; } chatScrollHelper.setScrollDirection(RecyclerAnimationScrollHelper.SCROLL_DIRECTION_DOWN); @@ -7618,42 +8149,10 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not int h = 0; int maxH = (int) (chatListView.getMeasuredHeight() * 1.5f); int i = chatLayoutManager.findFirstVisibleItemPosition() - 1; - View firstView = chatLayoutManager.findViewByPosition(i + 1); - chatAdapter.updateRows(); + chatAdapter.updateRowsSafe(); - if (dummyMessageCell == null) { - dummyMessageCell = new ChatMessageCell(getParentActivity()); - } - - dummyMessageCell.isChat = currentChat != null || UserObject.isUserSelf(currentUser); - dummyMessageCell.isBot = currentUser != null && currentUser.bot; - dummyMessageCell.isMegagroup = ChatObject.isChannel(currentChat) && currentChat.megagroup; - - while (h < maxH) { - if (i < chatAdapter.messagesStartRow || i > chatAdapter.messagesEndRow) break; - MessageObject messageObject = messages.get(i - chatAdapter.messagesStartRow); - MessageObject.GroupedMessages groupedMessages = groupedMessagesMap.get(messageObject.getGroupId()); - h += dummyMessageCell.computeHeight(messageObject, groupedMessages); - i--; - } - - if (h > maxH) { - chatScrollHelperCallback.scrollTo = null; - chatScrollHelper.scrollToPosition(0, 0, true, true); - } else { - MessageObject messageObject = messages.size() > 0 ? messages.get(0) : null; - if (messageObject != null && messageObject.getApproximateHeight() > chatListView.getMeasuredHeight() / 2) { - chatScrollHelperCallback.scrollTo = null; - chatScrollHelper.scrollToPosition(0, 0, true, true); - } else { - if (firstView != null) { - chatListView.smoothScrollBy(0, h + firstView.getBottom() - chatListView.getMeasuredHeight() + AndroidUtilities.dp(20)); - chatListView.setOverScrollMode(RecyclerListView.OVER_SCROLL_NEVER); - } else { - chatLayoutManager.scrollToPositionWithOffset(0, 0); - } - } - } + chatScrollHelperCallback.scrollTo = null; + chatScrollHelper.scrollToPosition(0, 0, true, true); } } else { if (pagedown) { @@ -7673,7 +8172,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } waitingForLoad.add(lastLoadIndex); - getMessagesController().loadMessages(dialog_id, 30, 0, 0, true, 0, classGuid, 0, 0, ChatObject.isChannel(currentChat), inScheduleMode, lastLoadIndex++); + getMessagesController().loadMessages(dialog_id, mergeDialogId, false, 30, 0, 0, true, 0, classGuid, 0, 0, ChatObject.isChannel(currentChat), inScheduleMode, lastLoadIndex++); } } @@ -7707,8 +8206,8 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not videoPlayerContainer.setTag(R.id.parent_tag, imageReceiver); if (layoutParams.width != imageReceiver.getImageWidth() || layoutParams.height != imageReceiver.getImageHeight()) { aspectRatioFrameLayout.setResizeMode(AspectRatioFrameLayout.RESIZE_MODE_FILL); - layoutParams.width = imageReceiver.getImageWidth(); - layoutParams.height = imageReceiver.getImageHeight(); + layoutParams.width = (int) imageReceiver.getImageWidth(); + layoutParams.height = (int) imageReceiver.getImageHeight(); videoPlayerContainer.setLayoutParams(layoutParams); } videoTextureView.setScaleX(1f); @@ -7750,7 +8249,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } } - private void updateMessagesVisiblePart(boolean inLayout) { + public void updateMessagesVisiblePart(boolean inLayout) { if (chatListView == null) { return; } @@ -7837,13 +8336,15 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } minChild = view; } - if (view instanceof ChatActionCell && messageObject.isDateObject) { - if (view.getAlpha() != 1.0f) { - view.setAlpha(1.0f); - } - if (position < minPositionDateHolder) { - minPositionDateHolder = position; - minDateChild = view; + if (chatListItemAniamtor == null || !chatListItemAniamtor.isRunning()) { + if (view instanceof ChatActionCell && messageObject.isDateObject) { + if (view.getAlpha() != 1.0f) { + view.setAlpha(1.0f); + } + if (position < minPositionDateHolder) { + minPositionDateHolder = position; + minDateChild = view; + } } } } @@ -7857,7 +8358,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } else { videoPlayerContainer.setTranslationY(-AndroidUtilities.roundMessageSize - 100); fragmentView.invalidate(); - if ((messageObject.isRoundVideo() || messageObject.isVideo()) && messageObject.eventId == 0 && checkTextureViewPosition && !chatListView.animationRunning) { + if ((messageObject.isRoundVideo() || messageObject.isVideo()) && messageObject.eventId == 0 && checkTextureViewPosition && !chatListView.isScrollAnimationRunning()) { MediaController.getInstance().setCurrentVideoVisible(false); } } @@ -7866,7 +8367,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not MediaController.getInstance().setCurrentVideoVisible(true); } } - if (minMessageChild != null) { + if (minMessageChild != null && (chatListItemAniamtor == null || !chatListItemAniamtor.isRunning())) { MessageObject messageObject; if (minMessageChild instanceof ChatMessageCell) { messageObject = ((ChatMessageCell) minMessageChild).getMessageObject(); @@ -8061,7 +8562,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not private AlertDialog progressDialog; public void scrollToMessageId(int id, int fromMessageId, boolean select, int loadIndex, boolean forceScroll) { - if (chatListView.animationRunning || getParentActivity() == null) { + if (chatListView.isScrollAnimationRunning() || (chatListItemAniamtor != null && chatListItemAniamtor.isRunning()) || getParentActivity() == null) { return; } @@ -8110,7 +8611,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not highlightMessageId = id; } - chatAdapter.updateRows(); + chatAdapter.updateRowsSafe(); int position = chatAdapter.messagesStartRow + messages.indexOf(object); updateVisibleRows(); @@ -8251,7 +8752,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not waitingForLoad.add(lastLoadIndex); postponedScrollToLastMessageQueryIndex = lastLoadIndex; postponedScrollMessageId = id; - getMessagesController().loadMessages(loadIndex == 0 ? dialog_id : mergeDialogId, AndroidUtilities.isTablet() ? 30 : 20, startLoadFromMessageId, 0, true, 0, classGuid, 3, 0, ChatObject.isChannel(currentChat), inScheduleMode, lastLoadIndex++); + getMessagesController().loadMessages(loadIndex == 0 ? dialog_id : mergeDialogId, 0, false, AndroidUtilities.isTablet() ? 30 : 20, startLoadFromMessageId, 0, true, 0, classGuid, 3, 0, ChatObject.isChannel(currentChat), inScheduleMode, lastLoadIndex++); //emptyViewContainer.setVisibility(View.INVISIBLE); } else { View child = chatListView.getChildAt(0); @@ -9076,7 +9577,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not public void openVideoEditor(String videoPath, String caption) { if (getParentActivity() != null) { - final Bitmap thumb = ThumbnailUtils.createVideoThumbnail(videoPath, MediaStore.Video.Thumbnails.MINI_KIND); + final Bitmap thumb = SendMessagesHelper.createVideoThumbnail(videoPath, MediaStore.Video.Thumbnails.MINI_KIND); PhotoViewer.getInstance().setParentActivity(getParentActivity()); final ArrayList cameraPhoto = new ArrayList<>(); MediaController.PhotoEntry entry = new MediaController.PhotoEntry(0, 0, 0, videoPath, 0, true, 0, 0, 0); @@ -9254,12 +9755,18 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not if (id == NotificationCenter.messagesDidLoad) { int guid = (Integer) args[10]; if (guid == classGuid) { - setItemAnimationsEnabled(false); - if (!openAnimationEnded) { - getNotificationCenter().setAllowedNotificationsDutingAnimation(new int[]{NotificationCenter.chatInfoDidLoad, NotificationCenter.dialogsNeedReload, NotificationCenter.scheduledMessagesUpdated, + int queryLoadIndex = (Integer) args[11]; + boolean doNotRemoveLoadIndex; + if (queryLoadIndex < 0) { + doNotRemoveLoadIndex = true; + queryLoadIndex = -queryLoadIndex; + } else { + doNotRemoveLoadIndex = false; + } + if (!doNotRemoveLoadIndex && !openAnimationEnded) { + getNotificationCenter().updateAllowedNotifications(transitionAnimationIndex, new int[]{NotificationCenter.chatInfoDidLoad, NotificationCenter.dialogsNeedReload, NotificationCenter.scheduledMessagesUpdated, NotificationCenter.closeChats, NotificationCenter.botKeyboardDidLoad, NotificationCenter.userInfoDidLoad, NotificationCenter.needDeleteDialog/*, NotificationCenter.botInfoDidLoad*/}); } - int queryLoadIndex = (Integer) args[11]; int index = waitingForLoad.indexOf(queryLoadIndex); int currentUserId = getUserConfig().getClientUserId(); boolean schedule = (Boolean) args[14]; @@ -9270,10 +9777,10 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not if (inScheduleMode && schedule && !isCache) { waitingForReplyMessageLoad = true; waitingForLoad.add(lastLoadIndex); - getMessagesController().loadMessages(dialog_id, AndroidUtilities.isTablet() ? 30 : 20, 0, 0, true, 0, classGuid, 2, 0, ChatObject.isChannel(currentChat), inScheduleMode, lastLoadIndex++); + getMessagesController().loadMessages(dialog_id, mergeDialogId, false, AndroidUtilities.isTablet() ? 30 : 20, 0, 0, true, 0, classGuid, 2, 0, ChatObject.isChannel(currentChat), inScheduleMode, lastLoadIndex++); } return; - } else { + } else if (!doNotRemoveLoadIndex) { waitingForLoad.remove(index); } ArrayList messArr = (ArrayList) args[2]; @@ -9354,7 +9861,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not if (load_type == 0 && isCache && messArr.size() < count) { postponedScrollToLastMessageQueryIndex = lastLoadIndex; waitingForLoad.add(lastLoadIndex); - getMessagesController().loadMessages(dialog_id, count, 0, 0, false, 0, classGuid, 0, 0, ChatObject.isChannel(currentChat), inScheduleMode, lastLoadIndex++); + getMessagesController().loadMessages(dialog_id, mergeDialogId, false, count, 0, 0, false, 0, classGuid, 0, 0, ChatObject.isChannel(currentChat), inScheduleMode, lastLoadIndex++); return; } @@ -9396,6 +9903,10 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } } + if (chatListItemAniamtor != null) { + chatListItemAniamtor.setShouldAnimateEnterFromBottom(false); + } + int unread_to_load = 0; if (fnid != 0) { last_message_id = (Integer) args[5]; @@ -9502,6 +10013,9 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not if (messagesDict[loadIndex].indexOfKey(messageId) >= 0) { continue; } + if (currentEncryptedChat != null && obj.messageOwner.stickerVerified == 0) { + getMediaDataController().verifyAnimatedStickerMessage(obj.messageOwner); + } addToPolls(obj, null); if (isSecretChat()) { checkSecretMessageForLocation(obj); @@ -9578,6 +10092,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not dateObj.type = 10; dateObj.contentType = 1; dateObj.isDateObject = true; + dateObj.stableId = lastStableId++; if (load_type == 1) { messages.add(0, dateObj); } else { @@ -9633,6 +10148,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not newRowsCount++; dayArray.add(obj); + obj.stableId = lastStableId++; if (load_type == 1) { messages.add(0, obj); } else { @@ -9667,6 +10183,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not MessageObject dateObj = new MessageObject(currentAccount, dateMsg, false); dateObj.type = 6; dateObj.contentType = 2; + dateObj.stableId = lastStableId++; messages.add(messages.size() - 1, dateObj); unreadMessageObject = dateObj; scrollToMessage = unreadMessageObject; @@ -9699,6 +10216,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not MessageObject dateObj = new MessageObject(currentAccount, dateMsg, false); dateObj.type = 6; dateObj.contentType = 2; + dateObj.stableId = lastStableId++; if (load_type == 1) { messages.add(1, dateObj); } else { @@ -9837,12 +10355,6 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } } else { if (newRowsCount != 0) { - boolean end = false; - if (endReached[loadIndex] && (loadIndex == 0 && mergeDialogId == 0 || loadIndex == 1)) { - end = true; - chatAdapter.notifyItemRangeChanged(chatAdapter.loadingUpRow - 1, 2); - chatAdapter.updateRows(); - } int firstVisPos = chatLayoutManager.findFirstVisibleItemPosition(); int lastVisPos = chatLayoutManager.findLastVisibleItemPosition(); int top = 0; @@ -9857,11 +10369,15 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } } } - - if (newRowsCount - (end ? 1 : 0) > 0) { - int insertStart = chatAdapter.messagesEndRow;/* (chatAdapter.isBot ? 2 : 1) + (end ? 0 : 1); TODO check with bot*/ - chatAdapter.notifyItemChanged(chatAdapter.loadingUpRow); - chatAdapter.notifyItemRangeInserted(insertStart, newRowsCount - (end ? 1 : 0)); + int insertStart = chatAdapter.messagesEndRow; + int loadingUpRow = chatAdapter.loadingUpRow; + chatAdapter.updateRowsInternal(); + if (loadingUpRow != -1 && chatAdapter.loadingUpRow == -1) { + chatAdapter.notifyItemRemoved(loadingUpRow); + } + if (newRowsCount > 0) { + chatAdapter.notifyItemChanged(insertStart - 1); + chatAdapter.notifyItemRangeInserted(insertStart, newRowsCount); } if (!postponedScroll && scrollToMessageObject != null) { int scrollToIndex = messages.indexOf(scrollToMessageObject); @@ -9869,8 +10385,10 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not chatLayoutManager.scrollToPositionWithOffset(chatAdapter.messagesStartRow + scrollToIndex, top); } } - } else if (endReached[loadIndex] && (loadIndex == 0 && mergeDialogId == 0 || loadIndex == 1)) { + } else if (chatAdapter.loadingUpRow != -1 && endReached[loadIndex] && (loadIndex == 0 && mergeDialogId == 0 || loadIndex == 1)) { chatAdapter.notifyItemRemoved(chatAdapter.loadingUpRow); + } else { + chatAdapter.notifyDataSetChanged(); } } @@ -9901,6 +10419,9 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not MessageObject messageObject = groupedMessages.messages.get(groupedMessages.messages.size() - 1); int idx = messages.indexOf(messageObject); if (idx >= 0) { + if (chatListItemAniamtor != null) { + chatListItemAniamtor.groupWillChanged(groupedMessages); + } chatAdapter.notifyItemRangeChanged(idx + chatAdapter.messagesStartRow, groupedMessages.messages.size()); } } @@ -9929,14 +10450,13 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } } if (newRowsCount == 0 && mergeDialogId != 0 && loadIndex == 0) { - getNotificationCenter().setAllowedNotificationsDutingAnimation(new int[]{NotificationCenter.chatInfoDidLoad, NotificationCenter.dialogsNeedReload, NotificationCenter.scheduledMessagesUpdated, + getNotificationCenter().updateAllowedNotifications(transitionAnimationIndex, new int[]{NotificationCenter.chatInfoDidLoad, NotificationCenter.dialogsNeedReload, NotificationCenter.scheduledMessagesUpdated, NotificationCenter.closeChats, NotificationCenter.messagesDidLoad, NotificationCenter.botKeyboardDidLoad, NotificationCenter.userInfoDidLoad, NotificationCenter.needDeleteDialog/*, NotificationCenter.botInfoDidLoad*/}); } if (showDateAfter) { showFloatingDateView(false); } checkScrollForLoad(false); - setItemAnimationsEnabled(true); if (postponedScroll) { chatAdapter.notifyDataSetChanged(); @@ -10107,6 +10627,10 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } } + if (chatListItemAniamtor != null) { + chatListItemAniamtor.setShouldAnimateEnterFromBottom(true); + } + boolean notifiedSearch = false; LongSparseArray scheduledGroupReplacement = null; for (int a = 0; a < arr.size(); a++) { @@ -10202,6 +10726,15 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not for (int a = 0; a < arr.size(); a++) { MessageObject obj = arr.get(a); int messageId = obj.getId(); + + if (obj.isOut() && waitingForSendingMessageLoad) { + waitingForSendingMessageLoad = false; + chatActivityEnterView.hideTopView(true); + if (changeBoundAnimator != null) { + changeBoundAnimator.start(); + } + } + if (!inScheduleMode && currentUser != null && (currentUser.bot && obj.isOut() || currentUser.id == currentUserId)) { obj.setIsRead(); } @@ -10453,6 +10986,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not dateObj.type = 10; dateObj.contentType = 1; dateObj.isDateObject = true; + dateObj.stableId = lastStableId++; messages.add(placeToPaste, dateObj); if (chatAdapter != null) { chatAdapter.notifyItemInserted(placeToPaste); @@ -10474,6 +11008,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not MessageObject dateObj = new MessageObject(currentAccount, dateMsg, false); dateObj.type = 6; dateObj.contentType = 2; + dateObj.stableId = lastStableId++; messages.add(0, dateObj); if (chatAdapter != null) { chatAdapter.notifyItemInserted(0); @@ -10498,11 +11033,19 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } } } + obj.stableId = lastStableId++; messages.add(placeToPaste, obj); if (chatAdapter != null) { chatAdapter.notifyItemChanged(placeToPaste); chatAdapter.notifyItemInserted(placeToPaste); } + if (obj.isOut() && waitingForSendingMessageLoad) { + waitingForSendingMessageLoad = false; + chatActivityEnterView.hideTopView(true); + if (changeBoundAnimator != null) { + changeBoundAnimator.start(); + } + } if (!obj.isOut() && obj.messageOwner.mentioned && obj.isContentUnread()) { newMentionsCount++; } @@ -10744,7 +11287,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not maxDate[0] = maxDate[1] = Integer.MIN_VALUE; minDate[0] = minDate[1] = 0; waitingForLoad.add(lastLoadIndex); - getMessagesController().loadMessages(dialog_id, 30, 0, 0, !cacheEndReached[0], minDate[0], classGuid, 0, 0, ChatObject.isChannel(currentChat), inScheduleMode, lastLoadIndex++); + getMessagesController().loadMessages(dialog_id, mergeDialogId, false, 30, 0, 0, !cacheEndReached[0], minDate[0], classGuid, 0, 0, ChatObject.isChannel(currentChat), inScheduleMode, lastLoadIndex++); loading = true; } else { if (botButtons != null) { @@ -10772,6 +11315,8 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not return; } ArrayList markAsDeletedMessages = (ArrayList) args[0]; + ArrayList removedIndexes = new ArrayList<>(); + int channelId = (Integer) args[1]; int loadIndex = 0; if (ChatObject.isChannel(currentChat)) { @@ -10787,6 +11332,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } boolean updated = false; LongSparseArray newGroups = null; + LongSparseArray newGroupsSizes = null; int size = markAsDeletedMessages.size(); boolean updatedSelected = false; boolean updatedSelectedLast = false; @@ -10805,6 +11351,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not updatePinnedMessageView(true); } if (obj != null) { + obj.deleted = true; if (editingMessageObject == obj) { hideFieldPanel(true); } @@ -10820,13 +11367,18 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not addToSelectedMessages(obj, false, updatedSelectedLast = (a == size - 1)); } MessageObject removed = messages.remove(index); + removedIndexes.add(chatAdapter.messagesStartRow + index); if (removed.getGroupId() != 0) { MessageObject.GroupedMessages groupedMessages = groupedMessagesMap.get(removed.getGroupId()); if (groupedMessages != null) { if (newGroups == null) { newGroups = new LongSparseArray<>(); + newGroupsSizes = new LongSparseArray<>(); } newGroups.put(groupedMessages.groupId, groupedMessages); + if (newGroupsSizes.get(groupedMessages.groupId) == null) { + newGroupsSizes.put(groupedMessages.groupId, groupedMessages.messages.size()); + } groupedMessages.messages.remove(obj); } } @@ -10838,6 +11390,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not messagesByDays.remove(obj.dateKey); if (index >= 0 && index < messages.size()) { messages.remove(index); + removedIndexes.add(chatAdapter.messagesStartRow + index); } } } @@ -10854,6 +11407,14 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not if (newGroups != null) { for (int a = 0; a < newGroups.size(); a++) { MessageObject.GroupedMessages groupedMessages = newGroups.valueAt(a); + if (chatListItemAniamtor != null) { + if (groupedMessages.messages.size() == 1) { + chatListItemAniamtor.groupWillTransformToSingleMessage(groupedMessages); + } else { + chatListItemAniamtor.groupWillChanged(groupedMessages); + } + } + if (groupedMessages.messages.isEmpty()) { groupedMessagesMap.remove(groupedMessages.groupId); } else { @@ -10862,7 +11423,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not int index = messages.indexOf(messageObject); if (index >= 0) { if (chatAdapter != null) { - chatAdapter.notifyItemRangeChanged(index + chatAdapter.messagesStartRow, groupedMessages.messages.size()); + chatAdapter.notifyItemRangeChanged(index + chatAdapter.messagesStartRow, newGroupsSizes.get(groupedMessages.groupId)); } } } @@ -10886,7 +11447,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not maxDate[0] = maxDate[1] = Integer.MIN_VALUE; minDate[0] = minDate[1] = 0; waitingForLoad.add(lastLoadIndex); - getMessagesController().loadMessages(dialog_id, 30, 0, 0, !cacheEndReached[0], minDate[0], classGuid, 0, 0, ChatObject.isChannel(currentChat), inScheduleMode, lastLoadIndex++); + getMessagesController().loadMessages(dialog_id, mergeDialogId, false, 30, 0, 0, !cacheEndReached[0], minDate[0], classGuid, 0, 0, ChatObject.isChannel(currentChat), inScheduleMode, lastLoadIndex++); loading = true; } else { if (botButtons != null) { @@ -10906,31 +11467,11 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } if (chatAdapter != null) { if (updated) { - int count = chatListView.getChildCount(); - int position = -1; - int bottom = 0; + int count = removedIndexes.size(); for (int a = 0; a < count; a++) { - View child = chatListView.getChildAt(a); - MessageObject messageObject = null; - if (child instanceof ChatMessageCell) { - messageObject = ((ChatMessageCell) child).getMessageObject(); - } else if (child instanceof ChatActionCell) { - messageObject = ((ChatActionCell) child).getMessageObject(); - } - if (messageObject != null) { - int idx = messages.indexOf(messageObject); - if (idx < 0) { - continue; - } - position = chatAdapter.messagesStartRow + idx; - bottom = child.getBottom(); - break; - } - } - chatAdapter.notifyDataSetChanged(); - if (position != -1) { - chatLayoutManager.scrollToPositionWithOffset(position, chatListView.getMeasuredHeight() - bottom - chatListView.getPaddingBottom()); + chatAdapter.notifyItemRemoved(removedIndexes.get(a)); } + updateVisibleRows(); } else { first_unread_id = 0; last_message_id = 0; @@ -10953,6 +11494,10 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not Integer msgId = (Integer) args[0]; MessageObject obj = messagesDict[0].get(msgId); if (obj != null) { + if (obj.shouldRemoveVideoEditedInfo) { + obj.videoEditedInfo = null; + obj.shouldRemoveVideoEditedInfo = false; + } Integer newMsgId = (Integer) args[1]; if (!newMsgId.equals(msgId) && messagesDict[0].indexOfKey(newMsgId) >= 0) { MessageObject removed = messagesDict[0].get(msgId); @@ -11483,6 +12028,19 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not chatAdapter.updateRowWithMessageObject(messageObject, true); } } + } else if (id == NotificationCenter.didVerifyMessagesStickers) { + ArrayList messages = (ArrayList) args[0]; + for (int a = 0, N = messages.size(); a < N; a++) { + TLRPC.Message message = messages.get(a); + MessageObject existMessageObject = messagesDict[0].get(message.id); + if (existMessageObject != null) { + existMessageObject.messageOwner.stickerVerified = message.stickerVerified; + existMessageObject.setType(); + if (chatAdapter != null) { + chatAdapter.updateRowWithMessageObject(existMessageObject, false); + } + } + } } else if (id == NotificationCenter.updateMessageMedia) { TLRPC.Message message = (TLRPC.Message) args[0]; MessageObject existMessageObject = messagesDict[0].get(message.id); @@ -11639,7 +12197,15 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } botInfo.put(info.user_id, info); if (chatAdapter != null) { - chatAdapter.notifyItemChanged(chatAdapter.botInfoRow); + int prevRow = chatAdapter.botInfoRow; + chatAdapter.updateRowsInternal(); + if (prevRow == -1 && chatAdapter.botInfoRow != -1) { + chatAdapter.notifyItemInserted(chatAdapter.botInfoRow); + } else if (prevRow != -1 && chatAdapter.botInfoRow == -1) { + chatAdapter.notifyItemRemoved(prevRow); + } else if (prevRow != -1 && chatAdapter.botInfoRow != -1) { + chatAdapter.notifyItemChanged(chatAdapter.botInfoRow); + } } if (mentionsAdapter != null && (!ChatObject.isChannel(currentChat) || currentChat != null && currentChat.megagroup)) { mentionsAdapter.setBotInfo(botInfo); @@ -11957,9 +12523,9 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not if (startLoadFromMessageIdSaved != 0) { startLoadFromMessageId = startLoadFromMessageIdSaved; startLoadFromMessageIdSaved = 0; - getMessagesController().loadMessages(dialog_id, AndroidUtilities.isTablet() ? 30 : 20, startLoadFromMessageId, 0, true, 0, classGuid, 3, 0, ChatObject.isChannel(currentChat), inScheduleMode, lastLoadIndex++); + getMessagesController().loadMessages(dialog_id, mergeDialogId, false, AndroidUtilities.isTablet() ? 30 : 20, startLoadFromMessageId, 0, true, 0, classGuid, 3, 0, ChatObject.isChannel(currentChat), inScheduleMode, lastLoadIndex++); } else { - getMessagesController().loadMessages(dialog_id, AndroidUtilities.isTablet() ? 30 : 20, 0, 0, true, 0, classGuid, 2, 0, ChatObject.isChannel(currentChat), inScheduleMode, lastLoadIndex++); + getMessagesController().loadMessages(dialog_id, mergeDialogId, false, AndroidUtilities.isTablet() ? 30 : 20, 0, 0, true, 0, classGuid, 2, 0, ChatObject.isChannel(currentChat), inScheduleMode, lastLoadIndex++); } } else { if (progressView != null) { @@ -12098,6 +12664,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } } if (messageObject.type >= 0) { + messageObject.stableId = old.stableId; messages.set(index, messageObject); if (chatAdapter != null) { chatAdapter.updateRowAtPosition(chatAdapter.messagesStartRow + index); @@ -12133,6 +12700,9 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not if (index >= 0) { if (chatAdapter != null) { chatAdapter.notifyItemRangeChanged(index + chatAdapter.messagesStartRow, groupedMessages.messages.size()); + if (chatListItemAniamtor != null) { + chatListItemAniamtor.groupWillChanged(groupedMessages); + } } } } @@ -12280,28 +12850,33 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not @Override public void onTransitionAnimationStart(boolean isOpen, boolean backward) { + int[] alowedNotifications = null; if (isOpen) { - getNotificationCenter().setAllowedNotificationsDutingAnimation(new int[]{NotificationCenter.chatInfoDidLoad, NotificationCenter.dialogsNeedReload, NotificationCenter.scheduledMessagesUpdated, - NotificationCenter.closeChats, NotificationCenter.messagesDidLoad, NotificationCenter.botKeyboardDidLoad, NotificationCenter.userInfoDidLoad, NotificationCenter.needDeleteDialog/*, NotificationCenter.botInfoDidLoad*/}); + alowedNotifications = new int[]{ + NotificationCenter.chatInfoDidLoad, NotificationCenter.dialogsNeedReload, NotificationCenter.scheduledMessagesUpdated, NotificationCenter.pinnedMessageDidLoad, + NotificationCenter.closeChats, NotificationCenter.messagesDidLoad, NotificationCenter.botKeyboardDidLoad, NotificationCenter.userInfoDidLoad, NotificationCenter.needDeleteDialog/*, NotificationCenter.botInfoDidLoad*/ + }; openAnimationEnded = false; if (!backward) { openAnimationStartTime = SystemClock.elapsedRealtime(); } } else { if (UserObject.isUserSelf(currentUser)) { - getNotificationCenter().setAllowedNotificationsDutingAnimation(new int[]{NotificationCenter.chatInfoDidLoad, NotificationCenter.dialogsNeedReload, NotificationCenter.scheduledMessagesUpdated, - NotificationCenter.closeChats, NotificationCenter.messagesDidLoad, NotificationCenter.botKeyboardDidLoad, NotificationCenter.userInfoDidLoad, NotificationCenter.needDeleteDialog, NotificationCenter.mediaDidLoad}); + alowedNotifications = new int[]{ + NotificationCenter.chatInfoDidLoad, NotificationCenter.dialogsNeedReload, NotificationCenter.scheduledMessagesUpdated, + NotificationCenter.closeChats, NotificationCenter.messagesDidLoad, NotificationCenter.botKeyboardDidLoad, NotificationCenter.userInfoDidLoad, NotificationCenter.needDeleteDialog, NotificationCenter.mediaDidLoad + }; } if (chatActivityEnterView != null) { chatActivityEnterView.onBeginHide(); } } - getNotificationCenter().setAnimationInProgress(true); + transitionAnimationIndex = getNotificationCenter().setAnimationInProgress(transitionAnimationIndex, alowedNotifications); } @Override public void onTransitionAnimationEnd(boolean isOpen, boolean backward) { - getNotificationCenter().setAnimationInProgress(false); + getNotificationCenter().onAnimationFinish(transitionAnimationIndex); if (isOpen) { openAnimationEnded = true; if (Build.VERSION.SDK_INT >= 21) { @@ -12465,9 +13040,9 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } } else { if (!getMessagesController().isDialogMuted(dialog_id)) { - bottomOverlayChatText.setText(LocaleController.getString("ChannelMute", R.string.ChannelMute)); + bottomOverlayChatText.setText(LocaleController.getString("ChannelMute", R.string.ChannelMute), false); } else { - bottomOverlayChatText.setText(LocaleController.getString("ChannelUnmute", R.string.ChannelUnmute)); + bottomOverlayChatText.setText(LocaleController.getString("ChannelUnmute", R.string.ChannelUnmute), true); } showBottomOverlayProgress(false, bottomOverlayProgress.getTag() != null); } @@ -13061,7 +13636,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not firstVisPos = RecyclerView.NO_POSITION; } if (firstVisPos != RecyclerView.NO_POSITION && scrollToMessageObject != null) { - chatAdapter.updateRows(); + chatAdapter.updateRowsSafe(); int index = messages.indexOf(scrollToMessageObject); if (index >= 0) { chatLayoutManager.scrollToPositionWithOffset(chatAdapter.messagesStartRow + index, top); @@ -13593,7 +14168,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not ChatMessageCell messageCell = (ChatMessageCell) child; MessageObject messageObject = messageCell.getMessageObject(); boolean isRoundVideo = messageObject.isRoundVideo(); - if (!messageObject.isVideo() && !isRoundVideo) { + if ((!messageObject.isVideo() && !isRoundVideo) || messageObject.videoEditedInfo != null) { continue; } ImageReceiver imageReceiver = messageCell.getPhotoImage(); @@ -13601,8 +14176,8 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not if (animation == null) { continue; } - int top = child.getTop() + imageReceiver.getImageY(); - int bottom = top + imageReceiver.getImageHeight(); + float top = child.getTop() + imageReceiver.getImageY(); + float bottom = top + imageReceiver.getImageHeight(); if (bottom < 0 || top > chatListView.getMeasuredHeight()) { continue; } @@ -14336,7 +14911,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } int totalHeight = contentView.getHeight(); int height = popupLayout.getMeasuredHeight(); - int keyboardHeight = contentView.getKeyboardHeight(); + int keyboardHeight = contentView.measureKeyboardHeight(); if (keyboardHeight > AndroidUtilities.dp(20)) { totalHeight += keyboardHeight; } @@ -14502,7 +15077,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not private void restartSticker(ChatMessageCell cell) { MessageObject message = cell.getMessageObject(); TLRPC.Document document = message.getDocument(); - if (message.isAnimatedEmoji() || MessageObject.isAnimatedStickerDocument(document, currentEncryptedChat == null) && !SharedConfig.loopStickers) { + if (message.isAnimatedEmoji() || MessageObject.isAnimatedStickerDocument(document, currentEncryptedChat == null || message.isOut()) && !SharedConfig.loopStickers) { ImageReceiver imageReceiver = cell.getPhotoImage(); RLottieDrawable drawable = imageReceiver.getLottieAnimation(); if (drawable != null) { @@ -15078,6 +15653,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } hideActionMode(); updatePinnedMessageView(true); + updateVisibleRows(); } if (dids.size() > 1 || dids.get(0) == getUserConfig().getClientUserId() || message != null) { @@ -15192,6 +15768,13 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not updateVisibleRows(); } + public void onListItemAniamtorTick() { + updateMessagesVisiblePart(false); + if (scrimView != null) { + fragmentView.invalidate(); + } + } + private void updateVisibleRows() { if (chatListView == null) { return; @@ -15225,7 +15808,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not if (actionBar.isActionModeShowed()) { cell.setCheckBoxVisible(true, true); int idx = messageObject.getDialogId() == dialog_id ? 0 : 1; - if (messageObject == editingMessageObject || selectedMessagesIds[idx].indexOfKey(messageObject.getId()) >= 0) { + if (selectedMessagesIds[idx].indexOfKey(messageObject.getId()) >= 0) { setCellSelectionBackground(messageObject, cell, idx, true); selected = true; } else { @@ -15239,7 +15822,9 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not cell.setChecked(false, false, true); } - cell.setMessageObject(cell.getMessageObject(), cell.getCurrentMessagesGroup(), cell.isPinnedBottom(), cell.isPinnedTop()); + if (!cell.getMessageObject().deleted) { + cell.setMessageObject(cell.getMessageObject(), cell.getCurrentMessagesGroup(), cell.isPinnedBottom(), cell.isPinnedTop()); + } if (cell != scrimView) { cell.setCheckPressed(!disableSelection, disableSelection && selected); } @@ -15257,7 +15842,6 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not cell.setMessageObject(cell.getMessageObject()); } } - chatListView.invalidate(); if (lastVisibleItem != RecyclerView.NO_POSITION) { chatLayoutManager.scrollToPositionWithOffset(lastVisibleItem, top); } @@ -15373,6 +15957,10 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not return inScheduleMode; } + public long getInlineReturn() { + return inlineReturn; + } + public TLRPC.User getCurrentUser() { return currentUser; } @@ -15465,42 +16053,6 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } } - public void showOpenUrlAlert(String url, boolean punycode, boolean ask) { - if (Browser.isInternalUrl(url, null) || !ask) { - Browser.openUrl(getParentActivity(), url, inlineReturn == 0); - } else { - if (getParentActivity() == null) { - return; - } - String urlFinal; - if (punycode) { - try { - Uri uri = Uri.parse(url); - String host = IDN.toASCII(uri.getHost(), IDN.ALLOW_UNASSIGNED); - urlFinal = uri.getScheme() + "://" + host + uri.getPath(); - } catch (Exception e) { - FileLog.e(e); - urlFinal = url; - } - } else { - urlFinal = url; - } - AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("OpenUrlTitle", R.string.OpenUrlTitle)); - String format = LocaleController.getString("OpenUrlAlert2", R.string.OpenUrlAlert2); - int index = format.indexOf("%"); - SpannableStringBuilder stringBuilder = new SpannableStringBuilder(String.format(format, urlFinal)); - if (index >= 0) { - stringBuilder.setSpan(new URLSpan(urlFinal), index, index + urlFinal.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); - } - builder.setMessage(stringBuilder); - builder.setMessageTextViewClickable(false); - builder.setPositiveButton(LocaleController.getString("Open", R.string.Open), (dialogInterface, i) -> Browser.openUrl(getParentActivity(), url, inlineReturn == 0)); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); - showDialog(builder.create()); - } - } - public void showRequestUrlAlert(final TLRPC.TL_urlAuthResultRequest request, TLRPC.TL_messages_requestUrlAuth buttonReq, String url) { if (getParentActivity() == null) { return; @@ -15638,13 +16190,6 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not messageCell.setChecked(true, groupedMessages == null, animated); } - private void setItemAnimationsEnabled(boolean enabled) { - /*if (chatListView == null) { - return; - } - chatListView.setItemAnimator(enabled ? itemAnimator : null);*/ - } - private void openClickableLink(String str) { if (str.startsWith("@")) { String username = str.substring(1).toLowerCase(); @@ -15681,7 +16226,11 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not presentFragment(fragment); } } else { - Browser.openUrl(getParentActivity(), str); + if (AndroidUtilities.shouldShowUrlInAlert(str)) { + AlertsCreator.showOpenUrlAlert(ChatActivity.this, str, true, true, true); + } else { + Browser.openUrl(getParentActivity(), str); + } } } @@ -15699,22 +16248,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } } else if (url instanceof URLSpanNoUnderline) { String str = ((URLSpanNoUnderline) url).getURL(); - if (isClickableLink(str)) { - if (longPress) { - BottomSheet.Builder builder = new BottomSheet.Builder(getParentActivity()); - builder.setTitle(str); - builder.setItems(new CharSequence[]{LocaleController.getString("Open", R.string.Open), LocaleController.getString("Copy", R.string.Copy)}, (dialog, which) -> { - if (which == 0) { - openClickableLink(str); - } else if (which == 1) { - AndroidUtilities.addToClipboard(str); - } - }); - showDialog(builder.create()); - } else { - openClickableLink(str); - } - } else if (messageObject != null && str.startsWith("/")) { + if (messageObject != null && str.startsWith("/")) { if (URLSpanBotCommand.enabled) { chatActivityEnterView.setCommand(messageObject, str, longPress, currentChat != null && currentChat.megagroup); if (!longPress && chatActivityEnterView.getFieldText() == null) { @@ -15805,6 +16339,21 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not progressDialog[0].setOnCancelListener(dialog -> getConnectionsManager().cancelRequest(requestId, true)); showDialog(progressDialog[0]); }, 500); + } else { + if (longPress) { + BottomSheet.Builder builder = new BottomSheet.Builder(getParentActivity()); + builder.setTitle(str); + builder.setItems(new CharSequence[]{LocaleController.getString("Open", R.string.Open), LocaleController.getString("Copy", R.string.Copy)}, (dialog, which) -> { + if (which == 0) { + openClickableLink(str); + } else if (which == 1) { + AndroidUtilities.addToClipboard(str); + } + }); + showDialog(builder.create()); + } else { + openClickableLink(str); + } } } else { final String urlFinal = ((URLSpan) url).getURL(); @@ -15813,7 +16362,11 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not builder.setTitle(urlFinal); builder.setItems(new CharSequence[]{LocaleController.getString("Open", R.string.Open), LocaleController.getString("Copy", R.string.Copy)}, (dialog, which) -> { if (which == 0) { - Browser.openUrl(getParentActivity(), urlFinal, inlineReturn == 0, false); + if (AndroidUtilities.shouldShowUrlInAlert(urlFinal)) { + AlertsCreator.showOpenUrlAlert(ChatActivity.this, urlFinal, true, true, false); + } else { + Browser.openUrl(getParentActivity(), urlFinal, inlineReturn == 0, false); + } } else if (which == 1) { String url1 = urlFinal; if (url1.startsWith("mailto:")) { @@ -15829,7 +16382,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not boolean punycode = false; if (url instanceof URLSpanReplacement && (urlFinal == null || !urlFinal.startsWith("mailto:")) || (punycode = AndroidUtilities.shouldShowUrlInAlert(urlFinal))) { if (!openLinkInternally(urlFinal, messageObject != null ? messageObject.getId() : 0)) { - showOpenUrlAlert(urlFinal, punycode, true); + AlertsCreator.showOpenUrlAlert(ChatActivity.this, urlFinal, punycode, true); } } else if (url instanceof URLSpan) { if (messageObject != null && messageObject.messageOwner.media instanceof TLRPC.TL_messageMediaWebPage && messageObject.messageOwner.media.webpage != null && messageObject.messageOwner.media.webpage.cached_page != null) { @@ -15938,15 +16491,31 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not private int botInfoRow = -1; private int loadingUpRow; private int loadingDownRow; - public int messagesStartRow; + private int messagesStartRow; private int messagesEndRow; public ChatActivityAdapter(Context context) { mContext = context; isBot = currentUser != null && currentUser.bot; + setHasStableIds(true); } - public void updateRows() { + public void updateRowsSafe() { + int prevRowCount = rowCount; + int prevBotInfoRow = botInfoRow; + int prevLoadingUpRow = loadingUpRow; + int prevLoadingDownRow = loadingDownRow; + int prevMessagesStartRow = messagesStartRow; + int prevMessagesEndRow = messagesEndRow; + updateRowsInternal(); + if (prevRowCount != rowCount || prevBotInfoRow != botInfoRow || + prevLoadingUpRow != loadingUpRow || prevLoadingDownRow != loadingDownRow || + prevMessagesStartRow != messagesStartRow || prevMessagesEndRow != messagesEndRow) { + notifyDataSetChanged(); + } + } + + private void updateRowsInternal() { rowCount = 0; if (!messages.isEmpty()) { if (!forwardEndReached[0] || mergeDialogId != 0 && !forwardEndReached[1]) { @@ -15958,7 +16527,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not rowCount += messages.size(); messagesEndRow = rowCount; - if (currentUser != null && currentUser.bot && !inScheduleMode) { + if (currentUser != null && currentUser.bot && !inScheduleMode && botInfo.size() > 0 && botInfo.get(currentUser.id).description != null) { botInfoRow = rowCount++; } else { botInfoRow = -1; @@ -15989,8 +16558,17 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } @Override - public long getItemId(int i) { - return RecyclerListView.NO_ID; + public long getItemId(int position) { + if (position >= messagesStartRow && position < messagesEndRow) { + return messages.get(position - messagesStartRow).stableId; + } else if (position == botInfoRow) { + return 1; + } else if (position == loadingUpRow) { + return 2; + } else if (position == loadingDownRow) { + return 3; + } + return 4; } @Override @@ -16527,6 +17105,10 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not if (chatActivityEnterView.getFieldText() == null) { hideFieldPanel(false); } + } else if (AndroidUtilities.shouldShowUrlInAlert(url)) { + AlertsCreator.showOpenUrlAlert(ChatActivity.this, url, true, true, true); + } else { + Browser.openUrl(getParentActivity(), url); } }); } else if (viewType == 4) { @@ -16627,82 +17209,88 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not int index; if ((index = animatingMessageObjects.indexOf(message)) != -1) { animatingMessageObjects.remove(index); - messageCell.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { - @Override - public boolean onPreDraw() { - PipRoundVideoView pipRoundVideoView = PipRoundVideoView.getInstance(); - if (pipRoundVideoView != null) { - pipRoundVideoView.showTemporary(true); - } + if (instantCameraView.getTextureView() != null) { + messageCell.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { + @Override + public boolean onPreDraw() { - messageCell.getViewTreeObserver().removeOnPreDrawListener(this); - ImageReceiver imageReceiver = messageCell.getPhotoImage(); - int w = imageReceiver.getImageWidth(); - org.telegram.ui.Components.Rect rect = instantCameraView.getCameraRect(); - float scale = w / rect.width; - int[] position = new int[2]; - messageCell.setAlpha(0.0f); - messageCell.setTimeAlpha(0.0f); - messageCell.getLocationOnScreen(position); - position[0] += imageReceiver.getImageX(); - position[1] += imageReceiver.getImageY(); - final View cameraContainer = instantCameraView.getCameraContainer(); - cameraContainer.setPivotX(0.0f); - cameraContainer.setPivotY(0.0f); - AnimatorSet animatorSet = new AnimatorSet(); - - instantCameraView.cancelBlur(); - - animatorSet.playTogether( - ObjectAnimator.ofFloat(cameraContainer, View.SCALE_X, scale), - ObjectAnimator.ofFloat(cameraContainer, View.SCALE_Y, scale), - ObjectAnimator.ofFloat(cameraContainer, View.TRANSLATION_X, position[0] - rect.x), - ObjectAnimator.ofFloat(cameraContainer, View.TRANSLATION_Y, position[1] - rect.y), - ObjectAnimator.ofFloat(instantCameraView.getSwitchButtonView(), View.ALPHA, 0.0f), - ObjectAnimator.ofInt(instantCameraView.getPaint(), AnimationProperties.PAINT_ALPHA, 0), - ObjectAnimator.ofFloat(instantCameraView.getMuteImageView(), View.ALPHA, 0.0f) - ); - animatorSet.setStartDelay(120); - animatorSet.setDuration(180); - animatorSet.setInterpolator(new DecelerateInterpolator()); - animatorSet.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - messageCell.setAlpha(1.0f); - - Property ALPHA = new AnimationProperties.FloatProperty("alpha") { - @Override - public void setValue(ChatMessageCell object, float value) { - object.setTimeAlpha(value); - } - - @Override - public Float get(ChatMessageCell object) { - return object.getTimeAlpha(); - } - }; - - AnimatorSet animatorSet = new AnimatorSet(); - animatorSet.playTogether( - ObjectAnimator.ofFloat(cameraContainer, View.ALPHA, 0.0f), - ObjectAnimator.ofFloat(messageCell, ALPHA, 1.0f) - ); - animatorSet.setDuration(100); - animatorSet.setInterpolator(new DecelerateInterpolator()); - animatorSet.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - instantCameraView.hideCamera(true); - instantCameraView.setVisibility(View.INVISIBLE); - } - }); - animatorSet.start(); + PipRoundVideoView pipRoundVideoView = PipRoundVideoView.getInstance(); + if (pipRoundVideoView != null) { + pipRoundVideoView.showTemporary(true); } - }); - animatorSet.start(); - return true; - } - }); + + messageCell.getViewTreeObserver().removeOnPreDrawListener(this); + ImageReceiver imageReceiver = messageCell.getPhotoImage(); + float w = imageReceiver.getImageWidth(); + org.telegram.ui.Components.Rect rect = instantCameraView.getCameraRect(); + float scale = w / rect.width; + int[] position = new int[2]; + messageCell.getTransitionParams().ignoreAlpha = true; + messageCell.setAlpha(0.0f); + messageCell.setTimeAlpha(0.0f); + messageCell.getLocationOnScreen(position); + position[0] += imageReceiver.getImageX() - messageCell.getAnimationOffsetX(); + position[1] += imageReceiver.getImageY() - messageCell.getTranslationY(); + final InstantCameraView.InstantViewCameraContainer cameraContainer = instantCameraView.getCameraContainer(); + cameraContainer.setPivotX(0.0f); + cameraContainer.setPivotY(0.0f); + AnimatorSet animatorSet = new AnimatorSet(); + + cameraContainer.setImageReceiver(imageReceiver); + + instantCameraView.cancelBlur(); + + animatorSet.playTogether( + ObjectAnimator.ofFloat(cameraContainer, View.SCALE_X, scale), + ObjectAnimator.ofFloat(cameraContainer, View.SCALE_Y, scale), + ObjectAnimator.ofFloat(cameraContainer, View.TRANSLATION_X, position[0] - rect.x), + ObjectAnimator.ofFloat(cameraContainer, View.TRANSLATION_Y, position[1] - rect.y), + ObjectAnimator.ofFloat(instantCameraView.getSwitchButtonView(), View.ALPHA, 0.0f), + ObjectAnimator.ofInt(instantCameraView.getPaint(), AnimationProperties.PAINT_ALPHA, 0), + ObjectAnimator.ofFloat(instantCameraView.getMuteImageView(), View.ALPHA, 0.0f) + ); + animatorSet.setStartDelay(120); + animatorSet.setDuration(180); + animatorSet.setInterpolator(new DecelerateInterpolator()); + animatorSet.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + messageCell.setAlpha(1.0f); + messageCell.getTransitionParams().ignoreAlpha = false; + Property ALPHA = new AnimationProperties.FloatProperty("alpha") { + @Override + public void setValue(ChatMessageCell object, float value) { + object.setTimeAlpha(value); + } + + @Override + public Float get(ChatMessageCell object) { + return object.getTimeAlpha(); + } + }; + + AnimatorSet animatorSet = new AnimatorSet(); + animatorSet.playTogether( + ObjectAnimator.ofFloat(cameraContainer, View.ALPHA, 0.0f), + ObjectAnimator.ofFloat(messageCell, ALPHA, 1.0f) + ); + animatorSet.setDuration(100); + animatorSet.setInterpolator(new DecelerateInterpolator()); + animatorSet.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + instantCameraView.hideCamera(true); + instantCameraView.setVisibility(View.INVISIBLE); + } + }); + animatorSet.start(); + } + }); + animatorSet.start(); + return true; + } + }); + } } } else if (view instanceof ChatActionCell) { ChatActionCell actionCell = (ChatActionCell) view; @@ -16742,9 +17330,8 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not boolean disableSelection = false; if (actionBar.isActionModeShowed()) { messageCell.setCheckBoxVisible(true, false); - MessageObject messageObject = chatActivityEnterView != null ? chatActivityEnterView.getEditingMessageObject() : null; int idx = message.getDialogId() == dialog_id ? 0 : 1; - if (messageObject == message || selectedMessagesIds[idx].indexOfKey(message.getId()) >= 0) { + if (selectedMessagesIds[idx].indexOfKey(message.getId()) >= 0) { setCellSelectionBackground(message, messageCell, idx, false); selected = true; } else { @@ -16872,7 +17459,11 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not @Override public void notifyDataSetChanged() { - updateRows(); + if (BuildVars.LOGS_ENABLED) { + FileLog.d("notify data set changed"); + } + chatListView.setItemAnimator(null); + updateRowsInternal(); try { super.notifyDataSetChanged(); } catch (Exception e) { @@ -16882,7 +17473,13 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not @Override public void notifyItemChanged(int position) { - updateRows(); + if (BuildVars.LOGS_ENABLED) { + FileLog.d("notify item changed " + position); + } + if (chatListView.getItemAnimator() != chatListItemAniamtor) { + chatListView.setItemAnimator(chatListItemAniamtor); + } + updateRowsInternal(); try { super.notifyItemChanged(position); } catch (Exception e) { @@ -16892,7 +17489,13 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not @Override public void notifyItemRangeChanged(int positionStart, int itemCount) { - updateRows(); + if (BuildVars.LOGS_ENABLED) { + FileLog.d("notify item range changed " + positionStart + ":" + itemCount); + } + if (chatListView.getItemAnimator() != chatListItemAniamtor) { + chatListView.setItemAnimator(chatListItemAniamtor); + } + updateRowsInternal(); try { super.notifyItemRangeChanged(positionStart, itemCount); } catch (Exception e) { @@ -16902,7 +17505,13 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not @Override public void notifyItemInserted(int position) { - updateRows(); + if (BuildVars.LOGS_ENABLED) { + FileLog.d("notify item inserted " + position); + } + if (chatListView.getItemAnimator() != chatListItemAniamtor) { + chatListView.setItemAnimator(chatListItemAniamtor); + } + updateRowsInternal(); try { super.notifyItemInserted(position); } catch (Exception e) { @@ -16912,7 +17521,13 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not @Override public void notifyItemMoved(int fromPosition, int toPosition) { - updateRows(); + if (BuildVars.LOGS_ENABLED) { + FileLog.d("notify item moved" + fromPosition + ":" + toPosition); + } + if (chatListView.getItemAnimator() != chatListItemAniamtor) { + chatListView.setItemAnimator(chatListItemAniamtor); + } + updateRowsInternal(); try { super.notifyItemMoved(fromPosition, toPosition); } catch (Exception e) { @@ -16922,7 +17537,13 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not @Override public void notifyItemRangeInserted(int positionStart, int itemCount) { - updateRows(); + if (BuildVars.LOGS_ENABLED) { + FileLog.d("notify item range inserted" + positionStart + ":" + itemCount); + } + if (chatListView.getItemAnimator() != chatListItemAniamtor) { + chatListView.setItemAnimator(chatListItemAniamtor); + } + updateRowsInternal(); if (positionStart == 1 && itemCount > 0) { int lastPosition = positionStart + itemCount; if (lastPosition >= messagesStartRow && lastPosition < messagesEndRow) { @@ -16942,7 +17563,13 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not @Override public void notifyItemRemoved(int position) { - updateRows(); + if (BuildVars.LOGS_ENABLED) { + FileLog.d("notify item removed " + position); + } + if (chatListView.getItemAnimator() != chatListItemAniamtor) { + chatListView.setItemAnimator(chatListItemAniamtor); + } + updateRowsInternal(); try { super.notifyItemRemoved(position); } catch (Exception e) { @@ -16952,7 +17579,13 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not @Override public void notifyItemRangeRemoved(int positionStart, int itemCount) { - updateRows(); + if (BuildVars.LOGS_ENABLED) { + FileLog.d("notify item range removed" + positionStart + ":" + itemCount); + } + if (chatListView.getItemAnimator() != chatListItemAniamtor) { + chatListView.setItemAnimator(chatListItemAniamtor); + } + updateRowsInternal(); try { super.notifyItemRangeRemoved(positionStart, itemCount); } catch (Exception e) { @@ -17020,24 +17653,24 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not return false; } -// @Override -// protected void onPanTranslationUpdate(int y) { -// super.onPanTranslationUpdate(y); -// if (instantCameraView != null) { -// instantCameraView.onPanTranslationUpdate(chatActivityEnterView.isPopupShowing() ? y : chatActivityEnterView.); -// } -// } - public class ChatScrollCallback extends RecyclerAnimationScrollHelper.AnimationCallback { private MessageObject scrollTo; private int lastItemOffset; private boolean lastBottom; + int animationIndex; + + @Override + public void onStartAnimation() { + super.onStartAnimation(); + animationIndex = getNotificationCenter().setAnimationInProgress(animationIndex, allowedNotificationsDuringChatListAnimations); + } + @Override public void onEndAnimation() { if (scrollTo != null) { - chatAdapter.updateRows(); + chatAdapter.updateRowsSafe(); int lastItemPosition = chatAdapter.messagesStartRow + messages.indexOf(scrollTo); if (lastItemPosition >= 0) { chatLayoutManager.scrollToPositionWithOffset(lastItemPosition, lastItemOffset, lastBottom); @@ -17046,6 +17679,9 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not scrollTo = null; checkTextureViewPosition = true; chatListView.getOnScrollListener().onScrolled(chatListView, 0, chatScrollHelper.getScrollDirection() == RecyclerAnimationScrollHelper.SCROLL_DIRECTION_DOWN ? 1 : -1); + + getNotificationCenter().onAnimationFinish(animationIndex); + updateVisibleRows(); } } @@ -17434,6 +18070,13 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not themeDescriptions.add(new ThemeDescription(chatActivityEnterView != null ? chatActivityEnterView.getEmojiView() : chatActivityEnterView, 0, new Class[]{EmojiView.class}, null, null, null, selectedBackgroundDelegate, Theme.key_chat_emojiPanelStickerSetNameHighlight)); themeDescriptions.add(new ThemeDescription(chatActivityEnterView != null ? chatActivityEnterView.getEmojiView() : chatActivityEnterView, 0, new Class[]{EmojiView.class}, null, null, null, selectedBackgroundDelegate, Theme.key_chat_emojiPanelStickerPackSelectorLine)); + if (chatActivityEnterView != null) { + final TrendingStickersAlert trendingStickersAlert = chatActivityEnterView.getTrendingStickersAlert(); + if (trendingStickersAlert != null) { + themeDescriptions.addAll(trendingStickersAlert.getThemeDescriptions()); + } + } + for (int a = 0; a < 2; a++) { UndoView v = a == 0 ? undoView : topUndoView; themeDescriptions.add(new ThemeDescription(v, ThemeDescription.FLAG_BACKGROUNDFILTER, null, null, null, null, Theme.key_undo_background)); @@ -17497,8 +18140,12 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not themeDescriptions.add(new ThemeDescription(forwardButton, ThemeDescription.FLAG_BACKGROUNDFILTER | ThemeDescription.FLAG_DRAWABLESELECTEDSTATE, null, null, null, null, Theme.key_actionBarActionModeDefaultSelector)); themeDescriptions.add(new ThemeDescription(bottomOverlayText, ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_chat_secretChatStatusText)); - themeDescriptions.add(new ThemeDescription(bottomOverlayChatText, ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_chat_fieldOverlayText)); - themeDescriptions.add(new ThemeDescription(bottomOverlayChatText2, ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_chat_fieldOverlayText)); + themeDescriptions.add(new ThemeDescription(bottomOverlayChatText, 0, null, null, null, null, Theme.key_chat_fieldOverlayText)); + themeDescriptions.add(new ThemeDescription(bottomOverlayChatText2, 0, null, null, null, null, Theme.key_chat_fieldOverlayText)); + themeDescriptions.add(new ThemeDescription(bottomOverlayChatText, 0, null, null, null, null, Theme.key_chat_goDownButtonCounterBackground)); + themeDescriptions.add(new ThemeDescription(bottomOverlayChatText2, 0, null, null, null, null, Theme.key_chat_goDownButtonCounterBackground)); + themeDescriptions.add(new ThemeDescription(bottomOverlayChatText, 0, null, null, null, null, Theme.key_chat_messagePanelBackground)); + themeDescriptions.add(new ThemeDescription(bottomOverlayChatText2, 0, null, null, null, null, Theme.key_chat_messagePanelBackground)); themeDescriptions.add(new ThemeDescription(bottomOverlayProgress, 0, null, null, null, null, Theme.key_chat_fieldOverlayText)); themeDescriptions.add(new ThemeDescription(bigEmptyView, ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_chat_serviceText)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ChatEditActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ChatEditActivity.java index cf8986230..ef4e53faf 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ChatEditActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ChatEditActivity.java @@ -244,7 +244,7 @@ public class ChatEditActivity extends BaseFragment implements ImageUpdater.Image measureChildWithMargins(actionBar, widthMeasureSpec, 0, heightMeasureSpec, 0); - int keyboardSize = SharedConfig.smoothKeyboard ? 0 : getKeyboardHeight(); + int keyboardSize = SharedConfig.smoothKeyboard ? 0 : measureKeyboardHeight(); if (keyboardSize > AndroidUtilities.dp(20)) { ignoreLayout = true; nameTextView.hideEmojiView(); @@ -277,7 +277,7 @@ public class ChatEditActivity extends BaseFragment implements ImageUpdater.Image protected void onLayout(boolean changed, int l, int t, int r, int b) { final int count = getChildCount(); - int keyboardSize = SharedConfig.smoothKeyboard ? 0 : getKeyboardHeight(); + int keyboardSize = SharedConfig.smoothKeyboard ? 0 : measureKeyboardHeight(); int paddingBottom = keyboardSize <= AndroidUtilities.dp(20) && !AndroidUtilities.isInMultiwindow && !AndroidUtilities.isTablet() ? nameTextView.getEmojiPadding() : 0; setBottomClip(paddingBottom); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ChatRightsEditActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ChatRightsEditActivity.java index a502228f9..4c4bc354c 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ChatRightsEditActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ChatRightsEditActivity.java @@ -640,7 +640,7 @@ public class ChatRightsEditActivity extends BaseFragment { } builder.setMessage(AndroidUtilities.replaceTags(LocaleController.formatString("EditAdminTransferReadyAlertText", R.string.EditAdminTransferReadyAlertText, currentChat.title, UserObject.getFirstName(currentUser)))); builder.setPositiveButton(LocaleController.getString("EditAdminTransferChangeOwner", R.string.EditAdminTransferChangeOwner), (dialogInterface, i) -> { - TwoStepVerificationActivity fragment = new TwoStepVerificationActivity(0); + TwoStepVerificationActivity fragment = new TwoStepVerificationActivity(); fragment.setDelegate(password -> initTransfer(password, fragment)); presentFragment(fragment); }); @@ -715,7 +715,7 @@ public class ChatRightsEditActivity extends BaseFragment { } if ("PASSWORD_MISSING".equals(error.text)) { - builder.setPositiveButton(LocaleController.getString("EditAdminTransferSetPassword", R.string.EditAdminTransferSetPassword), (dialogInterface, i) -> presentFragment(new TwoStepVerificationActivity(0))); + builder.setPositiveButton(LocaleController.getString("EditAdminTransferSetPassword", R.string.EditAdminTransferSetPassword), (dialogInterface, i) -> presentFragment(new TwoStepVerificationSetupActivity(TwoStepVerificationSetupActivity.TYPE_INTRO, null))); builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); } else { messageTextView = new TextView(getParentActivity()); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/AlertsCreator.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/AlertsCreator.java index 46156d45d..5ecfb8c0f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/AlertsCreator.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/AlertsCreator.java @@ -17,6 +17,7 @@ import android.graphics.Color; import android.graphics.PorterDuff; import android.graphics.PorterDuffColorFilter; import android.graphics.drawable.Drawable; +import android.net.Uri; import android.os.Bundle; import android.os.Vibrator; import android.text.Html; @@ -82,6 +83,7 @@ import org.telegram.ui.ReportOtherActivity; import org.telegram.ui.ThemePreviewActivity; import org.telegram.ui.TooManyCommunitiesActivity; +import java.net.IDN; import java.util.ArrayList; import java.util.Arrays; import java.util.Calendar; @@ -449,7 +451,7 @@ public class AlertsCreator { } public static AlertDialog.Builder createSimpleAlert(Context context, final String title, final String text) { - if (text == null) { + if (context == null || text == null) { return null; } AlertDialog.Builder builder = new AlertDialog.Builder(context); @@ -804,6 +806,47 @@ public class AlertsCreator { } } + public static void showOpenUrlAlert(BaseFragment fragment, String url, boolean punycode, boolean ask) { + showOpenUrlAlert(fragment, url, punycode, true, ask); + } + + public static void showOpenUrlAlert(BaseFragment fragment, String url, boolean punycode, boolean tryTelegraph, boolean ask) { + if (fragment == null || fragment.getParentActivity() == null) { + return; + } + long inlineReturn = (fragment instanceof ChatActivity) ? ((ChatActivity) fragment).getInlineReturn() : 0; + if (Browser.isInternalUrl(url, null) || !ask) { + Browser.openUrl(fragment.getParentActivity(), url, inlineReturn == 0, tryTelegraph); + } else { + String urlFinal; + if (punycode) { + try { + Uri uri = Uri.parse(url); + String host = IDN.toASCII(uri.getHost(), IDN.ALLOW_UNASSIGNED); + urlFinal = uri.getScheme() + "://" + host + uri.getPath(); + } catch (Exception e) { + FileLog.e(e); + urlFinal = url; + } + } else { + urlFinal = url; + } + AlertDialog.Builder builder = new AlertDialog.Builder(fragment.getParentActivity()); + builder.setTitle(LocaleController.getString("OpenUrlTitle", R.string.OpenUrlTitle)); + String format = LocaleController.getString("OpenUrlAlert2", R.string.OpenUrlAlert2); + int index = format.indexOf("%"); + SpannableStringBuilder stringBuilder = new SpannableStringBuilder(String.format(format, urlFinal)); + if (index >= 0) { + stringBuilder.setSpan(new URLSpan(urlFinal), index, index + urlFinal.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + } + builder.setMessage(stringBuilder); + builder.setMessageTextViewClickable(false); + builder.setPositiveButton(LocaleController.getString("Open", R.string.Open), (dialogInterface, i) -> Browser.openUrl(fragment.getParentActivity(), url, inlineReturn == 0, tryTelegraph)); + builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + fragment.showDialog(builder.create()); + } + } + public static AlertDialog createSupportAlert(BaseFragment fragment) { if (fragment == null || fragment.getParentActivity() == null) { return null; @@ -1044,7 +1087,11 @@ public class AlertsCreator { } if (second) { - messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString("DeleteAllMessagesAlert", R.string.DeleteAllMessagesAlert))); + if (UserObject.isUserSelf(user)) { + messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString("DeleteAllMessagesSavedAlert", R.string.DeleteAllMessagesSavedAlert))); + } else { + messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString("DeleteAllMessagesAlert", R.string.DeleteAllMessagesAlert))); + } } else { if (clear) { if (user != null) { @@ -1085,7 +1132,7 @@ public class AlertsCreator { if (user.id == selfUserId) { messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString("AreYouSureDeleteThisChatSavedMessages", R.string.AreYouSureDeleteThisChatSavedMessages))); } else { - if (user.bot) { + if (user.bot && !user.support) { messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.formatString("AreYouSureDeleteThisChatWithBot", R.string.AreYouSureDeleteThisChatWithBot, UserObject.getUserName(user)))); } else { messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.formatString("AreYouSureDeleteThisChatWithUser", R.string.AreYouSureDeleteThisChatWithUser, UserObject.getUserName(user)))); @@ -1140,17 +1187,22 @@ public class AlertsCreator { } } builder.setPositiveButton(actionText, (dialogInterface, i) -> { - if (user != null && !clearingCache && !second && deleteForAll[0]) { - MessagesStorage.getInstance(fragment.getCurrentAccount()).getMessagesCount(user.id, (count) -> { - if (count >= 50) { - createClearOrDeleteDialogAlert(fragment, clear, admin, true, chat, user, secret, onProcessRunnable); - } else { - if (onProcessRunnable != null) { - onProcessRunnable.run(deleteForAll[0]); + if (!clearingCache && !second) { + if (UserObject.isUserSelf(user)) { + createClearOrDeleteDialogAlert(fragment, clear, admin, true, chat, user, secret, onProcessRunnable); + return; + } else if (user != null && deleteForAll[0]) { + MessagesStorage.getInstance(fragment.getCurrentAccount()).getMessagesCount(user.id, (count) -> { + if (count >= 50) { + createClearOrDeleteDialogAlert(fragment, clear, admin, true, chat, user, secret, onProcessRunnable); + } else { + if (onProcessRunnable != null) { + onProcessRunnable.run(deleteForAll[0]); + } } - } - }); - return; + }); + return; + } } if (onProcessRunnable != null) { onProcessRunnable.run(second || deleteForAll[0]); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/AnimatedFileDrawable.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/AnimatedFileDrawable.java index 94c140577..c23a26164 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/AnimatedFileDrawable.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/AnimatedFileDrawable.java @@ -42,7 +42,7 @@ public class AnimatedFileDrawable extends BitmapDrawable implements Animatable { private static native long createDecoder(String src, int[] params, int account, long streamFileSize, Object readCallback, boolean preview); private static native void destroyDecoder(long ptr); private static native void stopDecoder(long ptr); - private static native int getVideoFrame(long ptr, Bitmap bitmap, int[] params, int stride, boolean preview); + private static native int getVideoFrame(long ptr, Bitmap bitmap, int[] params, int stride, boolean preview, float startTimeSeconds, float endTimeSeconds); private static native void seekToMs(long ptr, long ms, boolean precise); private static native void prepareToSeek(long ptr); private static native void getVideoInfo(int sdkVersion, String src, int[] params); @@ -108,6 +108,9 @@ public class AnimatedFileDrawable extends BitmapDrawable implements Animatable { private volatile boolean isRecycled; public volatile long nativePtr; private DispatchQueue decodeQueue; + private float startTime; + private float endTime; + private View parentView; private View secondParentView; @@ -115,6 +118,7 @@ public class AnimatedFileDrawable extends BitmapDrawable implements Animatable { private AnimatedFileDrawableStream stream; private boolean useSharedQueue; + private boolean invalidatePath = true; private static ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(2, new ThreadPoolExecutor.DiscardPolicy()); @@ -189,7 +193,7 @@ public class AnimatedFileDrawable extends BitmapDrawable implements Animatable { nextRenderingBitmapTime = backgroundBitmapTime; nextRenderingShader = backgroundShader; if (metaData[3] < lastTimeStamp) { - lastTimeStamp = 0; + lastTimeStamp = startTime > 0 ? (int) (startTime * 1000) : 0; } if (metaData[3] - lastTimeStamp != 0) { invalidateAfter = metaData[3] - lastTimeStamp; @@ -247,7 +251,7 @@ public class AnimatedFileDrawable extends BitmapDrawable implements Animatable { } if (backgroundBitmap != null) { lastFrameDecodeTime = System.currentTimeMillis(); - if (getVideoFrame(nativePtr, backgroundBitmap, metaData, backgroundBitmap.getRowBytes(), false) == 0) { + if (getVideoFrame(nativePtr, backgroundBitmap, metaData, backgroundBitmap.getRowBytes(), false, startTime, endTime) == 0) { AndroidUtilities.runOnUIThread(uiRunnableNoFrame); return; } @@ -306,7 +310,7 @@ public class AnimatedFileDrawable extends BitmapDrawable implements Animatable { if (backgroundBitmap == null) { backgroundBitmap = Bitmap.createBitmap(metaData[0], metaData[1], Bitmap.Config.ARGB_8888); } - int result = getVideoFrame(nativePtr, backgroundBitmap, metaData, backgroundBitmap.getRowBytes(), true); + int result = getVideoFrame(nativePtr, backgroundBitmap, metaData, backgroundBitmap.getRowBytes(), true, 0, 0); return result != 0 ? backgroundBitmap : null; } @@ -571,13 +575,16 @@ public class AnimatedFileDrawable extends BitmapDrawable implements Animatable { shaderMatrix.preScale(scaleX, scaleY); renderingShader.setLocalMatrix(shaderMatrix); - for (int a = 0; a < roundRadius.length; a++) { - radii[a * 2] = roundRadius[a]; - radii[a * 2 + 1] = roundRadius[a]; + if (invalidatePath) { + invalidatePath = false; + for (int a = 0; a < roundRadius.length; a++) { + radii[a * 2] = roundRadius[a]; + radii[a * 2 + 1] = roundRadius[a]; + } + roundPath.reset(); + roundPath.addRoundRect(actualDrawRect, radii, Path.Direction.CW); + roundPath.close(); } - roundPath.reset(); - roundPath.addRoundRect(actualDrawRect, radii, Path.Direction.CW); - roundPath.close(); canvas.drawPath(roundPath, paint); } else { canvas.translate(dstRect.left, dstRect.top); @@ -642,7 +649,12 @@ public class AnimatedFileDrawable extends BitmapDrawable implements Animatable { } public void setActualDrawRect(float x, float y, float width, float height) { - actualDrawRect.set(x, y, x + width, y + height); + float bottom = y + height; + float right = x + width; + if (actualDrawRect.left != x || actualDrawRect.top != y || actualDrawRect.right != right || actualDrawRect.bottom != bottom) { + actualDrawRect.set(x, y, right, bottom); + invalidatePath = true; + } } public void setRoundRadius(int[] value) { @@ -652,8 +664,13 @@ public class AnimatedFileDrawable extends BitmapDrawable implements Animatable { } System.arraycopy(roundRadius, 0, roundRadiusBackup, 0, roundRadiusBackup.length); } - System.arraycopy(value, 0, roundRadius, 0, roundRadius.length); + boolean changed = false; + for (int i = 0; i < 4; i++) { + changed = value[i] != roundRadius[i]; + roundRadius[i] = value[i]; + } getPaint().setFlags(Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG); + invalidatePath = changed; } private boolean hasRoundRadius() { @@ -688,4 +705,16 @@ public class AnimatedFileDrawable extends BitmapDrawable implements Animatable { public static void getVideoInfo(String src, int[] params) { getVideoInfo(Build.VERSION.SDK_INT, src, params); } + + public void setStartEndTime(long startTime, long endTime) { + this.startTime = startTime / 1000f; + this.endTime = endTime / 1000f; + if (getCurrentProgressMs() < startTime) { + seekTo(startTime, true); + } + } + + public long getStartTime() { + return (long) (startTime * 1000); + } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/AudioVisualizerDrawable.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/AudioVisualizerDrawable.java new file mode 100644 index 000000000..3cd542687 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/AudioVisualizerDrawable.java @@ -0,0 +1,194 @@ +package org.telegram.ui.Components; + +import android.graphics.Canvas; +import android.graphics.Paint; +import android.view.View; + +import org.telegram.messenger.AndroidUtilities; +import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.Cells.ChatMessageCell; + +import java.util.Random; + +public class AudioVisualizerDrawable { + + private final CircleBezierDrawable[] drawables; + + private final int[] tmpWaveform = new int[3]; + private final float[] animateTo = new float[8]; + private final float[] current = new float[8]; + private final float[] dt = new float[8]; + + private float idleScale; + private boolean idleScaleInc; + + private final Paint p1; + + private View parentView; + private final Random random = new Random(); + + public float IDLE_RADIUS = AndroidUtilities.dp(6) * 0.33f; + public float WAVE_RADIUS = AndroidUtilities.dp(12) * 0.36f; + public float ANIMATION_DURATION = 120; + public int ALPHA = 61; + + + public AudioVisualizerDrawable() { + drawables = new CircleBezierDrawable[2]; + for (int i = 0; i < 2; i++) { + CircleBezierDrawable drawable = drawables[i] = new CircleBezierDrawable(6); + drawable.idleStateDiff = 0; + drawable.radius = AndroidUtilities.dp(24); + drawable.radiusDiff = 0; + drawable.randomK = 1f; + } + p1 = new Paint(Paint.ANTI_ALIAS_FLAG); + } + + final int MAX_SAMPLE_SUM = 6; + private float[] lastAmplitude = new float[MAX_SAMPLE_SUM]; + private int lastAmplitudeCount; + private int lastAmplitudePointer; + + + public void setWaveform(boolean playing, boolean animate, float[] waveform) { + if (!playing && !animate) { + for (int i = 0; i < 8; i++) { + animateTo[i] = current[i] = 0; + } + return; + } + + boolean idleState = waveform != null && waveform[6] == 0; + float amplitude = waveform == null ? 0 : waveform[6]; + + if (waveform != null && amplitude > 0.4) { + lastAmplitude[lastAmplitudePointer] = amplitude; + lastAmplitudePointer++; + if (lastAmplitudePointer > MAX_SAMPLE_SUM - 1) { + lastAmplitudePointer = 0; + } + lastAmplitudeCount++; + } else { + lastAmplitudeCount = 0; + } + + if (idleState) { + for (int i = 0; i < 6; i++) { + waveform[i] = ((random.nextInt() % 500) / 1000f); + } + } + float duration = idleState ? ANIMATION_DURATION * 2 : ANIMATION_DURATION; + if (lastAmplitudeCount > MAX_SAMPLE_SUM) { + float a = 0; + for (int i = 0; i < MAX_SAMPLE_SUM; i++) { + a += lastAmplitude[i]; + } + a /= (float) MAX_SAMPLE_SUM; + if (a > 0.52f) { + duration -= ANIMATION_DURATION * (a - 0.40f); + } + } + for (int i = 0; i < 7; i++) { + if (waveform == null) { + animateTo[i] = 0; + } else { + animateTo[i] = waveform[i]; + } + if (parentView == null) { + current[i] = animateTo[i]; + } else if (i == 6) { + dt[i] = (animateTo[i] - current[i]) / (ANIMATION_DURATION + 80); + } else { + dt[i] = (animateTo[i] - current[i]) / duration; + } + } + + animateTo[7] = playing ? 1f : 0f; + dt[7] = (animateTo[7] - current[7]) / 120; + } + + float rotation; + + public void draw(Canvas canvas, float cx, float cy, boolean outOwner) { + if (outOwner) { + p1.setColor(Theme.getColor(Theme.key_chat_outLoader)); + p1.setAlpha(ALPHA); + } else { + p1.setColor(Theme.getColor(Theme.key_chat_inLoader)); + p1.setAlpha(ALPHA); + } + for (int i = 0; i < 8; i++) { + if (animateTo[i] != current[i]) { + current[i] += dt[i] * 16; + if ((dt[i] > 0 && current[i] > animateTo[i]) || (dt[i] < 0 && current[i] < animateTo[i])) { + current[i] = animateTo[i]; + } + parentView.invalidate(); + } + } + + if (idleScaleInc) { + idleScale += 0.02f; + if (idleScale > 1f) { + idleScaleInc = false; + idleScale = 1f; + } + } else { + idleScale -= 0.02f; + if (idleScale < 0) { + idleScaleInc = true; + idleScale = 0; + } + } + + float enterProgress = current[7]; + float radiusProgress = current[6] * current[0]; + // float idleProgress = radiusProgress > 0.4f ? 0 : (1f - radiusProgress / 0.4f); + + for (int i = 0; i < 3; i++) { + tmpWaveform[i] = (int) (current[i] * WAVE_RADIUS); + } + + //drawables[0].idleStateDiff = enterProgress * idleProgress * IDLE_AMPLITUDE; + //drawables[1].idleStateDiff = enterProgress * idleProgress * IDLE_AMPLITUDE; + + drawables[0].setAdditionals(tmpWaveform); + + for (int i = 0; i < 3; i++) { + tmpWaveform[i] = (int) (current[i + 3] * WAVE_RADIUS); + } + drawables[1].setAdditionals(tmpWaveform); + float radius = AndroidUtilities.dp(22) + + AndroidUtilities.dp(4) * radiusProgress + + IDLE_RADIUS * enterProgress; + + if (radius > AndroidUtilities.dp(26)) { + radius = AndroidUtilities.dp(26); + } + drawables[0].radius = drawables[1].radius = radius; + + canvas.save(); + rotation += 0.6; + canvas.rotate(rotation, cx, cy); + canvas.save(); + float s = 1f + 0.04f * idleScale; + canvas.scale(s, s, cx, cy); + drawables[0].draw(cx, cy, canvas, p1); + canvas.restore(); + + canvas.rotate(60, cx, cy); + s = 1f + 0.04f * (1f - idleScale); + canvas.scale(s, s, cx, cy); + drawables[1].draw(cx, cy, canvas, p1); + canvas.restore(); + } + + public void setParentView(ChatMessageCell parentView) { + this.parentView = parentView; + } + + public View getParentView() { + return parentView; + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/BiometricPromtHelper.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/BiometricPromtHelper.java deleted file mode 100644 index 39d733362..000000000 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/BiometricPromtHelper.java +++ /dev/null @@ -1,427 +0,0 @@ -package org.telegram.ui.Components; - -import android.app.Activity; -import android.app.KeyguardManager; -import android.content.Context; -import android.content.Intent; -import android.content.pm.PackageManager; -import android.graphics.drawable.AnimatedVectorDrawable; -import android.graphics.drawable.Drawable; -import android.hardware.biometrics.BiometricManager; -import android.hardware.biometrics.BiometricPrompt; -import android.hardware.fingerprint.FingerprintManager; -import android.os.Build; -import android.os.CancellationSignal; -import android.provider.Settings; -import android.util.TypedValue; -import android.view.Gravity; -import android.view.View; -import android.widget.Button; -import android.widget.ImageView; -import android.widget.LinearLayout; -import android.widget.TextView; - -import org.telegram.messenger.AndroidUtilities; -import org.telegram.messenger.ApplicationLoader; -import org.telegram.messenger.FileLog; -import org.telegram.messenger.LocaleController; -import org.telegram.messenger.R; -import org.telegram.ui.ActionBar.AlertDialog; -import org.telegram.ui.ActionBar.BaseFragment; -import org.telegram.ui.ActionBar.BottomSheet; -import org.telegram.ui.ActionBar.Theme; - -import javax.crypto.Cipher; - -public class BiometricPromtHelper { - - private BaseFragment parentFragment; - private CancellationSignal cancellationSignal; - private BottomSheet bottomSheet; - private ImageView iconImageView; - private Button negativeButton; - private TextView errorTextView; - - private int currentState; - - private static final int STATE_IDLE = 0; - private static final int STATE_AUTHENTICATING = 1; - private static final int STATE_ERROR = 2; - private static final int STATE_PENDING_CONFIRMATION = 3; - private static final int STATE_AUTHENTICATED = 4; - - private Runnable resetRunnable = this::handleResetMessage; - - public interface ContinueCallback { - void run(boolean useBiometric); - } - - public interface CipherCallback { - void run(Cipher cipher); - } - - public BiometricPromtHelper(BaseFragment fragment) { - parentFragment = fragment; - } - - public void promtWithCipher(Cipher cipher, String text, CipherCallback callback) { - promtWithCipher(cipher, text, callback, shouldUseFingerprintForCrypto()); - } - - private void promtWithCipher(Cipher cipher, String text, CipherCallback callback, boolean forceFingerprint) { - if (cipher == null || callback == null || parentFragment == null || parentFragment.getParentActivity() == null) { - return; - } - Activity activity = parentFragment.getParentActivity(); - if (Build.VERSION.SDK_INT >= 28 && !forceFingerprint) { - cancellationSignal = new CancellationSignal(); - BiometricPrompt.Builder builder = new BiometricPrompt.Builder(activity); - builder.setTitle(LocaleController.getString("Wallet", R.string.Wallet)); - builder.setDescription(text); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), activity.getMainExecutor(), (dialog, which) -> { - }); - builder.build().authenticate(new BiometricPrompt.CryptoObject(cipher), cancellationSignal, activity.getMainExecutor(), new BiometricPrompt.AuthenticationCallback() { - @Override - public void onAuthenticationError(int errorCode, CharSequence errString) { - if (errorCode == BiometricPrompt.BIOMETRIC_ERROR_LOCKOUT) { - AlertsCreator.showSimpleAlert(parentFragment, LocaleController.getString("Wallet", R.string.Wallet), LocaleController.getString("WalletBiometricTooManyAttempts", R.string.WalletBiometricTooManyAttempts)); - } else if (errorCode == BiometricPrompt.BIOMETRIC_ERROR_NO_BIOMETRICS) { - promtWithCipher(cipher, text, callback, true); - } - } - - @Override - public void onAuthenticationHelp(int helpCode, CharSequence helpString) { - - } - - @Override - public void onAuthenticationSucceeded(BiometricPrompt.AuthenticationResult result) { - callback.run(result.getCryptoObject().getCipher()); - } - - @Override - public void onAuthenticationFailed() { - - } - }); - } else if (Build.VERSION.SDK_INT >= 23) { - cancellationSignal = new CancellationSignal(); - - Context context = parentFragment.getParentActivity(); - BottomSheet.Builder builder = new BottomSheet.Builder(context); - builder.setUseFullWidth(false); - builder.setApplyTopPadding(false); - builder.setApplyBottomPadding(false); - - LinearLayout linearLayout = new LinearLayout(context); - linearLayout.setOrientation(LinearLayout.VERTICAL); - linearLayout.setLayoutParams(LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.LEFT, 0, 4, 4, 4)); - builder.setCustomView(linearLayout); - - TextView titleTextView = new TextView(context); - titleTextView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); - titleTextView.setGravity(Gravity.CENTER_HORIZONTAL); - titleTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); - titleTextView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack)); - titleTextView.setText(LocaleController.getString("Wallet", R.string.Wallet)); - linearLayout.addView(titleTextView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 24, 24, 24, 0)); - - TextView descriptionTextView = new TextView(context); - descriptionTextView.setGravity(Gravity.CENTER_HORIZONTAL); - descriptionTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); - descriptionTextView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack)); - descriptionTextView.setText(text); - descriptionTextView.setPadding(0, AndroidUtilities.dp(8), 0, 0); - linearLayout.addView(descriptionTextView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 24, 0, 24, 0)); - - iconImageView = new ImageView(context); - iconImageView.setScaleType(ImageView.ScaleType.FIT_XY); - linearLayout.addView(iconImageView, LayoutHelper.createLinear(64, 64, Gravity.CENTER_HORIZONTAL, 0, 48, 0, 0)); - - errorTextView = new TextView(context); - errorTextView.setGravity(Gravity.CENTER_HORIZONTAL); - errorTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 12); - errorTextView.setTextColor(Theme.getColor(Theme.key_dialogTextGray2)); - errorTextView.setText(LocaleController.getString("Wallet", R.string.Wallet)); - errorTextView.setPadding(0, AndroidUtilities.dp(16), 0, AndroidUtilities.dp(24)); - linearLayout.addView(errorTextView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 24, 0, 24, 0)); - - negativeButton = new Button(context); - negativeButton.setGravity(Gravity.CENTER); - negativeButton.setTextColor(Theme.getColor(Theme.key_dialogButton)); - negativeButton.setText(LocaleController.getString("Cancel", R.string.Cancel)); - negativeButton.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); - negativeButton.setSingleLine(true); - negativeButton.setPadding(AndroidUtilities.dp(10), 0, AndroidUtilities.dp(10), 0); - negativeButton.setBackgroundDrawable(Theme.getRoundRectSelectorDrawable(Theme.getColor(Theme.key_dialogButton))); - linearLayout.addView(negativeButton, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, 36, 14, 42, 0, 14)); - negativeButton.setOnClickListener(v -> builder.getDismissRunnable().run()); - - parentFragment.showDialog(bottomSheet = builder.create(), dialog -> { - if (cancellationSignal != null) { - cancellationSignal.cancel(); - cancellationSignal = null; - } - bottomSheet = null; - }); - - FingerprintManager fingerprintManager = getFingerprintManagerOrNull(); - if (fingerprintManager != null) { - fingerprintManager.authenticate(new FingerprintManager.CryptoObject(cipher), cancellationSignal, 0, new FingerprintManager.AuthenticationCallback() { - @Override - public void onAuthenticationError(int errorCode, CharSequence errString) { - if (errorCode == FingerprintManager.FINGERPRINT_ERROR_USER_CANCELED) { - bottomSheet.dismiss(); - } else { - updateState(STATE_ERROR); - showTemporaryMessage(errString); - } - } - - @Override - public void onAuthenticationHelp(int helpCode, CharSequence helpString) { - updateState(STATE_ERROR); - showTemporaryMessage(helpString); - } - - @Override - public void onAuthenticationSucceeded(FingerprintManager.AuthenticationResult result) { - builder.getDismissRunnable().run(); - callback.run(result.getCryptoObject().getCipher()); - } - - @Override - public void onAuthenticationFailed() { - updateState(STATE_ERROR); - showTemporaryMessage(LocaleController.getString("WalletTouchFingerprintNotRecognized", R.string.WalletTouchFingerprintNotRecognized)); - } - }, null); - } - - updateState(STATE_AUTHENTICATING); - errorTextView.setText(LocaleController.getString("WalletTouchFingerprint", R.string.WalletTouchFingerprint)); - errorTextView.setVisibility(View.VISIBLE); - } - } - - private void updateState(int newState) { - if (newState == STATE_PENDING_CONFIRMATION) { - AndroidUtilities.cancelRunOnUIThread(resetRunnable); - errorTextView.setVisibility(View.INVISIBLE); - } else if (newState == STATE_AUTHENTICATED) { - negativeButton.setVisibility(View.GONE); - errorTextView.setVisibility(View.INVISIBLE); - } - - updateIcon(currentState, newState); - currentState = newState; - } - - private void showTemporaryMessage(CharSequence message) { - AndroidUtilities.cancelRunOnUIThread(resetRunnable); - errorTextView.setText(message); - errorTextView.setTextColor(Theme.getColor(Theme.key_dialogTextRed2)); - errorTextView.setContentDescription(message); - AndroidUtilities.runOnUIThread(resetRunnable, 2000); - } - - private void handleResetMessage() { - if (errorTextView == null) { - return; - } - updateState(STATE_AUTHENTICATING); - errorTextView.setText(LocaleController.getString("WalletTouchFingerprint", R.string.WalletTouchFingerprint)); - errorTextView.setTextColor(Theme.getColor(Theme.key_dialogButton)); - } - - private void updateIcon(int lastState, int newState) { - if (Build.VERSION.SDK_INT < 21) { - return; - } - final Drawable icon = getAnimationForTransition(lastState, newState); - if (icon == null) { - return; - } - - final AnimatedVectorDrawable animation = icon instanceof AnimatedVectorDrawable ? (AnimatedVectorDrawable) icon : null; - - iconImageView.setImageDrawable(icon); - - if (animation != null && shouldAnimateForTransition(lastState, newState)) { - animation.start(); - } - } - - private boolean shouldAnimateForTransition(int oldState, int newState) { - if (newState == STATE_ERROR) { - return true; - } else if (oldState == STATE_ERROR && newState == STATE_AUTHENTICATING) { - return true; - } else if (oldState == STATE_AUTHENTICATING && newState == STATE_AUTHENTICATED) { - return false; - } else if (oldState == STATE_ERROR && newState == STATE_AUTHENTICATED) { - return false; - } else if (newState == STATE_AUTHENTICATING) { - return false; - } - return false; - } - - private Drawable getAnimationForTransition(int oldState, int newState) { - if (parentFragment == null || parentFragment.getParentActivity() == null || Build.VERSION.SDK_INT < 21) { - return null; - } - int iconRes; - if (newState == STATE_ERROR) { - iconRes = R.drawable.fingerprint_dialog_fp_to_error; - } else if (oldState == STATE_ERROR && newState == STATE_AUTHENTICATING) { - iconRes = R.drawable.fingerprint_dialog_error_to_fp; - } else if (oldState == STATE_AUTHENTICATING && newState == STATE_AUTHENTICATED) { - iconRes = R.drawable.fingerprint_dialog_fp_to_error; - } else if (oldState == STATE_ERROR && newState == STATE_AUTHENTICATED) { - iconRes = R.drawable.fingerprint_dialog_fp_to_error; - } else if (newState == STATE_AUTHENTICATING) { - iconRes = R.drawable.fingerprint_dialog_fp_to_error; - } else { - return null; - } - return parentFragment.getParentActivity().getDrawable(iconRes); - } - - public void onPause() { - if (bottomSheet != null) { - bottomSheet.dismiss(); - bottomSheet = null; - } - if (cancellationSignal != null) { - cancellationSignal.cancel(); - cancellationSignal = null; - } - } - - public void cancelPromt() { - cancellationSignal.cancel(); - cancellationSignal = null; - } - - private static FingerprintManager getFingerprintManagerOrNull() { - if (Build.VERSION.SDK_INT == 23) { - return ApplicationLoader.applicationContext.getSystemService(FingerprintManager.class); - } else if (Build.VERSION.SDK_INT > 23 && ApplicationLoader.applicationContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_FINGERPRINT)) { - return ApplicationLoader.applicationContext.getSystemService(FingerprintManager.class); - } else { - return null; - } - } - - public static boolean hasBiometricEnrolled() { - if (Build.VERSION.SDK_INT >= 29 && !shouldUseFingerprintForCrypto()) { - BiometricManager biometricManager = ApplicationLoader.applicationContext.getSystemService(android.hardware.biometrics.BiometricManager.class); - return biometricManager.canAuthenticate() == BiometricManager.BIOMETRIC_SUCCESS; - } else if (Build.VERSION.SDK_INT >= 23) { - FingerprintManager fingerprintManager = getFingerprintManagerOrNull(); - return fingerprintManager != null && fingerprintManager.isHardwareDetected() && fingerprintManager.hasEnrolledFingerprints(); - } - return false; - } - - public static boolean canAddBiometric() { - if (Build.VERSION.SDK_INT >= 29 && !shouldUseFingerprintForCrypto()) { - BiometricManager biometricManager = ApplicationLoader.applicationContext.getSystemService(android.hardware.biometrics.BiometricManager.class); - return biometricManager.canAuthenticate() != BiometricManager.BIOMETRIC_ERROR_HW_UNAVAILABLE; - } - return hasFingerprintHardware(); - } - - public static boolean hasFingerprintHardware() { - if (Build.VERSION.SDK_INT >= 23) { - FingerprintManager fingerprintManager = getFingerprintManagerOrNull(); - return fingerprintManager != null && fingerprintManager.isHardwareDetected(); - } - return false; - } - - public static boolean hasLockscreenProtected() { - if (Build.VERSION.SDK_INT >= 23) { - KeyguardManager keyguardManager = (KeyguardManager) ApplicationLoader.applicationContext.getSystemService(Context.KEYGUARD_SERVICE); - return keyguardManager.isDeviceSecure(); - } - return false; - } - - public static void askForBiometric(BaseFragment fragment, ContinueCallback callback, String continueButton) { - if (fragment == null || fragment.getParentActivity() == null || callback == null) { - return; - } - boolean hasBiometric = hasBiometricEnrolled(); - if (hasBiometric || Build.VERSION.SDK_INT < 23 || hasLockscreenProtected() && !hasFingerprintHardware()) { - callback.run(hasBiometric); - } else { - AlertDialog.Builder builder = new AlertDialog.Builder(fragment.getParentActivity()); - builder.setTitle(LocaleController.getString("WalletSecurityAlertTitle", R.string.WalletSecurityAlertTitle)); - boolean biometricOnly; - if (hasLockscreenProtected()) { - builder.setMessage(LocaleController.getString("WalletSecurityAlertTextBiometric", R.string.WalletSecurityAlertTextBiometric)); - biometricOnly = true; - } else if (hasFingerprintHardware()) { - builder.setMessage(LocaleController.getString("WalletSecurityAlertTextLockscreenBiometric", R.string.WalletSecurityAlertTextLockscreenBiometric)); - biometricOnly = false; - } else { - builder.setMessage(LocaleController.getString("WalletSecurityAlertTextLockscreen", R.string.WalletSecurityAlertTextLockscreen)); - biometricOnly = false; - } - builder.setPositiveButton(LocaleController.getString("WalletSecurityAlertSetup", R.string.WalletSecurityAlertSetup), (dialog, which) -> { - try { - if (biometricOnly && Build.VERSION.SDK_INT >= 28) { - fragment.getParentActivity().startActivity(new Intent(Settings.ACTION_FINGERPRINT_ENROLL)); - } else { - fragment.getParentActivity().startActivity(new Intent(Settings.ACTION_SECURITY_SETTINGS)); - } - } catch (Exception e) { - FileLog.e(e); - } - }); - builder.setNegativeButton(continueButton, (dialog, which) -> callback.run(false)); - fragment.showDialog(builder.create()); - } - } - - final static String[] badBiometricModels = new String[]{ - "SM-G95", - "SM-G96", - "SM-G97", - "SM-N95", - "SM-N96", - "SM-N97", - "SM-A20" - }; - - final static String[] hideBiometricModels = new String[]{ - "SM-G97", - "SM-N97" - }; - - private static boolean shouldHideBiometric() { - return isModelInList(Build.MODEL, hideBiometricModels); - } - - private static boolean shouldUseFingerprintForCrypto() { - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.P || Build.VERSION.SDK_INT > Build.VERSION_CODES.Q) { - return false; - } - return isModelInList(Build.MODEL, badBiometricModels); - } - - private static boolean isModelInList(String deviceModel, String[] list) { - if (deviceModel == null) { - return false; - } - for (int a = 0; a < list.length; a++) { - if (deviceModel.startsWith(list[a])) { - return true; - } - } - return false; - } -} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/BlurBehindDrawable.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/BlurBehindDrawable.java index 4bdb728af..3f5d61bc7 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/BlurBehindDrawable.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/BlurBehindDrawable.java @@ -12,7 +12,6 @@ import org.telegram.messenger.AndroidUtilities; import org.telegram.messenger.DispatchQueue; import org.telegram.messenger.FileLog; import org.telegram.messenger.Utilities; -import org.telegram.ui.ActionBar.BackDrawable; import org.telegram.ui.ActionBar.Theme; import static android.graphics.Canvas.ALL_SAVE_FLAG; @@ -134,11 +133,11 @@ public class BlurBehindDrawable { blurCanvas[i].scale(1f / DOWN_SCALE, 1f / DOWN_SCALE, 0, 0); Drawable backDrawable = behindView.getBackground(); if (backDrawable == null) { - backDrawable = Theme.getCachedWallpaperNonBlocking();; + backDrawable = Theme.getCachedWallpaperNonBlocking(); } behindView.setTag(TAG_DRAWING_AS_BACKGROUND, i); if (i == STATIC_CONTENT) { - blurCanvas[i].translate(0,-panTranslationY); + blurCanvas[i].translate(0, -panTranslationY); behindView.draw(blurCanvas[i]); } @@ -225,14 +224,16 @@ public class BlurBehindDrawable { blurBackgroundTask.canceled = true; blurBackgroundTask = new BlurBackgroundTask(); - for (int i = 0; i < 2; i ++) { + for (int i = 0; i < 2; i++) { int lastH = parentView.getMeasuredHeight(); int lastW = parentView.getMeasuredWidth(); toolbarH = AndroidUtilities.statusBarHeight + AndroidUtilities.dp(100); int h = i == 0 ? toolbarH : lastH; if (bitmap[i].getHeight() != h || bitmap[i].getWidth() != parentView.getMeasuredWidth()) { - queue.cleanupQueue(); + if (queue != null) { + queue.cleanupQueue(); + } blurredBitmapTmp[i] = Bitmap.createBitmap((int) (lastW / DOWN_SCALE), (int) (h / DOWN_SCALE), Bitmap.Config.ARGB_8888); blurCanvas[i] = new Canvas(blurredBitmapTmp[i]); @@ -245,11 +246,11 @@ public class BlurBehindDrawable { blurCanvas[i].scale(1f / DOWN_SCALE, 1f / DOWN_SCALE, 0, 0); Drawable backDrawable = behindView.getBackground(); if (backDrawable == null) { - backDrawable = Theme.getCachedWallpaperNonBlocking();; + backDrawable = Theme.getCachedWallpaperNonBlocking(); } behindView.setTag(TAG_DRAWING_AS_BACKGROUND, i); if (i == STATIC_CONTENT) { - blurCanvas[i].translate(0,-panTranslationY); + blurCanvas[i].translate(0, -panTranslationY); behindView.draw(blurCanvas[i]); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatActivityEnterView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatActivityEnterView.java index 427d79d22..b717ef1c6 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatActivityEnterView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatActivityEnterView.java @@ -48,7 +48,6 @@ import android.text.StaticLayout; import android.text.TextPaint; import android.text.TextWatcher; import android.text.style.ImageSpan; -import android.text.style.ReplacementSpan; import android.util.Property; import android.util.TypedValue; import android.view.ActionMode; @@ -130,9 +129,6 @@ import java.util.Locale; public class ChatActivityEnterView extends FrameLayout implements NotificationCenter.NotificationCenterDelegate, SizeNotifierFrameLayout.SizeNotifierFrameLayoutDelegate, StickersAlert.StickersAlertDelegate { - private float circleAlpha1 = 0.4f; - private float circleAlpha2 = 0.3f; - public interface ChatActivityEnterViewDelegate { void onMessageSend(CharSequence message, boolean notify, int scheduleDate); void needSendTyping(); @@ -166,6 +162,9 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe void onAudioVideoInterfaceUpdated(); default void bottomPanelTranslationYChanged(float translation) { + } + default void prepareMessageSending() { + } } @@ -297,8 +296,8 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe private ImageView doneButtonImage; private AnimatorSet doneButtonAnimation; private ContextProgressView doneButtonProgress; - private View topView; - private View topLineView; + protected View topView; + protected View topLineView; private BotKeyboardView botKeyboardView; private ImageView notifyButton; private ImageView scheduledButton; @@ -310,6 +309,9 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe private MediaActionDrawable playPauseDrawable; private int searchingType; private Runnable focusRunnable; + protected float topViewEnterProgress; + protected int animatedTop; + private ValueAnimator currentTopViewAnimation; private boolean destroyed; @@ -373,21 +375,24 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe private TLRPC.WebPage messageWebPage; private boolean messageWebPageSearch = true; private ChatActivityEnterViewDelegate delegate; + private TrendingStickersAlert trendingStickersAlert; private TLRPC.TL_document audioToSend; private String audioToSendPath; private MessageObject audioToSendMessageObject; private VideoEditedInfo videoToSendMessageObject; - private boolean topViewShowed; + protected boolean topViewShowed; + private boolean needShowTopView; private boolean allowShowTopView; - private AnimatorSet currentTopViewAnimation; + private MessageObject pendingMessageObject; private TLRPC.KeyboardButton pendingLocationButton; private boolean configAnimationsEnabled; + private boolean waitingForKeyboardOpen; private boolean wasSendTyping; private Runnable openKeyboardRunnable = new Runnable() { @@ -757,6 +762,8 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe private float wavesEnterAnimation = 0f; private boolean showWaves = true; + private Paint p = new Paint(Paint.ANTI_ALIAS_FLAG); + public RecordCircle(Context context) { super(context); micDrawable = getResources().getDrawable(R.drawable.input_mic_pressed).mutate(); @@ -1222,7 +1229,6 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe path.lineTo(0, 0); path.lineTo(AndroidUtilities.dpf2(5), AndroidUtilities.dpf2(4)); - Paint p = new Paint(Paint.ANTI_ALIAS_FLAG); p.setColor(Color.WHITE); p.setAlpha(alphaInt); p.setStyle(Paint.Style.STROKE); @@ -1771,8 +1777,7 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe float radiusDiff = AndroidUtilities.dp(10) + AndroidUtilities.dp(50) * WAVE_ANGLE * animateToAmplitude; - circleBezierDrawable.idleStateDiff = idleRadius * - (1f - waveAmplitude); + circleBezierDrawable.idleStateDiff = idleRadius * (1f - waveAmplitude); float kDiff = 0.35f * waveAmplitude * waveDif; circleBezierDrawable.radiusDiff = radiusDiff * kDiff; @@ -1921,7 +1926,7 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe public InputConnection onCreateInputConnection(EditorInfo editorInfo) { final InputConnection ic = super.onCreateInputConnection(editorInfo); try { - EditorInfoCompat.setContentMimeTypes(editorInfo, new String[]{"image/gif", "image/*", "image/jpg", "image/png"}); + EditorInfoCompat.setContentMimeTypes(editorInfo, new String[]{"image/gif", "image/*", "image/jpg", "image/png", "image/webp"}); final InputConnectionCompat.OnCommitContentListener callback = (inputContentInfo, flags, opts) -> { if (BuildCompat.isAtLeastNMR1() && (flags & InputConnectionCompat.INPUT_CONTENT_GRANT_READ_URI_PERMISSION) != 0) { @@ -2819,11 +2824,19 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe animatorSet.start(); } + public int getBackgroundTop() { + int t = getTop(); + if (topView != null && topView.getVisibility() == View.VISIBLE) { + t += topView.getLayoutParams().height; + } + return t; + } + @Override protected boolean drawChild(Canvas canvas, View child, long drawingTime) { if (child == topView) { canvas.save(); - canvas.clipRect(0, 0, getMeasuredWidth(), child.getLayoutParams().height + AndroidUtilities.dp(2)); + canvas.clipRect(0, animatedTop, getMeasuredWidth(), animatedTop + child.getLayoutParams().height + AndroidUtilities.dp(2)); } boolean result = super.drawChild(canvas, child, drawingTime); if (child == topView) { @@ -2834,8 +2847,12 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe @Override protected void onDraw(Canvas canvas) { - int top = topView != null && topView.getVisibility() == VISIBLE ? (int) topView.getTranslationY() : 0; + int top = animatedTop; + if (topView != null && topView.getVisibility() == View.VISIBLE) { + top += (1f - topViewEnterProgress) * topView.getLayoutParams().height; + } int bottom = top + Theme.chat_composeShadowDrawable.getIntrinsicHeight(); + Theme.chat_composeShadowDrawable.setBounds(0, top, getMeasuredWidth(), bottom); Theme.chat_composeShadowDrawable.draw(canvas); canvas.drawRect(0, bottom, getWidth(), getHeight(), Theme.chat_composeBackgroundPaint); @@ -3095,6 +3112,7 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe topView = view; topView.setVisibility(GONE); + topViewEnterProgress = 0f; topView.setTranslationY(height); addView(topView, 0, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, height, Gravity.TOP | Gravity.LEFT, 0, 2, 0, 0)); needShowTopView = false; @@ -3129,6 +3147,17 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe emojiView.switchToGifRecent(); } + private final ValueAnimator.AnimatorUpdateListener topViewUpdateListener = animation -> { + if (topView != null) { + float v = (float) animation.getAnimatedValue(); + topViewEnterProgress = v; + topView.setTranslationY(animatedTop + (1f - v) * topView.getLayoutParams().height); + topLineView.setAlpha(v); + topLineView.setTranslationY(animatedTop); + } + }; + + public void showTopView(boolean animated, final boolean openKeyboard) { if (topView == null || topViewShowed || getVisibility() != VISIBLE) { if (recordedAudioPanel.getVisibility() != VISIBLE && (!forceShowSendButton || openKeyboard)) { @@ -3147,10 +3176,8 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe } resizeForTopView(true); if (animated) { - currentTopViewAnimation = new AnimatorSet(); - currentTopViewAnimation.playTogether( - ObjectAnimator.ofFloat(topView, View.TRANSLATION_Y, 0), - ObjectAnimator.ofFloat(topLineView, View.ALPHA, 1.0f)); + currentTopViewAnimation = ValueAnimator.ofFloat(topViewEnterProgress, 1f); + currentTopViewAnimation.addUpdateListener(topViewUpdateListener); currentTopViewAnimation.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { @@ -3163,6 +3190,7 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe currentTopViewAnimation.setInterpolator(CubicBezierInterpolator.DEFAULT); currentTopViewAnimation.start(); } else { + topViewEnterProgress = 1f; topView.setTranslationY(0); topLineView.setAlpha(1.0f); } @@ -3264,10 +3292,8 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe currentTopViewAnimation = null; } if (animated) { - currentTopViewAnimation = new AnimatorSet(); - currentTopViewAnimation.playTogether( - ObjectAnimator.ofFloat(topView, View.TRANSLATION_Y, topView.getLayoutParams().height), - ObjectAnimator.ofFloat(topLineView, View.ALPHA, 0.0f)); + currentTopViewAnimation = ValueAnimator.ofFloat(topViewEnterProgress, 0); + currentTopViewAnimation.addUpdateListener(topViewUpdateListener); currentTopViewAnimation.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { @@ -3286,10 +3312,12 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe } } }); - currentTopViewAnimation.setDuration(200); + currentTopViewAnimation.setDuration(220); + currentTopViewAnimation.setStartDelay(50); currentTopViewAnimation.setInterpolator(CubicBezierInterpolator.DEFAULT); currentTopViewAnimation.start(); } else { + topViewEnterProgress = 0f; topView.setVisibility(GONE); topLineView.setVisibility(GONE); topLineView.setAlpha(0.0f); @@ -3320,6 +3348,7 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe topLineView.setVisibility(GONE); topLineView.setAlpha(0.0f); resizeForTopView(false); + topViewEnterProgress = 0f; topView.setTranslationY(topView.getLayoutParams().height); } } @@ -3331,6 +3360,7 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe topLineView.setVisibility(VISIBLE); topLineView.setAlpha(1.0f); resizeForTopView(true); + topViewEnterProgress = 1f; topView.setTranslationY(0); } } @@ -3824,6 +3854,9 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe boolean supportsNewEntities = supportsSendingNewEntities(); int maxLength = accountInstance.getMessagesController().maxMessageLength; if (text.length() != 0) { + if (delegate != null && parentFragment != null && (scheduleDate != 0) == parentFragment.isInScheduleMode()) { + delegate.prepareMessageSending(); + } int count = (int) Math.ceil(text.length() / (float) maxLength); for (int a = 0; a < count; a++) { CharSequence[] message = new CharSequence[]{text.subSequence(a * maxLength, Math.min((a + 1) * maxLength, text.length()))}; @@ -4453,8 +4486,6 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe @Override public void onAnimationEnd(Animator animation) { if (animation.equals(runningAnimation)) { - sendButton.setVisibility(GONE); - cancelBotButton.setVisibility(GONE); setSlowModeButtonVisible(false); runningAnimation = null; runningAnimationType = 0; @@ -5379,6 +5410,10 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe return emojiView; } + public TrendingStickersAlert getTrendingStickersAlert() { + return trendingStickersAlert; + } + public void updateColors() { if (emojiView != null) { emojiView.updateColors(); @@ -5741,7 +5776,7 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe if (button instanceof TLRPC.TL_keyboardButton) { SendMessagesHelper.getInstance(currentAccount).sendMessage(button.text, dialog_id, replyMessageObject, null, false, null, null, null, true, 0); } else if (button instanceof TLRPC.TL_keyboardButtonUrl) { - parentFragment.showOpenUrlAlert(button.url, false, true); + AlertsCreator.showOpenUrlAlert(parentFragment, button.url, false, true); } else if (button instanceof TLRPC.TL_keyboardButtonRequestPhone) { parentFragment.shareMyContact(2, messageObject); } else if (button instanceof TLRPC.TL_keyboardButtonRequestPoll) { @@ -5852,8 +5887,6 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe emojiView.setVisibility(GONE); emojiView.setDelegate(new EmojiView.EmojiViewDelegate() { - private TrendingStickersAlert trendingStickersAlert; - @Override public boolean onBackspace() { if (messageEditText.length() == 0) { @@ -5954,6 +5987,7 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe HashMap params = new HashMap<>(); params.put("id", result.id); params.put("query_id", "" + result.query_id); + params.put("force_gif", "1"); SendMessagesHelper.prepareSendingBotContextResult(accountInstance, result, params, dialog_id, replyingMessageObject, notify, scheduleDate); @@ -6068,7 +6102,9 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe @Override public void dismiss() { super.dismiss(); - trendingStickersAlert = null; + if (trendingStickersAlert == this) { + trendingStickersAlert = null; + } } }; trendingStickersAlert.show(); @@ -6437,6 +6473,17 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe emojiButtonAnimation.setDuration(150); emojiButtonAnimation.start(); } + onEmojiIconChanged(nextIcon); + } + + protected void onEmojiIconChanged(int currentIcon) { + if (currentIcon == 3 && emojiView == null) { + MediaDataController.getInstance(currentAccount).loadRecents(MediaDataController.TYPE_IMAGE, true, true, false); + final ArrayList gifSearchEmojies = MessagesController.getInstance(currentAccount).gifSearchEmojies; + for (int i = 0, N = Math.min(10, gifSearchEmojies.size()); i < N; i++) { + Emoji.preloadEmoji(gifSearchEmojies.get(i)); + } + } } public void hidePopup(boolean byBackButton) { @@ -7507,17 +7554,4 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe stoppedInternal = false; } } - - private static class EmptyStubSpan extends ReplacementSpan { - - @Override - public int getSize(@NonNull Paint paint, CharSequence text, int start, int end, @Nullable Paint.FontMetricsInt fm) { - return (int) paint.measureText(text, start, end); - } - - @Override - public void draw(@NonNull Canvas canvas, CharSequence text, int start, int end, float x, int top, int y, int bottom, @NonNull Paint paint) { - - } - } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlert.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlert.java index 00f8d5657..87abc4477 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlert.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlert.java @@ -94,6 +94,7 @@ public class ChatAttachAlert extends BottomSheet implements NotificationCenter.N void didSelectBot(TLRPC.User user); void onCameraOpened(); void needEnterComment(); + void doOnIdle(Runnable runnable); } public float translationProgress; @@ -570,7 +571,7 @@ public class ChatAttachAlert extends BottomSheet implements NotificationCenter.N ignoreLayout = false; } int availableHeight = totalHeight - getPaddingTop(); - int keyboardSize = useSmoothKeyboard ? 0 : getKeyboardHeight(); + int keyboardSize = useSmoothKeyboard ? 0 : measureKeyboardHeight(); if (!AndroidUtilities.isInMultiwindow && keyboardSize <= AndroidUtilities.dp(20)) { availableHeight -= commentTextView.getEmojiPadding(); } @@ -611,7 +612,7 @@ public class ChatAttachAlert extends BottomSheet implements NotificationCenter.N setMeasuredDimension(widthSize, heightSize); widthSize -= backgroundPaddingLeft * 2; - int keyboardSize = useSmoothKeyboard ? 0 : getKeyboardHeight(); + int keyboardSize = useSmoothKeyboard ? 0 : measureKeyboardHeight(); if (keyboardSize <= AndroidUtilities.dp(20)) { if (!AndroidUtilities.isInMultiwindow) { heightSize -= commentTextView.getEmojiPadding(); @@ -660,7 +661,7 @@ public class ChatAttachAlert extends BottomSheet implements NotificationCenter.N setSystemGestureExclusionRects(exclusionRects); } - int keyboardSize = useSmoothKeyboard ? 0 : getKeyboardHeight(); + int keyboardSize = useSmoothKeyboard ? 0 : measureKeyboardHeight(); int paddingBottom = keyboardSize <= AndroidUtilities.dp(20) && !AndroidUtilities.isInMultiwindow && !AndroidUtilities.isTablet() ? commentTextView.getEmojiPadding() : 0; setBottomClip(paddingBottom); @@ -968,10 +969,11 @@ public class ChatAttachAlert extends BottomSheet implements NotificationCenter.N } else { info.searchImage = searchImage; } - + info.thumbPath = searchImage.thumbPath; + info.videoEditedInfo = searchImage.editedInfo; info.caption = searchImage.caption != null ? searchImage.caption.toString() : null; info.entities = searchImage.entities; - info.masks = !searchImage.stickers.isEmpty() ? new ArrayList<>(searchImage.stickers) : null; + info.masks = searchImage.stickers; info.ttl = searchImage.ttl; if (searchImage.inlineResult != null && searchImage.type == 1) { info.inlineResult = searchImage.inlineResult; @@ -1338,6 +1340,10 @@ public class ChatAttachAlert extends BottomSheet implements NotificationCenter.N public void show() { super.show(); buttonPressed = false; + if (baseFragment instanceof ChatActivity) { + ChatActivity chatActivity = (ChatActivity) baseFragment; + calcMandatoryInsets = chatActivity.isKeyboardVisible(); + } } public void setEditingMessageObject(MessageObject messageObject) { @@ -1898,7 +1904,6 @@ public class ChatAttachAlert extends BottomSheet implements NotificationCenter.N return; } int newOffset = layout.getCurrentItemTop(); - FileLog.d(layout + " offset = " + newOffset); if (newOffset == Integer.MAX_VALUE) { return; } @@ -2145,7 +2150,6 @@ public class ChatAttachAlert extends BottomSheet implements NotificationCenter.N @Override public void onOpenAnimationEnd() { - NotificationCenter.getInstance(currentAccount).setAnimationInProgress(false); MediaController.AlbumEntry albumEntry; if (baseFragment instanceof ChatActivity) { albumEntry = MediaController.allMediaAlbumEntry; @@ -2327,6 +2331,10 @@ public class ChatAttachAlert extends BottomSheet implements NotificationCenter.N @Override public void dismissInternal() { + delegate.doOnIdle(this::removeFromRoot); + } + + private void removeFromRoot() { if (containerView != null) { containerView.setVisibility(View.INVISIBLE); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertAudioLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertAudioLayout.java index 4ae5b5886..87bb05285 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertAudioLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertAudioLayout.java @@ -336,7 +336,7 @@ public class ChatAttachAlertAudioLayout extends ChatAttachAlert.AttachAlertLayou @Override void onPreMeasure(int availableWidth, int availableHeight) { int padding; - if (parentAlert.sizeNotifierFrameLayout.getKeyboardHeight() > AndroidUtilities.dp(20)) { + if (parentAlert.sizeNotifierFrameLayout.measureKeyboardHeight() > AndroidUtilities.dp(20)) { padding = AndroidUtilities.dp(8); parentAlert.setAllowNestedScroll(false); } else { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertContactsLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertContactsLayout.java index 9936b8f35..3507085ef 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertContactsLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertContactsLayout.java @@ -420,7 +420,7 @@ public class ChatAttachAlertContactsLayout extends ChatAttachAlert.AttachAlertLa @Override void onPreMeasure(int availableWidth, int availableHeight) { int padding; - if (parentAlert.sizeNotifierFrameLayout.getKeyboardHeight() > AndroidUtilities.dp(20)) { + if (parentAlert.sizeNotifierFrameLayout.measureKeyboardHeight() > AndroidUtilities.dp(20)) { padding = AndroidUtilities.dp(8); parentAlert.setAllowNestedScroll(false); } else { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertDocumentLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertDocumentLayout.java index 45a45c867..78c01e16b 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertDocumentLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertDocumentLayout.java @@ -460,7 +460,7 @@ public class ChatAttachAlertDocumentLayout extends ChatAttachAlert.AttachAlertLa @Override void onPreMeasure(int availableWidth, int availableHeight) { int padding; - if (parentAlert.actionBar.isSearchFieldVisible() || parentAlert.sizeNotifierFrameLayout.getKeyboardHeight() > AndroidUtilities.dp(20)) { + if (parentAlert.actionBar.isSearchFieldVisible() || parentAlert.sizeNotifierFrameLayout.measureKeyboardHeight() > AndroidUtilities.dp(20)) { padding = AndroidUtilities.dp(56); parentAlert.setAllowNestedScroll(false); } else { @@ -578,18 +578,17 @@ public class ChatAttachAlertDocumentLayout extends ChatAttachAlert.AttachAlertLa media.add(info); if (object instanceof MediaController.PhotoEntry) { MediaController.PhotoEntry photoEntry = (MediaController.PhotoEntry) object; - if (photoEntry.isVideo) { - info.path = photoEntry.path; - info.videoEditedInfo = photoEntry.editedInfo; - } else if (photoEntry.imagePath != null) { + if (photoEntry.imagePath != null) { info.path = photoEntry.imagePath; - } else if (photoEntry.path != null) { + } else { info.path = photoEntry.path; } + info.thumbPath = photoEntry.thumbPath; + info.videoEditedInfo = photoEntry.editedInfo; info.isVideo = photoEntry.isVideo; info.caption = photoEntry.caption != null ? photoEntry.caption.toString() : null; info.entities = photoEntry.entities; - info.masks = !photoEntry.stickers.isEmpty() ? new ArrayList<>(photoEntry.stickers) : null; + info.masks = photoEntry.stickers; info.ttl = photoEntry.ttl; } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertLocationLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertLocationLayout.java index 42c8b5b10..da203aa4b 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertLocationLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertLocationLayout.java @@ -1026,7 +1026,7 @@ public class ChatAttachAlertLocationLayout extends ChatAttachAlert.AttachAlertLa @Override void onPreMeasure(int availableWidth, int availableHeight) { int padding; - if (parentAlert.actionBar.isSearchFieldVisible() || parentAlert.sizeNotifierFrameLayout.getKeyboardHeight() > AndroidUtilities.dp(20)) { + if (parentAlert.actionBar.isSearchFieldVisible() || parentAlert.sizeNotifierFrameLayout.measureKeyboardHeight() > AndroidUtilities.dp(20)) { padding = mapHeight - overScrollHeight; parentAlert.setAllowNestedScroll(false); } else { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertPhotoLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertPhotoLayout.java index 55a9c2bcf..82b914eba 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertPhotoLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertPhotoLayout.java @@ -17,7 +17,6 @@ import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.hardware.Camera; import android.media.MediaMetadataRetriever; -import android.media.ThumbnailUtils; import android.net.Uri; import android.os.Build; import android.provider.MediaStore; @@ -49,6 +48,7 @@ import org.telegram.messenger.MediaController; import org.telegram.messenger.MessageObject; import org.telegram.messenger.NotificationCenter; import org.telegram.messenger.R; +import org.telegram.messenger.SendMessagesHelper; import org.telegram.messenger.SharedConfig; import org.telegram.messenger.Utilities; import org.telegram.messenger.VideoEditedInfo; @@ -1835,7 +1835,7 @@ public class ChatAttachAlertPhotoLayout extends ChatAttachAlert.AttachAlertLayou FileLog.e(e); } } - final Bitmap bitmap = ThumbnailUtils.createVideoThumbnail(videoPath, MediaStore.Video.Thumbnails.MINI_KIND); + final Bitmap bitmap = SendMessagesHelper.createVideoThumbnail(videoPath, MediaStore.Video.Thumbnails.MINI_KIND); String fileName = Integer.MIN_VALUE + "_" + SharedConfig.getLastLocalId() + ".jpg"; final File cacheFile = new File(FileLoader.getDirectory(FileLoader.MEDIA_DIR_CACHE), fileName); try { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertPollLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertPollLayout.java index 63b7cffb2..ea81a0713 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertPollLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertPollLayout.java @@ -479,7 +479,7 @@ public class ChatAttachAlertPollLayout extends ChatAttachAlert.AttachAlertLayout @Override void onPreMeasure(int availableWidth, int availableHeight) { int padding; - if (parentAlert.sizeNotifierFrameLayout.getKeyboardHeight() > AndroidUtilities.dp(20)) { + if (parentAlert.sizeNotifierFrameLayout.measureKeyboardHeight() > AndroidUtilities.dp(20)) { padding = AndroidUtilities.dp(52); parentAlert.setAllowNestedScroll(false); } else { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/CheckBoxBase.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/CheckBoxBase.java index 7fba13e69..cad339b3a 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/CheckBoxBase.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/CheckBoxBase.java @@ -243,7 +243,7 @@ public class CheckBoxBase { drawBitmap.eraseColor(0); float rad = AndroidUtilities.dp(size / 2); float outerRad = rad; - if (drawBackgroundAsArc != 0) { + if (drawBackgroundAsArc != 0 && drawBackgroundAsArc != 11) { outerRad -= AndroidUtilities.dp(0.2f); } @@ -291,7 +291,7 @@ public class CheckBoxBase { } paint.setColor(Theme.getColor(checkColorKey)); if (drawBackgroundAsArc != 7 && drawBackgroundAsArc != 8 && drawBackgroundAsArc != 9 && drawBackgroundAsArc != 10) { - if (drawBackgroundAsArc == 0) { + if (drawBackgroundAsArc == 0 || drawBackgroundAsArc == 11) { canvas.drawCircle(cx, cy, rad, backgroundPaint); } else { rect.set(cx - outerRad, cy - outerRad, cx + outerRad, cy + outerRad); @@ -330,7 +330,7 @@ public class CheckBoxBase { if (drawBackgroundAsArc == 9) { paint.setColor(Theme.getColor(background2ColorKey)); - } else if (drawBackgroundAsArc == 6 || drawBackgroundAsArc == 7 || drawBackgroundAsArc == 10 || !drawUnchecked && backgroundColorKey != null) { + } else if (drawBackgroundAsArc == 11 || drawBackgroundAsArc == 6 || drawBackgroundAsArc == 7 || drawBackgroundAsArc == 10 || !drawUnchecked && backgroundColorKey != null) { paint.setColor(Theme.getColor(backgroundColorKey)); } else { paint.setColor(Theme.getColor(enabled ? Theme.key_checkbox : Theme.key_checkboxDisabled)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/CircleBezierDrawable.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/CircleBezierDrawable.java index c4de18b98..5bc0ec60e 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/CircleBezierDrawable.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/CircleBezierDrawable.java @@ -18,15 +18,15 @@ public class CircleBezierDrawable { float globalRotate = 0f; public float idleStateDiff = 0f; - float radius; - float radiusDiff; - float cubicBezierK = 1f; + public float radius; + public float radiusDiff; + public float cubicBezierK = 1f; final Random random = new Random(); float[] randomAdditionals; - float randomK; + public float randomK; public CircleBezierDrawable(int n) { N = n; @@ -41,7 +41,14 @@ public class CircleBezierDrawable { } } - protected void draw(float cX, float cY, Canvas canvas, Paint paint) { + public void setAdditionals(int[] additionals) { + for (int i = 0; i < N; i += 2) { + randomAdditionals[i] = additionals[i / 2]; + randomAdditionals[i + 1] = 0; + } + } + + public void draw(float cX, float cY, Canvas canvas, Paint paint) { float r1 = radius - idleStateDiff / 2f - radiusDiff / 2f; float r2 = radius + radiusDiff / 2 + idleStateDiff / 2f; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Crop/CropView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Crop/CropView.java index e3a902e37..bedb7a5b3 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Crop/CropView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Crop/CropView.java @@ -3,8 +3,10 @@ package org.telegram.ui.Components.Crop; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.ValueAnimator; +import android.annotation.SuppressLint; import android.content.Context; import android.graphics.Bitmap; +import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Matrix; import android.graphics.Paint; @@ -18,9 +20,20 @@ import android.widget.FrameLayout; import android.widget.ImageView; import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.FileLoader; +import org.telegram.messenger.FileLog; +import org.telegram.messenger.ImageLoader; import org.telegram.messenger.LocaleController; +import org.telegram.messenger.MediaController; import org.telegram.messenger.R; +import org.telegram.messenger.SharedConfig; +import org.telegram.messenger.VideoEditedInfo; import org.telegram.ui.ActionBar.AlertDialog; +import org.telegram.ui.Components.PaintingOverlay; + +import java.io.File; +import java.io.FileOutputStream; +import java.util.ArrayList; import static android.graphics.Paint.FILTER_BITMAP_FLAG; @@ -34,6 +47,8 @@ public class CropView extends FrameLayout implements CropAreaView.AreaViewListen private CropAreaView areaView; private ImageView imageView; private Matrix presentationMatrix; + private Matrix overlayMatrix; + private PaintingOverlay paintingOverlay; private RectF previousAreaRect; private RectF initialAreaRect; @@ -151,6 +166,10 @@ public class CropView extends FrameLayout implements CropAreaView.AreaViewListen return orientation + baseRotation; } + private float getOrientationOnly() { + return orientation; + } + private float getBaseRotation() { return baseRotation; } @@ -207,6 +226,7 @@ public class CropView extends FrameLayout implements CropAreaView.AreaViewListen previousAreaRect = new RectF(); initialAreaRect = new RectF(); presentationMatrix = new Matrix(); + overlayMatrix = new Matrix(); tempRect = new CropRectangle(); tempMatrix = new Matrix(); animating = false; @@ -229,6 +249,18 @@ public class CropView extends FrameLayout implements CropAreaView.AreaViewListen addView(areaView); } + @Override + protected boolean drawChild(Canvas canvas, View child, long drawingTime) { + boolean result = super.drawChild(canvas, child, drawingTime); + if (child == imageView && paintingOverlay != null) { + canvas.save(); + canvas.setMatrix(overlayMatrix); + paintingOverlay.draw(canvas); + canvas.restore(); + } + return result; + } + public boolean isReady() { return !detector.isScaling() && !detector.isDragging() && !areaView.isDragging(); } @@ -246,8 +278,9 @@ public class CropView extends FrameLayout implements CropAreaView.AreaViewListen areaView.setActualRect(ratio); } - public void setBitmap(Bitmap b, int rotation, boolean fform, boolean same) { + public void setBitmap(Bitmap b, int rotation, boolean fform, boolean same, PaintingOverlay overlay) { freeform = fform; + paintingOverlay = overlay; if (b == null) { bitmap = null; state = null; @@ -329,8 +362,18 @@ public class CropView extends FrameLayout implements CropAreaView.AreaViewListen presentationMatrix.postRotate(state.getOrientation()); state.getConcatMatrix(presentationMatrix); presentationMatrix.postTranslate(areaView.getCropCenterX(), areaView.getCropCenterY()); - imageView.setImageMatrix(presentationMatrix); + + overlayMatrix.reset(); + if (state.getBaseRotation() == 90 || state.getBaseRotation() == 270) { + overlayMatrix.postTranslate(-state.getHeight() / 2, -state.getWidth() / 2); + } else { + overlayMatrix.postTranslate(-state.getWidth() / 2, -state.getHeight() / 2); + } + overlayMatrix.postRotate(state.getOrientationOnly()); + state.getConcatMatrix(overlayMatrix); + overlayMatrix.postTranslate(areaView.getCropCenterX(), areaView.getCropCenterY()); + invalidate(); } private void fillAreaView(RectF targetRect, boolean allowZoomOut) { @@ -435,7 +478,7 @@ public class CropView extends FrameLayout implements CropAreaView.AreaViewListen return w; } - private class CropRectangle { + private static class CropRectangle { float[] coords = new float[8]; CropRectangle() { @@ -726,7 +769,71 @@ public class CropView extends FrameLayout implements CropAreaView.AreaViewListen fitContentInBounds(true, true, false); } - public Bitmap getResult() { + @SuppressLint("WrongThread") + private void editBitmap(String path, Bitmap b, Canvas canvas, Bitmap canvasBitmap, Bitmap.CompressFormat format, float scale, ArrayList entities, boolean clear) { + try { + if (clear) { + canvasBitmap.eraseColor(0); + } + if (b == null) { + b = BitmapFactory.decodeFile(path); + } + float sc = Math.max(b.getWidth(), b.getHeight()) / (float) Math.max(bitmap.getWidth(), bitmap.getHeight()); + Matrix matrix = new Matrix(); + matrix.postTranslate(-b.getWidth() / 2, -b.getHeight() / 2); + matrix.postScale(1.0f / sc, 1.0f / sc); + matrix.postRotate(state.getOrientationOnly()); + state.getConcatMatrix(matrix); + matrix.postScale(scale, scale); + matrix.postTranslate(canvasBitmap.getWidth() / 2, canvasBitmap.getHeight() / 2); + canvas.drawBitmap(b, matrix, new Paint(FILTER_BITMAP_FLAG)); + FileOutputStream stream = new FileOutputStream(new File(path)); + canvasBitmap.compress(format, 83, stream); + stream.close(); + + if (entities != null && !entities.isEmpty()) { + float[] point = new float[4]; + float newScale = 1.0f / sc * scale * state.scale; + for (int a = 0, N = entities.size(); a < N; a++) { + VideoEditedInfo.MediaEntity entity = entities.get(a); + + point[0] = entity.x * b.getWidth() + entity.viewWidth * entity.scale / 2; + point[1] = entity.y * b.getHeight() + entity.viewHeight * entity.scale / 2; + point[2] = entity.textViewX * b.getWidth(); + point[3] = entity.textViewY * b.getHeight(); + matrix.mapPoints(point); + + float widthScale = b.getWidth() / (float) canvasBitmap.getWidth(); + newScale *= widthScale; + if (entity.type == 0) { + entity.viewWidth = entity.viewHeight = canvasBitmap.getWidth() / 2; + } else if (entity.type == 1) { + entity.fontSize = canvasBitmap.getWidth() / 9; + } + entity.scale *= newScale; + + entity.x = (point[0] - entity.viewWidth * entity.scale / 2) / canvasBitmap.getWidth(); + entity.y = (point[1] - entity.viewHeight * entity.scale / 2) / canvasBitmap.getHeight(); + entity.textViewX = point[2] / canvasBitmap.getWidth(); + entity.textViewY = point[3] / canvasBitmap.getHeight(); + + entity.width = entity.viewWidth * entity.scale / canvasBitmap.getWidth(); + entity.height = entity.viewHeight * entity.scale / canvasBitmap.getHeight(); + + entity.textViewWidth = entity.viewWidth / (float) canvasBitmap.getWidth(); + entity.textViewHeight = entity.viewHeight / (float) canvasBitmap.getHeight(); + + entity.rotation -= (state.getRotation() + state.getOrientationOnly()) * (Math.PI / 180); + } + } + + b.recycle(); + } catch (Throwable e) { + FileLog.e(e); + } + } + + public Bitmap getResult(MediaController.MediaEditState editState) { if (state == null || !state.hasChanges() && state.getBaseRotation() < EPSILON && freeform) { return bitmap; } @@ -738,20 +845,35 @@ public class CropView extends FrameLayout implements CropAreaView.AreaViewListen float w = scaleWidthToMaxSize(cropRect, sizeRect); int width = (int) Math.ceil(w); int height = (int) (Math.ceil(width / areaView.getAspectRatio())); + float scale = width / areaView.getCropWidth(); Bitmap resultBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); Matrix matrix = new Matrix(); matrix.postTranslate(-state.getWidth() / 2, -state.getHeight() / 2); - matrix.postRotate(state.getOrientation()); state.getConcatMatrix(matrix); - - float scale = width / areaView.getCropWidth(); matrix.postScale(scale, scale); matrix.postTranslate(width / 2, height / 2); - new Canvas(resultBitmap).drawBitmap(bitmap, matrix, new Paint(FILTER_BITMAP_FLAG)); + Canvas canvas = new Canvas(resultBitmap); + + if (editState.paintPath != null) { + editBitmap(editState.paintPath, null, canvas, resultBitmap, Bitmap.CompressFormat.PNG, scale, null, false); + if (!editState.paintPath.equals(editState.fullPaintPath)) { + editBitmap(editState.fullPaintPath, null, canvas, resultBitmap, Bitmap.CompressFormat.PNG, scale, editState.mediaEntities, true); + } + } + if (editState.filterPath != null) { + if (editState.croppedPath == null) { + File f = new File(FileLoader.getDirectory(FileLoader.MEDIA_DIR_CACHE), SharedConfig.getLastLocalId() + "_temp.jpg"); + editState.croppedPath = f.getAbsolutePath(); + } + Bitmap b = ImageLoader.loadBitmap(editState.getPath(), null, bitmap.getWidth(), bitmap.getHeight(), true); + editBitmap(editState.croppedPath, b, canvas, resultBitmap, Bitmap.CompressFormat.JPEG, scale, null, false); + } + + canvas.drawBitmap(bitmap, matrix, new Paint(FILTER_BITMAP_FLAG)); return resultBitmap; } @@ -768,6 +890,9 @@ public class CropView extends FrameLayout implements CropAreaView.AreaViewListen } public void showAspectRatioDialog() { + if (state == null) { + return; + } if (areaView.getLockAspectRatio() > 0) { areaView.setLockedAspectRatio(0); @@ -844,6 +969,9 @@ public class CropView extends FrameLayout implements CropAreaView.AreaViewListen public void updateLayout() { float w = areaView.getCropWidth(); + if (w == 0) { + return; + } if (state != null) { areaView.calculateRect(initialAreaRect, state.getWidth() / state.getHeight()); areaView.setActualRect(areaView.getAspectRatio()); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/DialogsItemAnimator.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/DialogsItemAnimator.java index f49c9c109..14d749e32 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/DialogsItemAnimator.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/DialogsItemAnimator.java @@ -110,7 +110,7 @@ public class DialogsItemAnimator extends SimpleItemAnimator { mPendingMoves.clear(); Runnable mover = () -> { for (MoveInfo moveInfo : moves) { - animateMoveImpl(moveInfo.holder, moveInfo.fromX, moveInfo.fromY, moveInfo.toX, moveInfo.toY); + animateMoveImpl(moveInfo.holder, null, moveInfo.fromX, moveInfo.fromY, moveInfo.toX, moveInfo.toY); } moves.clear(); mMovesList.remove(moves); @@ -148,7 +148,7 @@ public class DialogsItemAnimator extends SimpleItemAnimator { } @Override - public boolean animateRemove(final ViewHolder holder) { + public boolean animateRemove(final ViewHolder holder, ItemHolderInfo info) { resetAnimation(holder); mPendingRemovals.add(holder); return true; @@ -288,7 +288,7 @@ public class DialogsItemAnimator extends SimpleItemAnimator { } @Override - public boolean animateMove(final ViewHolder holder, int fromX, int fromY, + public boolean animateMove(final ViewHolder holder, ItemHolderInfo info, int fromX, int fromY, int toX, int toY) { final View view = holder.itemView; fromX += (int) holder.itemView.getTranslationX(); @@ -325,7 +325,7 @@ public class DialogsItemAnimator extends SimpleItemAnimator { } } - void animateMoveImpl(final ViewHolder holder, int fromX, int fromY, int toX, int toY) { + void animateMoveImpl(final ViewHolder holder, ItemHolderInfo info, int fromX, int fromY, int toX, int toY) { final View view = holder.itemView; final int deltaX = toX - fromX; final int deltaY = toY - fromY; @@ -383,7 +383,7 @@ public class DialogsItemAnimator extends SimpleItemAnimator { } @Override - public boolean animateChange(ViewHolder oldHolder, ViewHolder newHolder, int fromX, int fromY, int toX, int toY) { + public boolean animateChange(ViewHolder oldHolder, ViewHolder newHolder,ItemHolderInfo info, int fromX, int fromY, int toX, int toY) { if (oldHolder.itemView instanceof DialogCell) { resetAnimation(oldHolder); resetAnimation(newHolder); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/EmojiView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/EmojiView.java index 1cb554c09..90445ea00 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/EmojiView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/EmojiView.java @@ -29,8 +29,14 @@ import android.graphics.drawable.LayerDrawable; import android.graphics.drawable.ShapeDrawable; import android.os.Build; +import androidx.annotation.IntDef; +import androidx.annotation.MainThread; +import androidx.annotation.NonNull; +import androidx.core.view.ViewCompat; import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.LinearSmoothScroller; import androidx.recyclerview.widget.RecyclerView; +import androidx.recyclerview.widget.SimpleItemAnimator; import androidx.viewpager.widget.PagerAdapter; import androidx.viewpager.widget.ViewPager; import android.text.Editable; @@ -75,6 +81,7 @@ import org.telegram.messenger.R; import org.telegram.messenger.UserConfig; import org.telegram.messenger.browser.Browser; import org.telegram.tgnet.ConnectionsManager; +import org.telegram.tgnet.RequestDelegate; import org.telegram.tgnet.TLObject; import org.telegram.tgnet.TLRPC; import org.telegram.ui.ActionBar.AlertDialog; @@ -88,10 +95,14 @@ import org.telegram.ui.Cells.StickerSetGroupInfoCell; import org.telegram.ui.Cells.StickerSetNameCell; import org.telegram.ui.ContentPreviewViewer; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; +import java.util.List; +import java.util.Map; public class EmojiView extends FrameLayout implements NotificationCenter.NotificationCenterDelegate { @@ -120,19 +131,24 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific private EmojiSearchAdapter emojiSearchAdapter; private SearchField emojiSearchField; private AnimatorSet emojiTabShadowAnimator; - private int emojiMinusDy; private boolean firstEmojiAttach = true; private boolean needEmojiSearch; private int hasRecentEmoji = -1; private FrameLayout gifContainer; private RecyclerListView gifGridView; - private ExtendedGridLayoutManager gifLayoutManager; - private GifSearchAdapter gifSearchAdapter; + private GifLayoutManager gifLayoutManager; + private GifAdapter gifSearchAdapter; + private GifSearchPreloader gifSearchPreloader = new GifSearchPreloader(); + private final Map gifCache = new HashMap<>(); private RecyclerListView.OnItemClickListener gifOnItemClickListener; private GifAdapter gifAdapter; private SearchField gifSearchField; + private ScrollSlidingTabStrip gifTabs; private boolean firstGifAttach = true; + private int gifRecentTabNum = -2; + private int gifTrendingTabNum = -2; + private int gifFirstEmojiTabNum = -2; private FrameLayout stickersContainer; private StickersGridAdapter stickersGridAdapter; @@ -150,11 +166,23 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific private TextView mediaBanTooltip; private DragListener dragListener; + private final int[] tabsMinusDy = new int[3]; + private ObjectAnimator[] tabsYAnimators = new ObjectAnimator[3]; + + @IntDef({Type.STICKERS, Type.EMOJIS, Type.GIFS}) + @Retention(RetentionPolicy.SOURCE) + private @interface Type { + int STICKERS = 0; + int EMOJIS = 1; + int GIFS = 2; + } + private String[] lastSearchKeyboardLanguage; private Drawable[] tabIcons; private Drawable[] emojiIcons; private Drawable[] stickerIcons; + private Drawable[] gifIcons; private String[] emojiTitles; private int searchFieldHeight; @@ -325,20 +353,17 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific } @Override - public void sendGif(Object gif, boolean notify, int scheduleDate) { + public void sendGif(Object gif, Object parent, boolean notify, int scheduleDate) { if (gifGridView.getAdapter() == gifAdapter) { - delegate.onGifSelected(null, gif, "gif", notify, scheduleDate); + delegate.onGifSelected(null, gif, parent, notify, scheduleDate); } else if (gifGridView.getAdapter() == gifSearchAdapter) { - delegate.onGifSelected(null, gif, gifSearchAdapter.bot, notify, scheduleDate); + delegate.onGifSelected(null, gif, parent, notify, scheduleDate); } } @Override public void gifAddedOrDeleted() { - recentGifs = MediaDataController.getInstance(currentAccount).getRecentGifs(); - if (gifAdapter != null) { - gifAdapter.notifyDataSetChanged(); - } + updateRecentGifs(); } @Override @@ -521,6 +546,199 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific } } + private class TypedScrollListener extends RecyclerListView.OnScrollListener { + + @Type + private final int type; + + private boolean smoothScrolling; + + public TypedScrollListener(@Type int type) { + this.type = type; + } + + @Override + public void onScrollStateChanged(RecyclerView recyclerView, int newState) { + if (recyclerView.getLayoutManager().isSmoothScrolling()) { + smoothScrolling = true; + return; + } + if (newState == RecyclerListView.SCROLL_STATE_IDLE) { + if (!smoothScrolling) { + animateTabsY(type); + } + smoothScrolling = false; + } else { + if (newState == RecyclerView.SCROLL_STATE_DRAGGING) { + final SearchField searchField = getSearchFieldForType(type); + if (searchField != null) { + searchField.hideKeyboard(); + } + smoothScrolling = false; + } + if (!smoothScrolling) { + stopAnimatingTabsY(type); + } + } + } + + @Override + public void onScrolled(RecyclerView recyclerView, int dx, int dy) { + checkScroll(type); + checkTabsY(type, dy); + checkSearchFieldScroll(); + if (!smoothScrolling) { + checkBottomTabScroll(dy); + } + } + + private void checkSearchFieldScroll() { + switch (type) { + case Type.STICKERS: + checkStickersSearchFieldScroll(false); + break; + case Type.EMOJIS: + checkEmojiSearchFieldScroll(false); + break; + case Type.GIFS: + checkGifSearchFieldScroll(false); + break; + } + } + } + + private class DraggableScrollSlidingTabStrip extends ScrollSlidingTabStrip { + + private final int touchSlop; + + private boolean startedScroll; + private float lastX; + private float lastTranslateX; + private boolean first = true; + private float downX, downY; + private boolean draggingVertically, draggingHorizontally; + private VelocityTracker vTracker; + + public DraggableScrollSlidingTabStrip(Context context) { + super(context); + touchSlop = ViewConfiguration.get(context).getScaledTouchSlop(); + } + + @Override + public boolean onInterceptTouchEvent(MotionEvent ev) { + if (getParent() != null) { + getParent().requestDisallowInterceptTouchEvent(true); + } + if (ev.getAction() == MotionEvent.ACTION_DOWN) { + draggingVertically = draggingHorizontally = false; + downX = ev.getRawX(); + downY = ev.getRawY(); + } else { + if (!draggingVertically && !draggingHorizontally && dragListener != null) { + if (Math.abs(ev.getRawY() - downY) >= touchSlop) { + draggingVertically = true; + downY = ev.getRawY(); + dragListener.onDragStart(); + if (startedScroll) { + pager.endFakeDrag(); + startedScroll = false; + } + return true; + } + } + } + return super.onInterceptTouchEvent(ev); + } + + @Override + public boolean onTouchEvent(MotionEvent ev) { + if (first) { + first = false; + lastX = ev.getX(); + } + if (ev.getAction() == MotionEvent.ACTION_DOWN) { + draggingVertically = draggingHorizontally = false; + downX = ev.getRawX(); + downY = ev.getRawY(); + } else { + if (!draggingVertically && !draggingHorizontally && dragListener != null) { + if (Math.abs(ev.getRawX() - downX) >= touchSlop) { + draggingHorizontally = true; + } else if (Math.abs(ev.getRawY() - downY) >= touchSlop) { + draggingVertically = true; + downY = ev.getRawY(); + dragListener.onDragStart(); + if (startedScroll) { + pager.endFakeDrag(); + startedScroll = false; + } + } + } + } + if (draggingVertically) { + if (vTracker == null) { + vTracker = VelocityTracker.obtain(); + } + vTracker.addMovement(ev); + if (ev.getAction() == MotionEvent.ACTION_UP || ev.getAction() == MotionEvent.ACTION_CANCEL) { + vTracker.computeCurrentVelocity(1000); + float velocity = vTracker.getYVelocity(); + vTracker.recycle(); + vTracker = null; + if (ev.getAction() == MotionEvent.ACTION_UP) { + dragListener.onDragEnd(velocity); + } else { + dragListener.onDragCancel(); + } + first = true; + draggingVertically = draggingHorizontally = false; + } else { + dragListener.onDrag(Math.round(ev.getRawY() - downY)); + } + return true; + } + float newTranslationX = getTranslationX(); + if (getScrollX() == 0 && newTranslationX == 0) { + if (!startedScroll && lastX - ev.getX() < 0) { + if (pager.beginFakeDrag()) { + startedScroll = true; + lastTranslateX = getTranslationX(); + } + } else if (startedScroll && lastX - ev.getX() > 0) { + if (pager.isFakeDragging()) { + pager.endFakeDrag(); + startedScroll = false; + } + } + } + if (startedScroll) { + int dx = (int) (ev.getX() - lastX + newTranslationX - lastTranslateX); + try { + //pager.fakeDragBy(dx); + lastTranslateX = newTranslationX; + } catch (Exception e) { + try { + pager.endFakeDrag(); + } catch (Exception ignore) { + + } + startedScroll = false; + FileLog.e(e); + } + } + lastX = ev.getX(); + if (ev.getAction() == MotionEvent.ACTION_CANCEL || ev.getAction() == MotionEvent.ACTION_UP) { + first = true; + draggingVertically = draggingHorizontally = false; + if (startedScroll) { + pager.endFakeDrag(); + startedScroll = false; + } + } + return startedScroll || super.onTouchEvent(ev); + } + } + private class ImageViewEmoji extends ImageView { private boolean isRecent; @@ -802,6 +1020,11 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific }) }; + gifIcons = new Drawable[]{ + Theme.createEmojiIconSelectorDrawable(context, R.drawable.stickers_recent, Theme.getColor(Theme.key_chat_emojiBottomPanelIcon), Theme.getColor(Theme.key_chat_emojiPanelIconSelected)), + Theme.createEmojiIconSelectorDrawable(context, R.drawable.stickers_gifs_trending, Theme.getColor(Theme.key_chat_emojiBottomPanelIcon), Theme.getColor(Theme.key_chat_emojiPanelIconSelected)), + }; + emojiTitles = new String[]{ LocaleController.getString("Emoji1", R.string.Emoji1), LocaleController.getString("Emoji2", R.string.Emoji2), @@ -974,14 +1197,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific emojiGridView.setAdapter(emojiAdapter = new EmojiGridAdapter()); emojiSearchAdapter = new EmojiSearchAdapter(); emojiContainer.addView(emojiGridView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); - emojiGridView.setOnScrollListener(new RecyclerView.OnScrollListener() { - @Override - public void onScrollStateChanged(RecyclerView recyclerView, int newState) { - if (newState == RecyclerView.SCROLL_STATE_DRAGGING && emojiSearchField != null) { - emojiSearchField.hideKeyboard(); - } - } - + emojiGridView.setOnScrollListener(new TypedScrollListener(Type.EMOJIS) { @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { int position = emojiLayoutManager.findFirstVisibleItemPosition(); @@ -1000,9 +1216,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific } emojiTabs.onPageScrolled(tab, 0); } - checkEmojiTabY(recyclerView, dy); - checkEmojiSearchFieldScroll(false); - checkBottomTabScroll(dy); + super.onScrolled(recyclerView, dx, dy); } }); emojiGridView.setOnItemClickListener(new RecyclerListView.OnItemClickListener() { @@ -1111,7 +1325,15 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific } }); - emojiTabs = new ScrollSlidingTabStrip(context); + emojiTabs = new ScrollSlidingTabStrip(context) { + @Override + public void setTranslationY(float translationY) { + super.setTranslationY(translationY); + if (emojiTabsShadow != null) { + emojiTabsShadow.setTranslationY(translationY); + } + } + }; if (needSearch) { emojiSearchField = new SearchField(context, 1); emojiContainer.addView(emojiSearchField, new FrameLayout.LayoutParams(LayoutHelper.MATCH_PARENT, searchFieldHeight + AndroidUtilities.getShadowHeight())); @@ -1164,6 +1386,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific gifGridView = new RecyclerListView(context) { private boolean ignoreLayout; + private boolean wasMeasured; @Override public boolean onInterceptTouchEvent(MotionEvent event) { @@ -1171,11 +1394,22 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific return super.onInterceptTouchEvent(event) || result; } + @Override + protected void onMeasure(int widthSpec, int heightSpec) { + super.onMeasure(widthSpec, heightSpec); + if (!wasMeasured) { + gifAdapter.notifyDataSetChanged(); + wasMeasured = true; + } + } + @Override protected void onLayout(boolean changed, int l, int t, int r, int b) { if (firstGifAttach && gifAdapter.getItemCount() > 1) { ignoreLayout = true; gifLayoutManager.scrollToPositionWithOffset(1, 0); + gifSearchField.setVisibility(VISIBLE); + gifTabs.onPageScrolled(0, 0); firstGifAttach = false; ignoreLayout = false; } @@ -1192,112 +1426,33 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific } }; gifGridView.setClipToPadding(false); - gifGridView.setLayoutManager(gifLayoutManager = new ExtendedGridLayoutManager(context, 100) { - - private Size size = new Size(); - - @Override - protected Size getSizeForItem(int i) { - TLRPC.Document document; - ArrayList attributes; - if (gifGridView.getAdapter() == gifAdapter) { - document = recentGifs.get(i); - attributes = document.attributes; - } else if (!gifSearchAdapter.results.isEmpty()) { - TLRPC.BotInlineResult result = gifSearchAdapter.results.get(i); - document = result.document; - if (document != null) { - attributes = document.attributes; - } else if (result.content != null) { - attributes = result.content.attributes; - } else if (result.thumb != null) { - attributes = result.thumb.attributes; - } else { - attributes = null; - } - } else { - document = null; - attributes = null; - } - size.width = size.height = 100; - if (document != null) { - TLRPC.PhotoSize thumb = FileLoader.getClosestPhotoSizeWithSize(document.thumbs, 90); - if (thumb != null && thumb.w != 0 && thumb.h != 0) { - size.width = thumb.w; - size.height = thumb.h; - } - } - if (attributes != null) { - for (int b = 0; b < attributes.size(); b++) { - TLRPC.DocumentAttribute attribute = attributes.get(b); - if (attribute instanceof TLRPC.TL_documentAttributeImageSize || attribute instanceof TLRPC.TL_documentAttributeVideo) { - size.width = attribute.w; - size.height = attribute.h; - break; - } - } - } - return size; - } - - @Override - protected int getFlowItemCount() { - if (gifGridView.getAdapter() == gifSearchAdapter && gifSearchAdapter.results.isEmpty()) { - return 0; - } - return getItemCount() - 1; - } - }); - gifLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { - @Override - public int getSpanSize(int position) { - if (position == 0 || gifGridView.getAdapter() == gifSearchAdapter && gifSearchAdapter.results.isEmpty()) { - return gifLayoutManager.getSpanCount(); - } - return gifLayoutManager.getSpanSizeForItem(position - 1); - } - }); + gifGridView.setLayoutManager(gifLayoutManager = new GifLayoutManager(context)); gifGridView.addItemDecoration(new RecyclerView.ItemDecoration() { @Override public void getItemOffsets(android.graphics.Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { int position = parent.getChildAdapterPosition(view); + + if (gifGridView.getAdapter() == gifAdapter && position == gifAdapter.trendingSectionItem) { + outRect.set(0, 0, 0, 0); + return; + } + if (position != 0) { outRect.left = 0; outRect.bottom = 0; - if (!gifLayoutManager.isFirstRow(position - 1)) { - outRect.top = AndroidUtilities.dp(2); - } else { - outRect.top = 0; - } + outRect.top = AndroidUtilities.dp(2); outRect.right = gifLayoutManager.isLastInRow(position - 1) ? 0 : AndroidUtilities.dp(2); } else { - outRect.left = 0; - outRect.top = 0; - outRect.bottom = 0; - outRect.right = 0; + outRect.set(0, 0, 0, 0); } } }); - gifGridView.setPadding(0, 0, 0, AndroidUtilities.dp(44)); + gifGridView.setPadding(0, AndroidUtilities.dp(48 + 4), 0, AndroidUtilities.dp(44)); gifGridView.setOverScrollMode(RecyclerListView.OVER_SCROLL_NEVER); - gifGridView.setAdapter(gifAdapter = new GifAdapter(context)); - gifSearchAdapter = new GifSearchAdapter(context); - gifGridView.setOnScrollListener(new RecyclerView.OnScrollListener() { - @Override - public void onScrollStateChanged(RecyclerView recyclerView, int newState) { - if (newState == RecyclerView.SCROLL_STATE_DRAGGING) { - gifSearchField.hideKeyboard(); - } - } - - @Override - public void onScrolled(RecyclerView recyclerView, int dx, int dy) { - //checkEmojiTabY(recyclerView, dy); - checkGifSearchFieldScroll(false); - checkBottomTabScroll(dy); - } - }); - + ((SimpleItemAnimator) gifGridView.getItemAnimator()).setSupportsChangeAnimations(false); + gifGridView.setAdapter(gifAdapter = new GifAdapter(context, true)); + gifSearchAdapter = new GifAdapter(context); + gifGridView.setOnScrollListener(new TypedScrollListener(Type.GIFS)); gifGridView.setOnTouchListener((v, event) -> ContentPreviewViewer.getInstance().onTouch(event, gifGridView, 0, gifOnItemClickListener, contentPreviewViewerDelegate)); gifOnItemClickListener = (view, position) -> { if (delegate == null) { @@ -1305,19 +1460,27 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific } position--; if (gifGridView.getAdapter() == gifAdapter) { - if (position < 0 || position >= recentGifs.size()) { + if (position < 0) { return; } - delegate.onGifSelected(view, recentGifs.get(position), "gif", true, 0); + if (position < gifAdapter.recentItemsCount) { + delegate.onGifSelected(view, recentGifs.get(position), "gif", true, 0); + } else { + int resultPos = position; + if (gifAdapter.recentItemsCount > 0) { + resultPos -= gifAdapter.recentItemsCount; + resultPos--; // trending section item + } + if (resultPos >= 0 && resultPos < gifAdapter.results.size()) { + delegate.onGifSelected(view, gifAdapter.results.get(resultPos), gifAdapter.bot, true, 0); + } + } } else if (gifGridView.getAdapter() == gifSearchAdapter) { if (position < 0 || position >= gifSearchAdapter.results.size()) { return; } delegate.onGifSelected(view, gifSearchAdapter.results.get(position), gifSearchAdapter.bot, true, 0); - recentGifs = MediaDataController.getInstance(currentAccount).getRecentGifs(); - if (gifAdapter != null) { - gifAdapter.notifyDataSetChanged(); - } + updateRecentGifs(); } }; @@ -1325,7 +1488,51 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific gifContainer.addView(gifGridView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); gifSearchField = new SearchField(context, 2); + gifSearchField.setVisibility(INVISIBLE); gifContainer.addView(gifSearchField, new FrameLayout.LayoutParams(LayoutHelper.MATCH_PARENT, searchFieldHeight + AndroidUtilities.getShadowHeight())); + + gifTabs = new DraggableScrollSlidingTabStrip(context); + gifTabs.setType(ScrollSlidingTabStrip.Type.TAB); + gifTabs.setUnderlineHeight(AndroidUtilities.getShadowHeight()); + gifTabs.setIndicatorColor(Theme.getColor(Theme.key_chat_emojiPanelStickerPackSelectorLine)); + gifTabs.setUnderlineColor(Theme.getColor(Theme.key_chat_emojiPanelShadowLine)); + gifTabs.setBackgroundColor(Theme.getColor(Theme.key_chat_emojiPanelBackground)); + gifContainer.addView(gifTabs, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 48, Gravity.LEFT | Gravity.TOP)); + updateGifTabs(); + + gifTabs.setDelegate(page -> { + if (page == gifTrendingTabNum && gifAdapter.results.isEmpty()) { + return; + } + gifGridView.stopScroll(); + gifTabs.onPageScrolled(page, 0); + if (page == gifRecentTabNum || page == gifTrendingTabNum) { + gifSearchField.searchEditText.setText(""); + if (page == gifTrendingTabNum && gifAdapter.trendingSectionItem >= 1) { + gifLayoutManager.scrollToPositionWithOffset(gifAdapter.trendingSectionItem, -AndroidUtilities.dp(4)); + } else { + gifLayoutManager.scrollToPositionWithOffset(delegate != null && delegate.isExpanded() ? 0 : 1, 0); + } + if (page == gifTrendingTabNum) { + final ArrayList gifSearchEmojies = MessagesController.getInstance(currentAccount).gifSearchEmojies; + if (!gifSearchEmojies.isEmpty()) { + gifSearchPreloader.preload(gifSearchEmojies.get(0)); + } + } + } else { + final ArrayList gifSearchEmojies = MessagesController.getInstance(currentAccount).gifSearchEmojies; + gifSearchAdapter.searchEmoji(gifSearchEmojies.get(page - gifFirstEmojiTabNum)); + if (page - gifFirstEmojiTabNum > 0) { + gifSearchPreloader.preload(gifSearchEmojies.get(page - gifFirstEmojiTabNum - 1)); + } + if (page - gifFirstEmojiTabNum < gifSearchEmojies.size() - 1) { + gifSearchPreloader.preload(gifSearchEmojies.get(page - gifFirstEmojiTabNum + 1)); + } + } + resetTabsY(Type.GIFS); + }); + + gifAdapter.loadTrendingGifs(); } stickersContainer = new FrameLayout(context); @@ -1423,135 +1630,10 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific stickersGridView.setGlowColor(Theme.getColor(Theme.key_chat_emojiPanelBackground)); stickersContainer.addView(stickersGridView); - stickersTab = new ScrollSlidingTabStrip(context) { - - boolean startedScroll; - float lastX; - float lastTranslateX; - boolean first = true; - final int touchslop = ViewConfiguration.get(getContext()).getScaledTouchSlop(); - float downX, downY; - boolean draggingVertically, draggingHorizontally; - VelocityTracker vTracker; - - @Override - public boolean onInterceptTouchEvent(MotionEvent ev) { - if (getParent() != null) { - getParent().requestDisallowInterceptTouchEvent(true); - } - if (ev.getAction() == MotionEvent.ACTION_DOWN) { - draggingVertically = draggingHorizontally = false; - downX = ev.getRawX(); - downY = ev.getRawY(); - } else { - if (!draggingVertically && !draggingHorizontally && dragListener != null) { - if (Math.abs(ev.getRawY() - downY) >= touchslop) { - draggingVertically = true; - downY = ev.getRawY(); - dragListener.onDragStart(); - if (startedScroll) { - pager.endFakeDrag(); - startedScroll = false; - } - return true; - } - } - } - return super.onInterceptTouchEvent(ev); - } - - @Override - public boolean onTouchEvent(MotionEvent ev) { - if (first) { - first = false; - lastX = ev.getX(); - } - if (ev.getAction() == MotionEvent.ACTION_DOWN) { - draggingVertically = draggingHorizontally = false; - downX = ev.getRawX(); - downY = ev.getRawY(); - } else { - if (!draggingVertically && !draggingHorizontally && dragListener != null) { - if (Math.abs(ev.getRawX() - downX) >= touchslop) { - draggingHorizontally = true; - } else if (Math.abs(ev.getRawY() - downY) >= touchslop) { - draggingVertically = true; - downY = ev.getRawY(); - dragListener.onDragStart(); - if (startedScroll) { - pager.endFakeDrag(); - startedScroll = false; - } - } - } - } - if (draggingVertically) { - if (vTracker == null) { - vTracker = VelocityTracker.obtain(); - } - vTracker.addMovement(ev); - if (ev.getAction() == MotionEvent.ACTION_UP || ev.getAction() == MotionEvent.ACTION_CANCEL) { - vTracker.computeCurrentVelocity(1000); - float velocity = vTracker.getYVelocity(); - vTracker.recycle(); - vTracker = null; - if (ev.getAction() == MotionEvent.ACTION_UP) { - dragListener.onDragEnd(velocity); - } else { - dragListener.onDragCancel(); - } - first = true; - draggingVertically = draggingHorizontally = false; - } else { - dragListener.onDrag(Math.round(ev.getRawY() - downY)); - } - return true; - } - float newTranslationX = stickersTab.getTranslationX(); - if (stickersTab.getScrollX() == 0 && newTranslationX == 0) { - if (!startedScroll && lastX - ev.getX() < 0) { - if (pager.beginFakeDrag()) { - startedScroll = true; - lastTranslateX = stickersTab.getTranslationX(); - } - } else if (startedScroll && lastX - ev.getX() > 0) { - if (pager.isFakeDragging()) { - pager.endFakeDrag(); - startedScroll = false; - } - } - } - if (startedScroll) { - int dx = (int) (ev.getX() - lastX + newTranslationX - lastTranslateX); - try { - //pager.fakeDragBy(dx); - lastTranslateX = newTranslationX; - } catch (Exception e) { - try { - pager.endFakeDrag(); - } catch (Exception ignore) { - - } - startedScroll = false; - FileLog.e(e); - } - } - lastX = ev.getX(); - if (ev.getAction() == MotionEvent.ACTION_CANCEL || ev.getAction() == MotionEvent.ACTION_UP) { - first = true; - draggingVertically = draggingHorizontally = false; - if (startedScroll) { - pager.endFakeDrag(); - startedScroll = false; - } - } - return startedScroll || super.onTouchEvent(ev); - } - }; - stickersSearchField = new SearchField(context, 0); stickersContainer.addView(stickersSearchField, new FrameLayout.LayoutParams(LayoutHelper.MATCH_PARENT, searchFieldHeight + AndroidUtilities.getShadowHeight())); + stickersTab = new DraggableScrollSlidingTabStrip(context); stickersTab.setType(ScrollSlidingTabStrip.Type.TAB); stickersTab.setUnderlineHeight(AndroidUtilities.getShadowHeight()); stickersTab.setIndicatorColor(Theme.getColor(Theme.key_chat_emojiPanelStickerPackSelectorLine)); @@ -1594,19 +1676,39 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific public void setLastSearchKeyboardLanguage(String[] language) { lastSearchKeyboardLanguage = language; } + + @Override + public boolean canSendSticker() { + return true; + } + + @Override + public void onStickerSelected(TLRPC.Document sticker, Object parent, boolean clearsInputField, boolean notify, int scheduleDate) { + delegate.onStickerSelected(null, sticker, parent, notify, scheduleDate); + } + + @Override + public boolean canSchedule() { + return delegate.canSchedule(); + } + + @Override + public boolean isInScheduleMode() { + return delegate.isInScheduleMode(); + } }; this.delegate.showTrendingStickersAlert(new TrendingStickersLayout(context, trendingDelegate, primaryInstallingStickerSets, installingStickerSets, removingStickerSets)); return; } else if (page == recentTabBum) { stickersGridView.stopScroll(); stickersLayoutManager.scrollToPositionWithOffset(stickersGridAdapter.getPositionForPack("recent"), 0); - checkStickersTabY(null, 0); + resetTabsY(Type.STICKERS); stickersTab.onPageScrolled(recentTabBum, recentTabBum > 0 ? recentTabBum : stickersTabOffset); return; } else if (page == favTabBum) { stickersGridView.stopScroll(); stickersLayoutManager.scrollToPositionWithOffset(stickersGridAdapter.getPositionForPack("fav"), 0); - checkStickersTabY(null, 0); + resetTabsY(Type.STICKERS); stickersTab.onPageScrolled(favTabBum, favTabBum > 0 ? favTabBum : stickersTabOffset); return; } @@ -1621,26 +1723,11 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific firstStickersAttach = false; stickersGridView.stopScroll(); stickersLayoutManager.scrollToPositionWithOffset(stickersGridAdapter.getPositionForPack(stickerSets.get(index)), 0); - checkStickersTabY(null, 0); - checkScroll(); + resetTabsY(Type.STICKERS); + checkScroll(Type.STICKERS); }); - stickersGridView.setOnScrollListener(new RecyclerView.OnScrollListener() { - @Override - public void onScrollStateChanged(RecyclerView recyclerView, int newState) { - if (newState == RecyclerView.SCROLL_STATE_DRAGGING) { - stickersSearchField.hideKeyboard(); - } - } - - @Override - public void onScrolled(RecyclerView recyclerView, int dx, int dy) { - checkScroll(); - checkStickersTabY(recyclerView, dy); - checkStickersSearchFieldScroll(false); - checkBottomTabScroll(dy); - } - }); + stickersGridView.setOnScrollListener(new TypedScrollListener(Type.STICKERS)); } pager = new ViewPager(context) { @@ -1998,29 +2085,13 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific } public void showSearchField(boolean show) { - GridLayoutManager layoutManager; - ScrollSlidingTabStrip tabStrip; for (int a = 0; a < 3; a++) { - if (a == 0) { - layoutManager = emojiLayoutManager; - tabStrip = emojiTabs; - } else if (a == 1) { - layoutManager = gifLayoutManager; - tabStrip = null; - } else { - layoutManager = stickersLayoutManager; - tabStrip = stickersTab; - } - if (layoutManager == null) { - continue; - } + final GridLayoutManager layoutManager = getLayoutManagerForType(a); int position = layoutManager.findFirstVisibleItemPosition(); if (show) { if (position == 1 || position == 2) { layoutManager.scrollToPosition(0); - if (tabStrip != null) { - tabStrip.setTranslationY(0); - } + resetTabsY(a); } } else { if (position == 0) { @@ -2064,7 +2135,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific } else if (a == 1) { currentField = gifSearchField; gridView = gifGridView; - tabStrip = null; + tabStrip = gifTabs; layoutManager = gifLayoutManager; } else { currentField = stickersSearchField; @@ -2076,7 +2147,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific continue; } - if (currentField != gifSearchField && searchField == currentField && delegate != null && delegate.isExpanded()) { + if (searchField == currentField && delegate != null && delegate.isExpanded()) { searchAnimation = new AnimatorSet(); if (tabStrip != null) { searchAnimation.playTogether( @@ -2097,7 +2168,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific gridView.setTranslationY(0); if (gridView == stickersGridView) { gridView.setPadding(0, AndroidUtilities.dp(4), 0, 0); - } else if (gridView == emojiGridView) { + } else if (gridView == emojiGridView || gridView == gifGridView) { gridView.setPadding(0, 0, 0, 0); } searchAnimation = null; @@ -2119,9 +2190,17 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific } if (gridView == stickersGridView) { gridView.setPadding(0, AndroidUtilities.dp(4), 0, 0); - } else if (gridView == emojiGridView) { + } else if (gridView == emojiGridView || gridView == gifGridView) { gridView.setPadding(0, 0, 0, 0); } + if (gridView == gifGridView) { + if (gifSearchAdapter.showTrendingWhenSearchEmpty = gifAdapter.results.size() > 0) { + gifSearchAdapter.search(""); + if (gifGridView.getAdapter() != gifSearchAdapter) { + gifGridView.setAdapter(gifSearchAdapter); + } + } + } layoutManager.scrollToPositionWithOffset(0, 0); } } @@ -2174,6 +2253,10 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific } } + if (gifSearchAdapter != null) { + gifSearchAdapter.showTrendingWhenSearchEmpty = false; + } + for (int a = 0; a < 3; a++) { SearchField currentField; RecyclerListView gridView; @@ -2189,7 +2272,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific currentField = gifSearchField; gridView = gifGridView; layoutManager = gifLayoutManager; - tabStrip = null; + tabStrip = gifTabs; } else { currentField = stickersSearchField; gridView = stickersGridView; @@ -2221,7 +2304,6 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific @Override public void onAnimationEnd(Animator animation) { if (animation.equals(searchAnimation)) { - int pos = layoutManager.findFirstVisibleItemPosition(); int firstVisPos = layoutManager.findFirstVisibleItemPosition(); int top = 0; if (firstVisPos != RecyclerView.NO_POSITION) { @@ -2231,15 +2313,13 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific gridView.setTranslationY(0); if (gridView == stickersGridView) { gridView.setPadding(0, AndroidUtilities.dp(48 + 4), 0, AndroidUtilities.dp(44)); + } else if (gridView == gifGridView) { + gridView.setPadding(0, AndroidUtilities.dp(48 + 4), 0, AndroidUtilities.dp(44)); } else if (gridView == emojiGridView) { gridView.setPadding(0, AndroidUtilities.dp(38), 0, AndroidUtilities.dp(44)); } - if (gridView == gifGridView) { - layoutManager.scrollToPositionWithOffset(1, 0); - } else { - if (firstVisPos != RecyclerView.NO_POSITION) { - layoutManager.scrollToPositionWithOffset(firstVisPos, top - gridView.getPaddingTop()); - } + if (firstVisPos != RecyclerView.NO_POSITION) { + layoutManager.scrollToPositionWithOffset(firstVisPos, top - gridView.getPaddingTop()); } searchAnimation = null; } @@ -2254,16 +2334,18 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific }); searchAnimation.start(); } else { - layoutManager.scrollToPositionWithOffset(1, 0); currentField.setTranslationY(AndroidUtilities.dp(48) - searchFieldHeight); if (tabStrip != null) { tabStrip.setTranslationY(0); } if (gridView == stickersGridView) { gridView.setPadding(0, AndroidUtilities.dp(48 + 4), 0, AndroidUtilities.dp(44)); + } else if (gridView == gifGridView) { + gridView.setPadding(0, AndroidUtilities.dp(48 + 4), 0, AndroidUtilities.dp(44)); } else if (gridView == emojiGridView) { gridView.setPadding(0, AndroidUtilities.dp(38), 0, AndroidUtilities.dp(44)); } + layoutManager.scrollToPositionWithOffset(1, 0); } } if (!animated) { @@ -2410,30 +2492,145 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific } } - private void checkStickersTabY(View list, int dy) { - if (list == null) { - stickersTab.setTranslationY(stickersMinusDy = 0); - return; - } - if (list.getVisibility() != VISIBLE) { + private void checkTabsY(@Type int type, int dy) { + if (type == Type.EMOJIS) { + checkEmojiTabY(emojiGridView, dy); return; } if (delegate != null && delegate.isSearchOpened()) { return; } - if (dy > 0 && stickersGridView != null && stickersGridView.getVisibility() == VISIBLE) { - RecyclerView.ViewHolder holder = stickersGridView.findViewHolderForAdapterPosition(0); - if (holder != null && holder.itemView.getTop() + searchFieldHeight >= stickersGridView.getPaddingTop()) { + final RecyclerListView listView = getListViewForType(type); + if (dy > 0 && listView != null && listView.getVisibility() == VISIBLE) { + RecyclerView.ViewHolder holder = listView.findViewHolderForAdapterPosition(0); + if (holder != null && holder.itemView.getTop() + searchFieldHeight >= listView.getPaddingTop()) { return; } } - stickersMinusDy -= dy; - if (stickersMinusDy > 0) { - stickersMinusDy = 0; - } else if (stickersMinusDy < -AndroidUtilities.dp(48 * 6)) { - stickersMinusDy = -AndroidUtilities.dp(48 * 6); + tabsMinusDy[type] -= dy; + if (tabsMinusDy[type] > 0) { + tabsMinusDy[type] = 0; + } else if (tabsMinusDy[type] < -AndroidUtilities.dp(48 * 6)) { + tabsMinusDy[type] = -AndroidUtilities.dp(48 * 6); + } + getTabsForType(type).setTranslationY(Math.max(-AndroidUtilities.dp(48), tabsMinusDy[type])); + } + + private void resetTabsY(@Type int type) { + if (delegate != null && delegate.isSearchOpened()) { + return; + } + getTabsForType(type).setTranslationY(tabsMinusDy[type] = 0); + } + + private void animateTabsY(@Type int type) { + if (delegate != null && delegate.isSearchOpened()) { + return; + } + final float tabsHeight = AndroidUtilities.dpf2(type == Type.EMOJIS ? 38 : 48); + final float fraction = tabsMinusDy[type] / -tabsHeight; + if (fraction <= 0f || fraction >= 1f) { + animateSearchField(type); + return; + } + final ScrollSlidingTabStrip tabStrip = getTabsForType(type); + final int endValue = fraction > 0.5f ? (int) -Math.ceil(tabsHeight) : 0; + if (fraction > 0.5f) { + animateSearchField(type, false, endValue); + } + if (type == Type.EMOJIS) { + checkEmojiShadow(endValue); + } + if (tabsYAnimators[type] == null) { + tabsYAnimators[type] = ObjectAnimator.ofFloat(tabStrip, View.TRANSLATION_Y, tabStrip.getTranslationY(), endValue); + tabsYAnimators[type].addUpdateListener(a -> tabsMinusDy[type] = (int) (float) a.getAnimatedValue()); + tabsYAnimators[type].setDuration(200); + } else { + tabsYAnimators[type].setFloatValues(tabStrip.getTranslationY(), endValue); + } + tabsYAnimators[type].start(); + } + + private void stopAnimatingTabsY(@Type int type) { + if (tabsYAnimators[type] != null && tabsYAnimators[type].isRunning()) { + tabsYAnimators[type].cancel(); + } + } + + private void animateSearchField(@Type int type) { + final RecyclerListView listView = getListViewForType(type); + final int tabsHeight = AndroidUtilities.dp(type == Type.EMOJIS ? 38 : 48); + final RecyclerView.ViewHolder holder = listView.findViewHolderForAdapterPosition(0); + if (holder != null) { + final float fraction = (holder.itemView.getBottom() - (tabsHeight + tabsMinusDy[type])) / (float) searchFieldHeight; + if (fraction > 0f || fraction < 1f) { + animateSearchField(type, fraction > 0.5f, tabsMinusDy[type]); + } + } + } + + private void animateSearchField(@Type int type, boolean visible, int tabsMinusDy) { + if (getListViewForType(type).findViewHolderForAdapterPosition(0) == null) { + return; + } + final LinearSmoothScroller smoothScroller = new LinearSmoothScroller(getContext()) { + @Override + protected int getVerticalSnapPreference() { + return LinearSmoothScroller.SNAP_TO_START; + } + + @Override + protected int calculateTimeForDeceleration(int dx) { + return super.calculateTimeForDeceleration(dx) * 16; + } + + @Override + public int calculateDtToFit(int viewStart, int viewEnd, int boxStart, int boxEnd, int snapPreference) { + return super.calculateDtToFit(viewStart, viewEnd, boxStart, boxEnd, snapPreference) + tabsMinusDy; + } + }; + smoothScroller.setTargetPosition(visible ? 0 : 1); + getLayoutManagerForType(type).startSmoothScroll(smoothScroller); + } + + private ScrollSlidingTabStrip getTabsForType(@Type int type) { + switch (type) { + case Type.STICKERS: return stickersTab; + case Type.EMOJIS: return emojiTabs; + case Type.GIFS: return gifTabs; + default: + throw new IllegalArgumentException("Unexpected argument: " + type); + } + } + + private RecyclerListView getListViewForType(@Type int type) { + switch (type) { + case Type.STICKERS: return stickersGridView; + case Type.EMOJIS: return emojiGridView; + case Type.GIFS: return gifGridView; + default: + throw new IllegalArgumentException("Unexpected argument: " + type); + } + } + + private GridLayoutManager getLayoutManagerForType(@Type int type) { + switch (type) { + case Type.STICKERS: return stickersLayoutManager; + case Type.EMOJIS: return emojiLayoutManager; + case Type.GIFS: return gifLayoutManager; + default: + throw new IllegalArgumentException("Unexpected argument: " + type); + } + } + + private SearchField getSearchFieldForType(@Type int type) { + switch (type) { + case Type.STICKERS: return stickersSearchField; + case Type.EMOJIS: return emojiSearchField; + case Type.GIFS: return gifSearchField; + default: + throw new IllegalArgumentException("Unexpected argument: " + type); } - stickersTab.setTranslationY(Math.max(-AndroidUtilities.dp(48), stickersMinusDy)); } private void checkEmojiSearchFieldScroll(boolean isLayout) { @@ -2457,13 +2654,21 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific emojiSearchField.setTranslationY(-searchFieldHeight); } emojiSearchField.showShadow(false, !isLayout); - showEmojiShadow(holder == null || holder.itemView.getTop() < AndroidUtilities.dp(38) - searchFieldHeight + emojiTabs.getTranslationY(), !isLayout); + checkEmojiShadow(Math.round(emojiTabs.getTranslationY())); + } + + private void checkEmojiShadow(int tabsTranslationY) { + if (tabsYAnimators[Type.EMOJIS] != null && tabsYAnimators[Type.EMOJIS].isRunning()) { + return; + } + final RecyclerView.ViewHolder holder = emojiGridView.findViewHolderForAdapterPosition(0); + final int translatedBottom = AndroidUtilities.dp(38) + tabsTranslationY; + showEmojiShadow(translatedBottom > 0 && (holder == null || holder.itemView.getBottom() < translatedBottom), !isLayout); } private void checkEmojiTabY(View list, int dy) { if (list == null) { - emojiTabs.setTranslationY(emojiMinusDy = 0); - emojiTabsShadow.setTranslationY(emojiMinusDy); + emojiTabs.setTranslationY(tabsMinusDy[Type.EMOJIS] = 0); return; } if (list.getVisibility() != VISIBLE) { @@ -2478,21 +2683,23 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific return; } } - emojiMinusDy -= dy; - if (emojiMinusDy > 0) { - emojiMinusDy = 0; - } else if (emojiMinusDy < -AndroidUtilities.dp(48 * 6)) { - emojiMinusDy = -AndroidUtilities.dp(48 * 6); + tabsMinusDy[Type.EMOJIS] -= dy; + if (tabsMinusDy[Type.EMOJIS] > 0) { + tabsMinusDy[Type.EMOJIS] = 0; + } else if (tabsMinusDy[Type.EMOJIS] < -AndroidUtilities.dp(48 * 6)) { + tabsMinusDy[Type.EMOJIS] = -AndroidUtilities.dp(48 * 6); } - emojiTabs.setTranslationY(Math.max(-AndroidUtilities.dp(38), emojiMinusDy)); - emojiTabsShadow.setTranslationY(emojiTabs.getTranslationY()); + emojiTabs.setTranslationY(Math.max(-AndroidUtilities.dp(38), tabsMinusDy[Type.EMOJIS])); } private void checkGifSearchFieldScroll(boolean isLayout) { - if (gifGridView != null && gifGridView.getAdapter() == gifSearchAdapter && !gifSearchAdapter.searchEndReached && gifSearchAdapter.reqId == 0 && !gifSearchAdapter.results.isEmpty()) { - int position = gifLayoutManager.findLastVisibleItemPosition(); - if (position != RecyclerView.NO_POSITION && position > gifLayoutManager.getItemCount() - 5) { - gifSearchAdapter.search(gifSearchAdapter.lastSearchImageString, gifSearchAdapter.nextSearchOffset, true); + if (gifGridView != null && gifGridView.getAdapter() instanceof GifAdapter) { + final GifAdapter adapter = (GifAdapter) gifGridView.getAdapter(); + if (!adapter.searchEndReached && adapter.reqId == 0 && !adapter.results.isEmpty()) { + int position = gifLayoutManager.findLastVisibleItemPosition(); + if (position != RecyclerView.NO_POSITION && position > gifLayoutManager.getItemCount() - 5) { + adapter.search(adapter.lastSearchImageString, adapter.nextSearchOffset, true, adapter.lastSearchIsEmoji, adapter.lastSearchIsEmoji); + } } } if (delegate != null && delegate.isSearchOpened()) { @@ -2516,23 +2723,38 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific gifSearchField.showShadow(false, !isLayout); } - private void checkScroll() { - int firstVisibleItem = stickersLayoutManager.findFirstVisibleItemPosition(); - if (firstVisibleItem == RecyclerView.NO_POSITION) { - return; + private void scrollGifsToTop() { + gifLayoutManager.scrollToPositionWithOffset(delegate != null && delegate.isExpanded() ? 0 : 1, 0); + resetTabsY(Type.GIFS); + } + + private void checkScroll(@Type int type) { + if (type == Type.STICKERS) { + int firstVisibleItem = stickersLayoutManager.findFirstVisibleItemPosition(); + if (firstVisibleItem == RecyclerView.NO_POSITION) { + return; + } + if (stickersGridView == null) { + return; + } + int firstTab; + if (favTabBum > 0) { + firstTab = favTabBum; + } else if (recentTabBum > 0) { + firstTab = recentTabBum; + } else { + firstTab = stickersTabOffset; + } + stickersTab.onPageScrolled(stickersGridAdapter.getTabForPosition(firstVisibleItem), firstTab); + } else if (type == Type.GIFS) { + if (gifGridView.getAdapter() == gifAdapter && gifAdapter.trendingSectionItem >= 0 && gifTrendingTabNum >= 0 && gifRecentTabNum >= 0) { + int firstVisibleItem = gifLayoutManager.findFirstVisibleItemPosition(); + if (firstVisibleItem == RecyclerView.NO_POSITION) { + return; + } + gifTabs.onPageScrolled(firstVisibleItem >= gifAdapter.trendingSectionItem ? gifTrendingTabNum : gifRecentTabNum, 0); + } } - if (stickersGridView == null) { - return; - } - int firstTab; - if (favTabBum > 0) { - firstTab = favTabBum; - } else if (recentTabBum > 0) { - firstTab = recentTabBum; - } else { - firstTab = stickersTabOffset; - } - stickersTab.onPageScrolled(stickersGridAdapter.getTabForPosition(firstVisibleItem), firstTab); } private void saveNewPage() { @@ -2631,7 +2853,6 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific stickersTab.beginUpdate(getParent() != null && getVisibility() == VISIBLE && (installingStickerSets.size() != 0 || removingStickerSets.size() != 0)); final MediaDataController mediaDataController = MediaDataController.getInstance(currentAccount); - boolean hasStickers = false; if (!mediaDataController.getFeaturedStickerSets().isEmpty()) { final int id = mediaDataController.getUnreadStickerSets().isEmpty() ? 2 : 3; @@ -2645,14 +2866,12 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific favTabBum = stickersTabOffset; stickersTabOffset++; stickersTab.addIconTab(1, stickerIcons[1]).setContentDescription(LocaleController.getString("FavoriteStickers", R.string.FavoriteStickers)); - hasStickers = true; } if (!recentStickers.isEmpty()) { recentTabBum = stickersTabOffset; stickersTabOffset++; stickersTab.addIconTab(0, stickerIcons[0]).setContentDescription(LocaleController.getString("RecentStickers", R.string.RecentStickers)); - hasStickers = true; } stickerSets.clear(); @@ -2686,7 +2905,6 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific continue; } stickerSets.add(pack); - hasStickers = true; } if (info != null) { long hiddenStickerSetId = MessagesController.getEmojiSettings(currentAccount).getLong("group_hide_stickers_" + info.id, -1); @@ -2731,7 +2949,6 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific a--; } else { stickersTab.addStickerTab(chat); - hasStickers = true; } } else { TLRPC.TL_messages_stickerSet stickerSet = stickerSets.get(a); @@ -2743,7 +2960,6 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific thumb = document; } stickersTab.addStickerTab(thumb, document, stickerSet).setContentDescription(stickerSet.set.title + ", " + LocaleController.getString("AccDescrStickerSet", R.string.AccDescrStickerSet)); - hasStickers = true; } } stickersTab.commitUpdate(); @@ -2772,6 +2988,54 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific } } + private void updateGifTabs() { + final int lastPosition = gifTabs.getCurrentPosition(); + + final boolean wasRecentTabSelected = lastPosition == gifRecentTabNum; + final boolean hadRecent = gifRecentTabNum >= 0; + final boolean hasRecent = !recentGifs.isEmpty(); + + gifTabs.beginUpdate(false); + + int gifTabsCount = 0; + gifRecentTabNum = -2; + gifTrendingTabNum = -2; + gifFirstEmojiTabNum = -2; + + if (hasRecent) { + gifRecentTabNum = gifTabsCount++; + gifTabs.addIconTab(0, gifIcons[0]); + } + + gifTrendingTabNum = gifTabsCount++; + gifTabs.addIconTab(1, gifIcons[1]); + + gifFirstEmojiTabNum = gifTabsCount; + final int hPadding = AndroidUtilities.dp(13); + final int vPadding = AndroidUtilities.dp(11); + final List gifSearchEmojies = MessagesController.getInstance(currentAccount).gifSearchEmojies; + for (int i = 0, N = gifSearchEmojies.size(); i < N; i++) { + final Emoji.EmojiDrawable emojiDrawable = Emoji.getEmojiDrawable(gifSearchEmojies.get(i)); + if (emojiDrawable != null) { + gifTabsCount++; + gifTabs.addIconTab(3 + i, emojiDrawable).setPadding(hPadding, vPadding, hPadding, vPadding); + } + } + + gifTabs.commitUpdate(); + gifTabs.updateTabStyles(); + + if (wasRecentTabSelected && !hasRecent) { + gifTabs.selectTab(gifTrendingTabNum); + } else if (ViewCompat.isLaidOut(gifTabs)) { + if (hasRecent && !hadRecent) { + gifTabs.onPageScrolled(lastPosition + 1, 0); + } else if (!hasRecent && hadRecent) { + gifTabs.onPageScrolled(lastPosition - 1, 0); + } + } + } + public void addRecentSticker(TLRPC.Document document) { if (document == null) { return; @@ -2792,10 +3056,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific return; } boolean wasEmpty = recentGifs.isEmpty(); - recentGifs = MediaDataController.getInstance(currentAccount).getRecentGifs(); - if (gifAdapter != null) { - gifAdapter.notifyDataSetChanged(); - } + updateRecentGifs(); if (wasEmpty) { updateStickerTabs(); } @@ -2865,6 +3126,11 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific stickersTab.setUnderlineColor(Theme.getColor(Theme.key_chat_emojiPanelShadowLine)); stickersTab.setBackgroundColor(Theme.getColor(Theme.key_chat_emojiPanelBackground)); } + if (gifTabs != null) { + gifTabs.setIndicatorColor(Theme.getColor(Theme.key_chat_emojiPanelStickerPackSelectorLine)); + gifTabs.setUnderlineColor(Theme.getColor(Theme.key_chat_emojiPanelShadowLine)); + gifTabs.setBackgroundColor(Theme.getColor(Theme.key_chat_emojiPanelBackground)); + } if (backspaceButton != null) { backspaceButton.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_chat_emojiPanelBackspace), PorterDuff.Mode.MULTIPLY)); if (emojiSearchField == null) { @@ -2885,6 +3151,11 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific ((ShapeDrawable) mediaBanTooltip.getBackground()).getPaint().setColor(Theme.getColor(Theme.key_chat_gifSaveHintBackground)); mediaBanTooltip.setTextColor(Theme.getColor(Theme.key_chat_gifSaveHintText)); } + if (gifSearchAdapter != null) { + gifSearchAdapter.progressEmptyView.imageView.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_chat_emojiPanelEmptyText), PorterDuff.Mode.MULTIPLY)); + gifSearchAdapter.progressEmptyView.textView.setTextColor(Theme.getColor(Theme.key_chat_emojiPanelEmptyText)); + gifSearchAdapter.progressEmptyView.progressView.setProgressColor(Theme.getColor(Theme.key_progressCircle)); + } for (int a = 0; a < tabIcons.length; a++) { Theme.setEmojiDrawableColor(tabIcons[a], Theme.getColor(Theme.key_chat_emojiBottomPanelIcon), false); @@ -2898,6 +3169,10 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific Theme.setEmojiDrawableColor(stickerIcons[a], Theme.getColor(Theme.key_chat_emojiPanelIcon), false); Theme.setEmojiDrawableColor(stickerIcons[a], Theme.getColor(Theme.key_chat_emojiPanelIconSelected), true); } + for (int a = 0; a < gifIcons.length; a++) { + Theme.setEmojiDrawableColor(gifIcons[a], Theme.getColor(Theme.key_chat_emojiPanelIcon), false); + Theme.setEmojiDrawableColor(gifIcons[a], Theme.getColor(Theme.key_chat_emojiPanelIconSelected), true); + } } @Override @@ -3016,10 +3291,10 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific pager.setCurrentItem(2, false); } if (stickersTab != null) { - if (recentTabBum >= 0) { - stickersTab.selectTab(recentTabBum); - } else if (favTabBum >= 0) { + if (favTabBum >= 0) { stickersTab.selectTab(favTabBum); + } else if (recentTabBum >= 0) { + stickersTab.selectTab(recentTabBum); } else { stickersTab.selectTab(stickersTabOffset); } @@ -3030,6 +3305,9 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific if (pager.getCurrentItem() != 1) { pager.setCurrentItem(1, false); } + if (gifTabs != null) { + gifTabs.selectTab(0); + } } } @@ -3098,10 +3376,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific private void checkDocuments(boolean isGif) { if (isGif) { - recentGifs = MediaDataController.getInstance(currentAccount).getRecentGifs(); - if (gifAdapter != null) { - gifAdapter.notifyDataSetChanged(); - } + updateRecentGifs(); } else { int previousCount = recentStickers.size(); int previousCount2 = favouriteStickers.size(); @@ -3127,6 +3402,17 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific } } + private void updateRecentGifs() { + final boolean wasEmpty = recentGifs.isEmpty(); + recentGifs = MediaDataController.getInstance(currentAccount).getRecentGifs(); + if (gifTabs != null && wasEmpty && !recentGifs.isEmpty() || !wasEmpty && recentGifs.isEmpty()) { + updateGifTabs(); + } + if (gifAdapter != null) { + gifAdapter.notifyDataSetChanged(); + } + } + public void setStickersBanned(boolean value, int chatId) { if (typeTabs == null) { return; @@ -3307,6 +3593,9 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific if (pickerView != null) { pickerView.invalidate(); } + if (gifTabs != null) { + gifTabs.invalidateTabs(); + } } else if (id == NotificationCenter.newEmojiSuggestionsAvailable) { if (emojiGridView != null && needEmojiSearch && (emojiSearchField.progressDrawable.isAnimating() || emojiGridView.getAdapter() == emojiSearchAdapter) && !TextUtils.isEmpty(emojiSearchAdapter.lastSearchEmojiString)) { emojiSearchAdapter.search(emojiSearchAdapter.lastSearchEmojiString); @@ -4008,11 +4297,419 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific } } + private class GifAdapter extends RecyclerListView.SelectionAdapter { + private final Context context; + private final boolean withRecent; + private final GifProgressEmptyView progressEmptyView; + private final int maxRecentRowsCount; + + private int reqId; + private TLRPC.User bot; + private String nextSearchOffset; + private boolean searchEndReached; + private boolean lastSearchIsEmoji; + private String lastSearchImageString; + private ArrayList results = new ArrayList<>(); + private HashMap resultsMap = new HashMap<>(); + + private Runnable searchRunnable; + private boolean searchingUser; + + private int itemsCount; + private int recentItemsCount; + private int trendingSectionItem = -1; + private int firstResultItem = -1; + + private boolean showTrendingWhenSearchEmpty; + + public GifAdapter(Context context) { + this(context, false, 0); + } + + public GifAdapter(Context context, boolean withRecent) { + this(context, withRecent, withRecent ? Integer.MAX_VALUE : 0); + } + + public GifAdapter(Context context, boolean withRecent, int maxRecentRowsCount) { + this.context = context; + this.withRecent = withRecent; + this.maxRecentRowsCount = maxRecentRowsCount; + this.progressEmptyView = withRecent ? null : new GifProgressEmptyView(context); + } + + @Override + public boolean isEnabled(RecyclerView.ViewHolder holder) { + return false; + } + + @Override + public int getItemCount() { + return itemsCount; + } + + @Override + public int getItemViewType(int position) { + if (position == 0) { + return 1; // search field + } else if (withRecent && position == trendingSectionItem) { + return 2; // trending section + } else if (!withRecent && results.isEmpty()) { + return 3; // progress empty view + } + return 0; // gif + } + + @Override + public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view; + switch (viewType) { + case 0: + ContextLinkCell cell = new ContextLinkCell(context); + cell.setContentDescription(LocaleController.getString("AttachGif", R.string.AttachGif)); + cell.setCanPreviewGif(true); + view = cell; + break; + case 1: + view = new View(getContext()); + view.setLayoutParams(new RecyclerView.LayoutParams(LayoutHelper.MATCH_PARENT, searchFieldHeight)); + break; + case 2: + final StickerSetNameCell cell1 = new StickerSetNameCell(context, false); + cell1.setText(LocaleController.getString("FeaturedGifs", R.string.FeaturedGifs), 0); + view = cell1; + final RecyclerView.LayoutParams lp = new RecyclerView.LayoutParams(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT); + lp.topMargin = AndroidUtilities.dp(2.5f); + lp.bottomMargin = AndroidUtilities.dp(5.5f); + view.setLayoutParams(lp); + break; + case 3: + default: + view = progressEmptyView; + view.setLayoutParams(new RecyclerView.LayoutParams(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); + break; + } + return new RecyclerListView.Holder(view); + } + + @Override + public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { + switch (holder.getItemViewType()) { + case 0: { + ContextLinkCell cell = (ContextLinkCell) holder.itemView; + if (firstResultItem >= 0 && position >= firstResultItem) { + cell.setLink(results.get(position - firstResultItem), bot, true, false, false, true); + } else { + cell.setGif(recentGifs.get(position - 1), false); + } + break; + } + } + } + + @Override + public void notifyDataSetChanged() { + updateRecentItemsCount(); + updateItems(); + super.notifyDataSetChanged(); + } + + private void updateItems() { + trendingSectionItem = -1; + firstResultItem = -1; + + itemsCount = 1; // search field + + if (withRecent) { + itemsCount += recentItemsCount; + } + + if (!results.isEmpty()) { + if (withRecent && recentItemsCount > 0) { + trendingSectionItem = itemsCount++; + } + firstResultItem = itemsCount; + itemsCount += results.size(); + } else if (!withRecent) { + itemsCount++; // progress empty view + } + } + + private void updateRecentItemsCount() { + if (!withRecent || maxRecentRowsCount == 0) { + return; + } + + if (maxRecentRowsCount == Integer.MAX_VALUE) { + recentItemsCount = recentGifs.size(); + return; + } + + if (gifGridView.getMeasuredWidth() == 0) { + return; + } + + final int listWidth = gifGridView.getMeasuredWidth(); + final int spanCount = gifLayoutManager.getSpanCount(); + final int preferredRowSize = AndroidUtilities.dp(100); + + int rowCount = 0; + int spanLeft = spanCount; + int currentItemsInRow = 0; + recentItemsCount = 0; + + for (int i = 0, N = recentGifs.size(); i < N; i++) { + final Size size = gifLayoutManager.fixSize(gifLayoutManager.getSizeForItem(recentGifs.get(i))); + int requiredSpan = Math.min(spanCount, (int) Math.floor(spanCount * (size.width / size.height * preferredRowSize / listWidth))); + if (spanLeft < requiredSpan) { // move to a new row + recentItemsCount += currentItemsInRow; + if (++rowCount == maxRecentRowsCount) { + break; + } + currentItemsInRow = 0; + spanLeft = spanCount; + } + currentItemsInRow++; + spanLeft -= requiredSpan; + } + + if (rowCount < maxRecentRowsCount) { + recentItemsCount += currentItemsInRow; + } + } + + public void loadTrendingGifs() { + search("", "", true, true, true); + } + + private void searchBotUser() { + if (searchingUser) { + return; + } + searchingUser = true; + TLRPC.TL_contacts_resolveUsername req = new TLRPC.TL_contacts_resolveUsername(); + req.username = MessagesController.getInstance(currentAccount).gifSearchBot; + ConnectionsManager.getInstance(currentAccount).sendRequest(req, (response, error) -> { + if (response != null) { + AndroidUtilities.runOnUIThread(() -> { + TLRPC.TL_contacts_resolvedPeer res = (TLRPC.TL_contacts_resolvedPeer) response; + MessagesController.getInstance(currentAccount).putUsers(res.users, false); + MessagesController.getInstance(currentAccount).putChats(res.chats, false); + MessagesStorage.getInstance(currentAccount).putUsersAndChats(res.users, res.chats, true, true); + String str = lastSearchImageString; + lastSearchImageString = null; + search(str, "", false); + }); + } + }); + } + + public void search(String text) { + if (withRecent) { + return; + } + if (reqId != 0) { + if (reqId >= 0) { + ConnectionsManager.getInstance(currentAccount).cancelRequest(reqId, true); + } + reqId = 0; + } + lastSearchIsEmoji = false; + if (progressEmptyView != null) { + progressEmptyView.setLoadingState(false); + } + if (searchRunnable != null) { + AndroidUtilities.cancelRunOnUIThread(searchRunnable); + } + if (TextUtils.isEmpty(text)) { + lastSearchImageString = null; + if (showTrendingWhenSearchEmpty) { + loadTrendingGifs(); + } else { + final int page = gifTabs.getCurrentPosition(); + if (page == gifRecentTabNum || page == gifTrendingTabNum) { + if (gifGridView.getAdapter() != gifAdapter) { + gifGridView.setAdapter(gifAdapter); + } + } else { + searchEmoji(MessagesController.getInstance(currentAccount).gifSearchEmojies.get(page - gifFirstEmojiTabNum)); + } + } + return; + } else { + lastSearchImageString = text.toLowerCase(); + } + if (!TextUtils.isEmpty(lastSearchImageString)) { + AndroidUtilities.runOnUIThread(searchRunnable = new Runnable() { + @Override + public void run() { + search(text, "", true); + } + }, 300); + } + } + + public void searchEmoji(String emoji) { + if (lastSearchIsEmoji && TextUtils.equals(lastSearchImageString, emoji)) { + gifLayoutManager.scrollToPositionWithOffset(1, 0); + return; + } + search(emoji, "", true, true, true); + } + + protected void search(final String query, final String offset, boolean searchUser) { + search(query, offset, searchUser, false, false); + } + + protected void search(final String query, final String offset, boolean searchUser, boolean isEmoji, boolean cache) { + if (reqId != 0) { + if (reqId >= 0) { + ConnectionsManager.getInstance(currentAccount).cancelRequest(reqId, true); + } + reqId = 0; + } + + lastSearchImageString = query; + lastSearchIsEmoji = isEmoji; + + if (progressEmptyView != null) { + progressEmptyView.setLoadingState(isEmoji); + } + + TLObject object = MessagesController.getInstance(currentAccount).getUserOrChat(MessagesController.getInstance(currentAccount).gifSearchBot); + if (!(object instanceof TLRPC.User)) { + if (searchUser) { + searchBotUser(); + if (!withRecent) { + gifSearchField.progressDrawable.startAnimation(); + } + } + return; + } + if (!withRecent && TextUtils.isEmpty(offset)) { + gifSearchField.progressDrawable.startAnimation(); + } + + bot = (TLRPC.User) object; + final String key = "gif_search_" + query + "_" + offset; + final RequestDelegate requestDelegate = (response, error) -> AndroidUtilities.runOnUIThread(() -> processResponse(query, offset, searchUser, isEmoji, cache, key, response)); + + if (!cache && !withRecent && isEmoji && TextUtils.isEmpty(offset)) { + results.clear(); + resultsMap.clear(); + if (gifGridView.getAdapter() != this) { + gifGridView.setAdapter(this); + } + notifyDataSetChanged(); + scrollGifsToTop(); + } + + if (cache && gifCache.containsKey(key)) { + processResponse(query, offset, searchUser, isEmoji, true, key, gifCache.get(key)); + return; + } + + if (gifSearchPreloader.isLoading(key)) { + return; + } + + if (cache) { + reqId = -1; + MessagesStorage.getInstance(currentAccount).getBotCache(key, requestDelegate); + } else { + TLRPC.TL_messages_getInlineBotResults req = new TLRPC.TL_messages_getInlineBotResults(); + req.query = query == null ? "" : query; + req.bot = MessagesController.getInstance(currentAccount).getInputUser(bot); + req.offset = offset; + req.peer = new TLRPC.TL_inputPeerEmpty(); + reqId = ConnectionsManager.getInstance(currentAccount).sendRequest(req, requestDelegate, ConnectionsManager.RequestFlagFailOnServerErrors); + } + } + + @MainThread + private void processResponse(final String query, final String offset, boolean searchUser, boolean isEmoji, boolean cache, String key, TLObject response) { + if (!query.equals(lastSearchImageString)) { + return; + } + reqId = 0; + if (cache && (!(response instanceof TLRPC.messages_BotResults) || ((TLRPC.messages_BotResults) response).results.isEmpty())) { + search(query, offset, searchUser, isEmoji, false); + return; + } + + if (!withRecent) { + if (TextUtils.isEmpty(offset)) { + results.clear(); + resultsMap.clear(); + gifSearchField.progressDrawable.stopAnimation(); + } + } + + if (response instanceof TLRPC.messages_BotResults) { + int addedCount = 0; + int oldCount = results.size(); + TLRPC.messages_BotResults res = (TLRPC.messages_BotResults) response; + if (!gifCache.containsKey(key)) { + gifCache.put(key, res); + } + if (!cache && res.cache_time != 0) { + MessagesStorage.getInstance(currentAccount).saveBotCache(key, res); + } + nextSearchOffset = res.next_offset; + for (int a = 0; a < res.results.size(); a++) { + TLRPC.BotInlineResult result = res.results.get(a); + if (resultsMap.containsKey(result.id)) { + continue; + } + result.query_id = res.query_id; + results.add(result); + resultsMap.put(result.id, result); + addedCount++; + } + searchEndReached = oldCount == results.size() || TextUtils.isEmpty(nextSearchOffset); + if (addedCount != 0) { + if (!isEmoji || oldCount != 0) { + updateItems(); + if (withRecent) { + if (oldCount != 0) { + notifyItemChanged(recentItemsCount + 1 + oldCount); + notifyItemRangeInserted(recentItemsCount + 1 + oldCount + 1, addedCount); + } else { + notifyItemRangeInserted(recentItemsCount + 1, addedCount + 1); + } + } else { + if (oldCount != 0) { + notifyItemChanged(oldCount); + } + notifyItemRangeInserted(oldCount + 1, addedCount); + } + } else { + notifyDataSetChanged(); + } + } else if (results.isEmpty()) { + notifyDataSetChanged(); + } + } else { + notifyDataSetChanged(); + } + + if (!withRecent) { + if (gifGridView.getAdapter() != this) { + gifGridView.setAdapter(this); + } + if (isEmoji && !TextUtils.isEmpty(query) && TextUtils.isEmpty(offset)) { + scrollGifsToTop(); + } + } + } + } + + private class GifSavedAdapter extends RecyclerListView.SelectionAdapter { + private Context mContext; - public GifAdapter(Context context) { + public GifSavedAdapter(Context context) { mContext = context; } @@ -4087,224 +4784,208 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific } } - private class GifSearchAdapter extends RecyclerListView.SelectionAdapter { + private class GifSearchPreloader { - private Context mContext; - private int reqId; - private String lastSearchImageString; - private String nextSearchOffset; - private boolean searchingUser; - private boolean searchEndReached; - private ArrayList results = new ArrayList<>(); - private HashMap resultsMap = new HashMap<>(); - private Runnable searchRunnable; - private TLRPC.User bot; + private final List loadingKeys = new ArrayList<>(); - public GifSearchAdapter(Context context) { - mContext = context; + public boolean isLoading(String key) { + return loadingKeys.contains(key); } - @Override - public boolean isEnabled(RecyclerView.ViewHolder holder) { - return false; + public void preload(final String query) { + preload(query, "", true); } - @Override - public int getItemCount() { - return (results.isEmpty() ? 1 : results.size()) + 1; - } + private void preload(final String query, final String offset, boolean cache) { + final String key = "gif_search_" + query + "_" + offset; - @Override - public int getItemViewType(int position) { - if (position == 0) { - return 1; - } else if (results.isEmpty()) { - return 2; - } - return 0; - } - - @Override - public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { - View view; - switch (viewType) { - case 0: - ContextLinkCell cell = new ContextLinkCell(mContext); - cell.setContentDescription(LocaleController.getString("AttachGif", R.string.AttachGif)); - cell.setCanPreviewGif(true); - view = cell; - break; - case 1: - view = new View(getContext()); - view.setLayoutParams(new RecyclerView.LayoutParams(LayoutHelper.MATCH_PARENT, searchFieldHeight)); - break; - case 2: - default: - FrameLayout frameLayout = new FrameLayout(getContext()) { - @Override - protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - int height = gifGridView.getMeasuredHeight(); - super.onMeasure(widthMeasureSpec, MeasureSpec.makeMeasureSpec((int) ((height - searchFieldHeight - AndroidUtilities.dp(8)) / 3 * 1.7f), MeasureSpec.EXACTLY)); - } - }; - - ImageView imageView = new ImageView(getContext()); - imageView.setScaleType(ImageView.ScaleType.CENTER); - imageView.setImageResource(R.drawable.gif_empty); - imageView.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_chat_emojiPanelEmptyText), PorterDuff.Mode.MULTIPLY)); - frameLayout.addView(imageView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER, 0, 0, 0, 59)); - - TextView textView = new TextView(getContext()); - textView.setText(LocaleController.getString("NoGIFsFound", R.string.NoGIFsFound)); - textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); - textView.setTextColor(Theme.getColor(Theme.key_chat_emojiPanelEmptyText)); - frameLayout.addView(textView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER, 0, 0, 0, 9)); - - view = frameLayout; - view.setLayoutParams(new RecyclerView.LayoutParams(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); - break; - } - return new RecyclerListView.Holder(view); - } - - @Override - public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { - switch (holder.getItemViewType()) { - case 0: { - TLRPC.BotInlineResult result = results.get(position - 1); - - ContextLinkCell cell = (ContextLinkCell) holder.itemView; - cell.setLink(result, true, false, false); - break; - } - } - } - - public void search(String text) { - if (reqId != 0) { - ConnectionsManager.getInstance(currentAccount).cancelRequest(reqId, true); - reqId = 0; - } - if (TextUtils.isEmpty(text)) { - lastSearchImageString = null; - if (gifGridView.getAdapter() != gifAdapter) { - gifGridView.setAdapter(gifAdapter); - } - notifyDataSetChanged(); - } else { - lastSearchImageString = text.toLowerCase(); - } - if (searchRunnable != null) { - AndroidUtilities.cancelRunOnUIThread(searchRunnable); - } - if (!TextUtils.isEmpty(lastSearchImageString)) { - AndroidUtilities.runOnUIThread(searchRunnable = new Runnable() { - @Override - public void run() { - search(text, "", true); - } - }, 300); - } - } - - private void searchBotUser() { - if (searchingUser) { + if (cache && gifCache.containsKey(key)) { return; } - searchingUser = true; - TLRPC.TL_contacts_resolveUsername req = new TLRPC.TL_contacts_resolveUsername(); - req.username = MessagesController.getInstance(currentAccount).gifSearchBot; - ConnectionsManager.getInstance(currentAccount).sendRequest(req, (response, error) -> { - if (response != null) { - AndroidUtilities.runOnUIThread(() -> { - TLRPC.TL_contacts_resolvedPeer res = (TLRPC.TL_contacts_resolvedPeer) response; - MessagesController.getInstance(currentAccount).putUsers(res.users, false); - MessagesController.getInstance(currentAccount).putChats(res.chats, false); - MessagesStorage.getInstance(currentAccount).putUsersAndChats(res.users, res.chats, true, true); - String str = lastSearchImageString; - lastSearchImageString = null; - search(str, "", false); - }); + + final RequestDelegate requestDelegate = (response, error) -> AndroidUtilities.runOnUIThread(() -> processResponse(query, offset, cache, key, response)); + + if (cache) { + loadingKeys.add(key); + MessagesStorage.getInstance(currentAccount).getBotCache(key, requestDelegate); + } else { + final MessagesController messagesController = MessagesController.getInstance(currentAccount); + final TLObject gifSearchBot = messagesController.getUserOrChat(messagesController.gifSearchBot); + if (!(gifSearchBot instanceof TLRPC.User)) { + return; + } + loadingKeys.add(key); + TLRPC.TL_messages_getInlineBotResults req = new TLRPC.TL_messages_getInlineBotResults(); + req.query = query == null ? "" : query; + req.bot = messagesController.getInputUser((TLRPC.User) gifSearchBot); + req.offset = offset; + req.peer = new TLRPC.TL_inputPeerEmpty(); + ConnectionsManager.getInstance(currentAccount).sendRequest(req, requestDelegate, ConnectionsManager.RequestFlagFailOnServerErrors); + } + } + + private void processResponse(final String query, final String offset, boolean cache, String key, TLObject response) { + loadingKeys.remove(key); + + if (gifSearchAdapter.lastSearchIsEmoji && gifSearchAdapter.lastSearchImageString.equals(query)) { + gifSearchAdapter.processResponse(query, offset, false, true, cache, key, response); + } else { + if (cache && (!(response instanceof TLRPC.messages_BotResults) || ((TLRPC.messages_BotResults) response).results.isEmpty())) { + preload(query, offset, false); + } else if (response instanceof TLRPC.messages_BotResults && !gifCache.containsKey(key)) { + gifCache.put(key, (TLRPC.messages_BotResults) response); + } + } + } + } + + private class GifLayoutManager extends ExtendedGridLayoutManager { + + private Size size = new Size(); + + public GifLayoutManager(Context context) { + super(context, 100, true); + setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { + @Override + public int getSpanSize(int position) { + if (position == 0 || gifGridView.getAdapter() == gifSearchAdapter && gifSearchAdapter.results.isEmpty()) { + return getSpanCount(); + } + return getSpanSizeForItem(position - 1); } }); } - private void search(final String query, final String offset, boolean searchUser) { - if (reqId != 0) { - ConnectionsManager.getInstance(currentAccount).cancelRequest(reqId, true); - reqId = 0; - } - - lastSearchImageString = query; - - TLObject object = MessagesController.getInstance(currentAccount).getUserOrChat(MessagesController.getInstance(currentAccount).gifSearchBot); - if (!(object instanceof TLRPC.User)) { - if (searchUser) { - searchBotUser(); - gifSearchField.progressDrawable.startAnimation(); - } - return; - } - if (TextUtils.isEmpty(offset)) { - gifSearchField.progressDrawable.startAnimation(); - } - - bot = (TLRPC.User) object; - - TLRPC.TL_messages_getInlineBotResults req = new TLRPC.TL_messages_getInlineBotResults(); - req.query = query == null ? "" : query; - req.bot = MessagesController.getInstance(currentAccount).getInputUser(bot); - req.offset = offset; - req.peer = new TLRPC.TL_inputPeerEmpty(); - - reqId = ConnectionsManager.getInstance(currentAccount).sendRequest(req, (response, error) -> { - AndroidUtilities.runOnUIThread(() -> { - if (req.query.equals(lastSearchImageString)) { - if (gifGridView.getAdapter() != gifSearchAdapter) { - gifGridView.setAdapter(gifSearchAdapter); - } - if (TextUtils.isEmpty(offset)) { - results.clear(); - resultsMap.clear(); - gifSearchField.progressDrawable.stopAnimation(); - } - - reqId = 0; - if (response instanceof TLRPC.messages_BotResults) { - int addedCount = 0; - int oldCount = results.size(); - TLRPC.messages_BotResults res = (TLRPC.messages_BotResults) response; - nextSearchOffset = res.next_offset; - for (int a = 0; a < res.results.size(); a++) { - TLRPC.BotInlineResult result = res.results.get(a); - if (resultsMap.containsKey(result.id)) { - continue; - } - result.query_id = res.query_id; - results.add(result); - resultsMap.put(result.id, result); - addedCount++; - } - searchEndReached = oldCount == results.size() || TextUtils.isEmpty(nextSearchOffset); - if (addedCount != 0) { - if (oldCount != 0) { - notifyItemChanged(oldCount); - } - notifyItemRangeInserted(oldCount + 1, addedCount); - } else if (results.isEmpty()) { - notifyDataSetChanged(); - } - } else { - notifyDataSetChanged(); - } + @Override + protected Size getSizeForItem(int i) { + TLRPC.Document document; + ArrayList attributes; + if (gifGridView.getAdapter() == gifAdapter) { + if (i > gifAdapter.recentItemsCount) { + TLRPC.BotInlineResult result = gifAdapter.results.get(i - gifAdapter.recentItemsCount - 1); + document = result.document; + if (document != null) { + attributes = document.attributes; + } else if (result.content != null) { + attributes = result.content.attributes; + } else if (result.thumb != null) { + attributes = result.thumb.attributes; + } else { + attributes = null; } - }); - }, ConnectionsManager.RequestFlagFailOnServerErrors); + } else if (i == gifAdapter.recentItemsCount) { + return null; + } else { + document = recentGifs.get(i); + attributes = document.attributes; + } + } else if (!gifSearchAdapter.results.isEmpty()) { + TLRPC.BotInlineResult result = gifSearchAdapter.results.get(i); + document = result.document; + if (document != null) { + attributes = document.attributes; + } else if (result.content != null) { + attributes = result.content.attributes; + } else if (result.thumb != null) { + attributes = result.thumb.attributes; + } else { + attributes = null; + } + } else { + document = null; + attributes = null; + } + return getSizeForItem(document, attributes); } @Override - public void notifyDataSetChanged() { - super.notifyDataSetChanged(); + protected int getFlowItemCount() { + if (gifGridView.getAdapter() == gifSearchAdapter && gifSearchAdapter.results.isEmpty()) { + return 0; + } + return getItemCount() - 1; + } + + public Size getSizeForItem(TLRPC.Document document) { + return getSizeForItem(document, document.attributes); + } + + public Size getSizeForItem(TLRPC.Document document, List attributes) { + size.width = size.height = 100; + if (document != null) { + TLRPC.PhotoSize thumb = FileLoader.getClosestPhotoSizeWithSize(document.thumbs, 90); + if (thumb != null && thumb.w != 0 && thumb.h != 0) { + size.width = thumb.w; + size.height = thumb.h; + } + } + if (attributes != null) { + for (int b = 0; b < attributes.size(); b++) { + TLRPC.DocumentAttribute attribute = attributes.get(b); + if (attribute instanceof TLRPC.TL_documentAttributeImageSize || attribute instanceof TLRPC.TL_documentAttributeVideo) { + size.width = attribute.w; + size.height = attribute.h; + break; + } + } + } + return size; + } + } + + private class GifProgressEmptyView extends FrameLayout { + + private final ImageView imageView; + private final TextView textView; + private final RadialProgressView progressView; + + private boolean loadingState; + + public GifProgressEmptyView(@NonNull Context context) { + super(context); + + imageView = new ImageView(getContext()); + imageView.setScaleType(ImageView.ScaleType.CENTER); + imageView.setImageResource(R.drawable.gif_empty); + imageView.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_chat_emojiPanelEmptyText), PorterDuff.Mode.MULTIPLY)); + addView(imageView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER, 0, 0, 0, 59)); + + textView = new TextView(getContext()); + textView.setText(LocaleController.getString("NoGIFsFound", R.string.NoGIFsFound)); + textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); + textView.setTextColor(Theme.getColor(Theme.key_chat_emojiPanelEmptyText)); + addView(textView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER, 0, 0, 0, 9)); + + progressView = new RadialProgressView(context); + progressView.setVisibility(GONE); + progressView.setProgressColor(Theme.getColor(Theme.key_progressCircle)); + addView(progressView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER)); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + int height = gifGridView.getMeasuredHeight(); + + if (!loadingState) { + height = (int) ((height - searchFieldHeight - AndroidUtilities.dp(8)) / 3 * 1.7f); + } else { + height -= AndroidUtilities.dp(48 + 44); + } + + super.onMeasure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY)); + } + + public boolean isLoadingState() { + return loadingState; + } + + public void setLoadingState(boolean loadingState) { + if (this.loadingState != loadingState) { + this.loadingState = loadingState; + imageView.setVisibility(loadingState ? GONE : VISIBLE); + textView.setVisibility(loadingState ? GONE : VISIBLE); + progressView.setVisibility(loadingState ? VISIBLE : GONE); + } } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/EmptyStubSpan.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/EmptyStubSpan.java new file mode 100644 index 000000000..309b83015 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/EmptyStubSpan.java @@ -0,0 +1,21 @@ +package org.telegram.ui.Components; + +import android.graphics.Canvas; +import android.graphics.Paint; +import android.text.style.ReplacementSpan; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +public class EmptyStubSpan extends ReplacementSpan { + + @Override + public int getSize(@NonNull Paint paint, CharSequence text, int start, int end, @Nullable Paint.FontMetricsInt fm) { + return (int) paint.measureText(text, start, end); + } + + @Override + public void draw(@NonNull Canvas canvas, CharSequence text, int start, int end, float x, int top, int y, int bottom, @NonNull Paint paint) { + + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ExtendedGridLayoutManager.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ExtendedGridLayoutManager.java index 5d20d3eeb..4a3ae4490 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ExtendedGridLayoutManager.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ExtendedGridLayoutManager.java @@ -17,6 +17,8 @@ import androidx.recyclerview.widget.GridLayoutManager; public class ExtendedGridLayoutManager extends GridLayoutManager { + private final boolean lastRowFullWidth; + private SparseIntArray itemSpans = new SparseIntArray(); private SparseIntArray itemsToRow = new SparseIntArray(); private int firstRowMax; @@ -24,7 +26,12 @@ public class ExtendedGridLayoutManager extends GridLayoutManager { private int calculatedWidth; public ExtendedGridLayoutManager(Context context, int spanCount) { + this(context, spanCount, false); + } + + public ExtendedGridLayoutManager(Context context, int spanCount, boolean lastRowFullWidth) { super(context, spanCount); + this.lastRowFullWidth = lastRowFullWidth; } @Override @@ -40,17 +47,29 @@ public class ExtendedGridLayoutManager extends GridLayoutManager { itemsToRow.clear(); rowsCount = 0; firstRowMax = 0; - - int preferredRowSize = AndroidUtilities.dp(100); - int itemsCount = getFlowItemCount(); - int spanCount = getSpanCount(); + + final int itemsCount = getFlowItemCount(); + if (itemsCount == 0) { + return; + } + + final int preferredRowSize = AndroidUtilities.dp(100); + final int spanCount = getSpanCount(); + int spanLeft = spanCount; int currentItemsInRow = 0; int currentItemsSpanAmount = 0; - for (int a = 0; a < itemsCount; a++) { - Size size = sizeForItem(a); - int requiredSpan = Math.min(spanCount, (int) Math.floor(spanCount * (size.width / size.height * preferredRowSize / viewPortAvailableSize))); - boolean moveToNewRow = spanLeft < requiredSpan || requiredSpan > 33 && spanLeft < requiredSpan - 15; + for (int a = 0, N = itemsCount + (lastRowFullWidth ? 1 : 0); a < N; a++) { + Size size = a < itemsCount ? sizeForItem(a) : null; + int requiredSpan; + boolean moveToNewRow; + if (size == null) { + moveToNewRow = currentItemsInRow != 0; + requiredSpan = spanCount; + } else { + requiredSpan = Math.min(spanCount, (int) Math.floor(spanCount * (size.width / size.height * preferredRowSize / viewPortAvailableSize))); + moveToNewRow = spanLeft 33 && spanLeft < requiredSpan - 15; + } if (moveToNewRow) { if (spanLeft != 0) { int spanPerItem = spanLeft / currentItemsInRow; @@ -64,6 +83,9 @@ public class ExtendedGridLayoutManager extends GridLayoutManager { } itemsToRow.put(a - 1, rowsCount); } + if (a == itemsCount) { + break; + } rowsCount++; currentItemsSpanAmount = 0; currentItemsInRow = 0; @@ -76,7 +98,7 @@ public class ExtendedGridLayoutManager extends GridLayoutManager { if (rowsCount == 0) { firstRowMax = Math.max(firstRowMax, a); } - if (a == itemsCount - 1) { + if (a == itemsCount - 1 && !lastRowFullWidth) { itemsToRow.put(a, rowsCount); } currentItemsSpanAmount += requiredSpan; @@ -85,13 +107,17 @@ public class ExtendedGridLayoutManager extends GridLayoutManager { itemSpans.put(a, requiredSpan); } - if (itemsCount != 0) { - rowsCount++; - } + rowsCount++; } private Size sizeForItem(int i) { - Size size = getSizeForItem(i); + return fixSize(getSizeForItem(i)); + } + + protected Size fixSize(Size size) { + if (size == null) { + return null; + } if (size.width == 0) { size.width = 100; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/FadingTextViewLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/FadingTextViewLayout.java new file mode 100644 index 000000000..968f5107d --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/FadingTextViewLayout.java @@ -0,0 +1,193 @@ +package org.telegram.ui.Components; + +import android.animation.Animator; +import android.animation.AnimatorListenerAdapter; +import android.animation.ValueAnimator; +import android.content.Context; +import android.graphics.Color; +import android.graphics.Point; +import android.text.Spannable; +import android.text.SpannableString; +import android.text.TextUtils; +import android.text.style.ForegroundColorSpan; +import android.widget.FrameLayout; +import android.widget.TextView; + +import androidx.core.view.ViewCompat; + +import java.util.ArrayList; +import java.util.List; + +public class FadingTextViewLayout extends FrameLayout { + + private final ValueAnimator animator; + + private CharSequence text; + private TextView foregroundView; + private TextView currentView; + private TextView nextView; + + public FadingTextViewLayout(Context context) { + this(context, false); + } + + public FadingTextViewLayout(Context context, boolean hasStaticChars) { + super(context); + for (int i = 0; i < 2 + (hasStaticChars ? 1 : 0); i++) { + final TextView textView = new TextView(context); + onTextViewCreated(textView); + addView(textView); + if (i == 0) { + currentView = textView; + } else { + textView.setVisibility(GONE); + if (i == 1) { + textView.setAlpha(0f); + nextView = textView; + } else { + foregroundView = textView; + } + } + } + animator = ValueAnimator.ofFloat(0f, 1f); + animator.setDuration(200); + animator.setInterpolator(null); + animator.addUpdateListener(a -> { + final float fraction = a.getAnimatedFraction(); + currentView.setAlpha(CubicBezierInterpolator.DEFAULT.getInterpolation(fraction)); + nextView.setAlpha(CubicBezierInterpolator.DEFAULT.getInterpolation(1f - fraction)); + }); + animator.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + currentView.setLayerType(LAYER_TYPE_NONE, null); + nextView.setLayerType(LAYER_TYPE_NONE, null); + nextView.setVisibility(GONE); + if (foregroundView != null) { + currentView.setText(text); // remove spans + foregroundView.setVisibility(GONE); + } + } + + @Override + public void onAnimationStart(Animator animation) { + currentView.setLayerType(LAYER_TYPE_HARDWARE, null); + nextView.setLayerType(LAYER_TYPE_HARDWARE, null); + if (ViewCompat.isAttachedToWindow(currentView)) { + currentView.buildLayer(); + } + if (ViewCompat.isAttachedToWindow(nextView)) { + nextView.buildLayer(); + } + } + }); + } + + public void setText(CharSequence text) { + setText(text, true, true); + } + + public void setText(CharSequence text, boolean animated) { + setText(text, animated, true); + } + + public void setText(CharSequence text, boolean animated, boolean dontAnimateUnchangedStaticChars) { + if (!TextUtils.equals(text, currentView.getText())) { + if (animator != null) { + animator.end(); + } + this.text = text; + if (animated) { + if (dontAnimateUnchangedStaticChars && foregroundView != null) { + final int staticCharsCount = getStaticCharsCount(); + + if (staticCharsCount > 0) { + final CharSequence currentText = currentView.getText(); + final int length = Math.min(staticCharsCount, Math.min(text.length(), currentText.length())); + + final List points = new ArrayList<>(); + + int startIndex = -1; + for (int i = 0; i < length; i++) { + final char c = currentText.charAt(i); + if (text.charAt(i) == c) { + if (startIndex >= 0) { + points.add(new Point(startIndex, i)); + startIndex = -1; + } + } else if (startIndex == -1) { + startIndex = i; + } + } + + if (startIndex == 0) { + // no unchanged static chars + } else if (startIndex > 0) { + points.add(new Point(startIndex, length)); + } else { // fully the same + points.add(new Point(length, 0)); + } + + if (!points.isEmpty()) { + final SpannableString foregroundText = new SpannableString(text.subSequence(0, length)); + final SpannableString currentSpannableText = new SpannableString(currentText); + final SpannableString spannableText = new SpannableString(text); + + int lastIndex = 0; + for (int i = 0, N = points.size(); i < N; i++) { + final Point point = points.get(i); + if (point.y > point.x) { + foregroundText.setSpan(new ForegroundColorSpan(Color.TRANSPARENT), point.x, point.y, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); + } + if (point.x > lastIndex) { + currentSpannableText.setSpan(new ForegroundColorSpan(Color.TRANSPARENT), lastIndex, point.x, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); + spannableText.setSpan(new ForegroundColorSpan(Color.TRANSPARENT), lastIndex, point.x, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); + } + lastIndex = point.y; + } + + foregroundView.setVisibility(VISIBLE); + foregroundView.setText(foregroundText); + + currentView.setText(currentSpannableText); + text = spannableText; + } + } + } + nextView.setVisibility(VISIBLE); + nextView.setText(text); + showNext(); + } else { + currentView.setText(text); + } + } + } + + public CharSequence getText() { + return text; + } + + public TextView getCurrentView() { + return currentView; + } + + public TextView getNextView() { + return nextView; + } + + private void showNext() { + final TextView prevView = currentView; + currentView = nextView; + nextView = prevView; + animator.start(); + } + + protected void onTextViewCreated(TextView textView) { + textView.setSingleLine(true); + textView.setMaxLines(1); + } + + protected int getStaticCharsCount() { + return 0; + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/FilterGLThread.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/FilterGLThread.java new file mode 100644 index 000000000..2b6da1f49 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/FilterGLThread.java @@ -0,0 +1,414 @@ +package org.telegram.ui.Components; + +import android.graphics.Bitmap; +import android.graphics.SurfaceTexture; +import android.opengl.GLES11Ext; +import android.opengl.GLES20; +import android.opengl.GLUtils; +import android.os.Looper; + +import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.BuildVars; +import org.telegram.messenger.DispatchQueue; +import org.telegram.messenger.FileLog; + +import java.nio.ByteBuffer; +import java.util.concurrent.CountDownLatch; + +import javax.microedition.khronos.egl.EGL10; +import javax.microedition.khronos.egl.EGLConfig; +import javax.microedition.khronos.egl.EGLContext; +import javax.microedition.khronos.egl.EGLDisplay; +import javax.microedition.khronos.egl.EGLSurface; +import javax.microedition.khronos.opengles.GL10; + +public class FilterGLThread extends DispatchQueue { + + private static final int EGL_CONTEXT_CLIENT_VERSION = 0x3098; + private static final int EGL_OPENGL_ES2_BIT = 4; + private SurfaceTexture surfaceTexture; + private EGL10 egl10; + private EGLDisplay eglDisplay; + private EGLContext eglContext; + private EGLSurface eglSurface; + private boolean initied; + + private volatile int surfaceWidth; + private volatile int surfaceHeight; + + private Bitmap currentBitmap; + private int orientation; + + private SurfaceTexture videoSurfaceTexture; + private boolean updateSurface; + private float[] videoTextureMatrix = new float[16]; + private int[] videoTexture = new int[1]; + private boolean videoFrameAvailable; + + private FilterShaders filterShaders; + + private int simpleShaderProgram; + private int simplePositionHandle; + private int simpleInputTexCoordHandle; + private int simpleSourceImageHandle; + + private boolean blurred; + private int renderBufferWidth; + private int renderBufferHeight; + private int videoWidth; + private int videoHeight; + + private boolean renderDataSet; + + private long lastRenderCallTime; + + public interface FilterGLThreadVideoDelegate { + void onVideoSurfaceCreated(SurfaceTexture surfaceTexture); + } + + private FilterGLThreadVideoDelegate videoDelegate; + + public FilterGLThread(SurfaceTexture surface, Bitmap bitmap, int bitmapOrientation) { + super("PhotoFilterGLThread", false); + surfaceTexture = surface; + currentBitmap = bitmap; + orientation = bitmapOrientation; + filterShaders = new FilterShaders(false); + start(); + } + + public FilterGLThread(SurfaceTexture surface, FilterGLThreadVideoDelegate filterGLThreadVideoDelegate) { + super("VideoFilterGLThread", false); + surfaceTexture = surface; + videoDelegate = filterGLThreadVideoDelegate; + filterShaders = new FilterShaders(true); + start(); + } + + public void setFilterGLThreadDelegate(FilterShaders.FilterShadersDelegate filterShadersDelegate) { + postRunnable(() -> filterShaders.setDelegate(filterShadersDelegate)); + } + + private boolean initGL() { + egl10 = (EGL10) EGLContext.getEGL(); + + eglDisplay = egl10.eglGetDisplay(EGL10.EGL_DEFAULT_DISPLAY); + if (eglDisplay == EGL10.EGL_NO_DISPLAY) { + if (BuildVars.LOGS_ENABLED) { + FileLog.e("eglGetDisplay failed " + GLUtils.getEGLErrorString(egl10.eglGetError())); + } + finish(); + return false; + } + + int[] version = new int[2]; + if (!egl10.eglInitialize(eglDisplay, version)) { + if (BuildVars.LOGS_ENABLED) { + FileLog.e("eglInitialize failed " + GLUtils.getEGLErrorString(egl10.eglGetError())); + } + finish(); + return false; + } + + int[] configsCount = new int[1]; + EGLConfig[] configs = new EGLConfig[1]; + int[] configSpec = new int[] { + EGL10.EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, + EGL10.EGL_RED_SIZE, 8, + EGL10.EGL_GREEN_SIZE, 8, + EGL10.EGL_BLUE_SIZE, 8, + EGL10.EGL_ALPHA_SIZE, 8, + EGL10.EGL_DEPTH_SIZE, 0, + EGL10.EGL_STENCIL_SIZE, 0, + EGL10.EGL_NONE + }; + EGLConfig eglConfig; + if (!egl10.eglChooseConfig(eglDisplay, configSpec, configs, 1, configsCount)) { + if (BuildVars.LOGS_ENABLED) { + FileLog.e("eglChooseConfig failed " + GLUtils.getEGLErrorString(egl10.eglGetError())); + } + finish(); + return false; + } else if (configsCount[0] > 0) { + eglConfig = configs[0]; + } else { + if (BuildVars.LOGS_ENABLED) { + FileLog.e("eglConfig not initialized"); + } + finish(); + return false; + } + + int[] attrib_list = { EGL_CONTEXT_CLIENT_VERSION, 2, EGL10.EGL_NONE }; + eglContext = egl10.eglCreateContext(eglDisplay, eglConfig, EGL10.EGL_NO_CONTEXT, attrib_list); + if (eglContext == null) { + if (BuildVars.LOGS_ENABLED) { + FileLog.e("eglCreateContext failed " + GLUtils.getEGLErrorString(egl10.eglGetError())); + } + finish(); + return false; + } + + if (surfaceTexture instanceof SurfaceTexture) { + eglSurface = egl10.eglCreateWindowSurface(eglDisplay, eglConfig, surfaceTexture, null); + } else { + finish(); + return false; + } + + if (eglSurface == null || eglSurface == EGL10.EGL_NO_SURFACE) { + if (BuildVars.LOGS_ENABLED) { + FileLog.e("createWindowSurface failed " + GLUtils.getEGLErrorString(egl10.eglGetError())); + } + finish(); + return false; + } + if (!egl10.eglMakeCurrent(eglDisplay, eglSurface, eglSurface, eglContext)) { + if (BuildVars.LOGS_ENABLED) { + FileLog.e("eglMakeCurrent failed " + GLUtils.getEGLErrorString(egl10.eglGetError())); + } + finish(); + return false; + } + + int vertexShader = FilterShaders.loadShader(GLES20.GL_VERTEX_SHADER, FilterShaders.simpleVertexShaderCode); + int fragmentShader = FilterShaders.loadShader(GLES20.GL_FRAGMENT_SHADER, FilterShaders.simpleFragmentShaderCode); + if (vertexShader != 0 && fragmentShader != 0) { + simpleShaderProgram = GLES20.glCreateProgram(); + GLES20.glAttachShader(simpleShaderProgram, vertexShader); + GLES20.glAttachShader(simpleShaderProgram, fragmentShader); + GLES20.glBindAttribLocation(simpleShaderProgram, 0, "position"); + GLES20.glBindAttribLocation(simpleShaderProgram, 1, "inputTexCoord"); + + GLES20.glLinkProgram(simpleShaderProgram); + int[] linkStatus = new int[1]; + GLES20.glGetProgramiv(simpleShaderProgram, GLES20.GL_LINK_STATUS, linkStatus, 0); + if (linkStatus[0] == 0) { + GLES20.glDeleteProgram(simpleShaderProgram); + simpleShaderProgram = 0; + } else { + simplePositionHandle = GLES20.glGetAttribLocation(simpleShaderProgram, "position"); + simpleInputTexCoordHandle = GLES20.glGetAttribLocation(simpleShaderProgram, "inputTexCoord"); + simpleSourceImageHandle = GLES20.glGetUniformLocation(simpleShaderProgram, "sourceImage"); + } + } else { + return false; + } + + int w; + int h; + if (currentBitmap != null) { + w = currentBitmap.getWidth(); + h = currentBitmap.getHeight(); + } else { + w = videoWidth; + h = videoHeight; + } + + if (videoDelegate != null) { + GLES20.glGenTextures(1, videoTexture, 0); + + android.opengl.Matrix.setIdentityM(videoTextureMatrix, 0); + videoSurfaceTexture = new SurfaceTexture(videoTexture[0]); + videoSurfaceTexture.setOnFrameAvailableListener(surfaceTexture -> requestRender(false, true, true)); + + GLES20.glBindTexture(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, videoTexture[0]); + GLES20.glTexParameterf(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR); + GLES20.glTexParameterf(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_NEAREST); + GLES20.glTexParameteri(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE); + GLES20.glTexParameteri(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE); + + AndroidUtilities.runOnUIThread(() -> videoDelegate.onVideoSurfaceCreated(videoSurfaceTexture)); + } + + if (!filterShaders.create()) { + finish(); + return false; + } + + if (w != 0 && h != 0) { + filterShaders.setRenderData(currentBitmap, orientation, videoTexture[0], w, h); + renderDataSet = true; + renderBufferWidth = filterShaders.getRenderBufferWidth(); + renderBufferHeight = filterShaders.getRenderBufferHeight(); + } + + return true; + } + + public void setVideoSize(int width, int height) { + postRunnable(() -> { + if (videoWidth == width && videoHeight == height) { + return; + } + videoWidth = width; + videoHeight = height; + if (videoWidth > 1280 || videoHeight > 1280) { + videoWidth /= 2; + videoHeight /= 2; + } + renderDataSet = false; + }); + } + + public void finish() { + currentBitmap = null; + if (eglSurface != null) { + egl10.eglMakeCurrent(eglDisplay, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_CONTEXT); + egl10.eglDestroySurface(eglDisplay, eglSurface); + eglSurface = null; + } + if (eglContext != null) { + egl10.eglDestroyContext(eglDisplay, eglContext); + eglContext = null; + } + if (eglDisplay != null) { + egl10.eglTerminate(eglDisplay); + eglDisplay = null; + } + if (surfaceTexture != null) { + surfaceTexture.release(); + } + } + + private Runnable drawRunnable = new Runnable() { + @Override + public void run() { + if (!initied) { + return; + } + + if (!eglContext.equals(egl10.eglGetCurrentContext()) || !eglSurface.equals(egl10.eglGetCurrentSurface(EGL10.EGL_DRAW))) { + if (!egl10.eglMakeCurrent(eglDisplay, eglSurface, eglSurface, eglContext)) { + if (BuildVars.LOGS_ENABLED) { + FileLog.e("eglMakeCurrent failed " + GLUtils.getEGLErrorString(egl10.eglGetError())); + } + return; + } + } + + if (updateSurface) { + videoSurfaceTexture.updateTexImage(); + videoSurfaceTexture.getTransformMatrix(videoTextureMatrix); + if (videoWidth == 0 || videoHeight == 0) { + videoWidth = surfaceWidth; + videoHeight = surfaceHeight; + if (videoWidth > 1280 || videoHeight > 1280) { + videoWidth /= 2; + videoHeight /= 2; + } + } + if (!renderDataSet && videoWidth != 0 && videoHeight != 0) { + filterShaders.setRenderData(currentBitmap, orientation, videoTexture[0], videoWidth, videoHeight); + renderDataSet = true; + renderBufferWidth = filterShaders.getRenderBufferWidth(); + renderBufferHeight = filterShaders.getRenderBufferHeight(); + } + updateSurface = false; + filterShaders.onVideoFrameUpdate(videoTextureMatrix); + videoFrameAvailable = true; + } + + if (!renderDataSet) { + return; + } + + if (videoDelegate == null || videoFrameAvailable) { + GLES20.glViewport(0, 0, renderBufferWidth, renderBufferHeight); + filterShaders.drawEnhancePass(); + if (videoDelegate == null) { + filterShaders.drawSharpenPass(); + } + filterShaders.drawCustomParamsPass(); + blurred = filterShaders.drawBlurPass(); + } + + GLES20.glViewport(0, 0, surfaceWidth, surfaceHeight); + GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, 0); + + GLES20.glUseProgram(simpleShaderProgram); + GLES20.glActiveTexture(GLES20.GL_TEXTURE0); + GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, filterShaders.getRenderTexture(blurred ? 0 : 1)); + + GLES20.glUniform1i(simpleSourceImageHandle, 0); + GLES20.glEnableVertexAttribArray(simpleInputTexCoordHandle); + GLES20.glVertexAttribPointer(simpleInputTexCoordHandle, 2, GLES20.GL_FLOAT, false, 8, filterShaders.getTextureBuffer()); + GLES20.glEnableVertexAttribArray(simplePositionHandle); + GLES20.glVertexAttribPointer(simplePositionHandle, 2, GLES20.GL_FLOAT, false, 8, filterShaders.getVertexBuffer()); + GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4); + egl10.eglSwapBuffers(eglDisplay, eglSurface); + } + }; + + private Bitmap getRenderBufferBitmap() { + ByteBuffer buffer = ByteBuffer.allocateDirect(renderBufferWidth * renderBufferHeight * 4); + GLES20.glReadPixels(0, 0, renderBufferWidth, renderBufferHeight, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, buffer); + Bitmap bitmap = Bitmap.createBitmap(renderBufferWidth, renderBufferHeight, Bitmap.Config.ARGB_8888); + bitmap.copyPixelsFromBuffer(buffer); + return bitmap; + } + + public Bitmap getTexture() { + if (!initied) { + return null; + } + final CountDownLatch countDownLatch = new CountDownLatch(1); + final Bitmap[] object = new Bitmap[1]; + try { + postRunnable(() -> { + GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, filterShaders.getRenderFrameBuffer()); + GLES20.glFramebufferTexture2D(GLES20.GL_FRAMEBUFFER, GLES20.GL_COLOR_ATTACHMENT0, GLES20.GL_TEXTURE_2D, filterShaders.getRenderTexture(blurred ? 0 : 1), 0); + GLES20.glClear(0); + object[0] = getRenderBufferBitmap(); + countDownLatch.countDown(); + GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, 0); + GLES20.glClear(0); + }); + countDownLatch.await(); + } catch (Exception e) { + FileLog.e(e); + } + return object[0]; + } + + public void shutdown() { + postRunnable(() -> { + finish(); + Looper looper = Looper.myLooper(); + if (looper != null) { + looper.quit(); + } + }); + } + + public void setSurfaceTextureSize(int width, int height) { + surfaceWidth = width; + surfaceHeight = height; + } + + @Override + public void run() { + initied = initGL(); + super.run(); + } + + public void requestRender(final boolean updateBlur) { + requestRender(updateBlur, false, false); + } + + public void requestRender(final boolean updateBlur, final boolean force, boolean surface) { + postRunnable(() -> { + if (updateBlur) { + filterShaders.requestUpdateBlurTexture(); + } + if (surface) { + updateSurface = true; + } + long newTime = System.currentTimeMillis(); + if (force || Math.abs(lastRenderCallTime - newTime) > 30) { + lastRenderCallTime = newTime; + drawRunnable.run(); + } + }); + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/FilterShaders.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/FilterShaders.java new file mode 100644 index 000000000..6adc464e1 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/FilterShaders.java @@ -0,0 +1,1403 @@ +package org.telegram.ui.Components; + +import android.graphics.Bitmap; +import android.graphics.Matrix; +import android.opengl.GLES11Ext; +import android.opengl.GLES20; +import android.opengl.GLUtils; + +import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.BuildVars; +import org.telegram.messenger.FileLog; +import org.telegram.messenger.MediaController; +import org.telegram.messenger.Utilities; + +import java.nio.ByteBuffer; +import java.nio.ByteOrder; +import java.nio.FloatBuffer; + +import javax.microedition.khronos.opengles.GL10; + +public class FilterShaders { + + private static final String radialBlurFragmentShaderCode = + "varying highp vec2 texCoord;" + + "uniform sampler2D sourceImage;" + + "uniform sampler2D inputImageTexture2;" + + "uniform lowp float excludeSize;" + + "uniform lowp vec2 excludePoint;" + + "uniform lowp float excludeBlurSize;" + + "uniform highp float aspectRatio;" + + "void main() {" + + "lowp vec4 sharpImageColor = texture2D(sourceImage, texCoord);" + + "lowp vec4 blurredImageColor = texture2D(inputImageTexture2, texCoord);" + + "highp vec2 texCoordToUse = vec2(texCoord.x, (texCoord.y * aspectRatio + 0.5 - 0.5 * aspectRatio));" + + "highp float distanceFromCenter = distance(excludePoint, texCoordToUse);" + + "gl_FragColor = mix(sharpImageColor, blurredImageColor, smoothstep(excludeSize - excludeBlurSize, excludeSize, distanceFromCenter));" + + "}"; + + private static final String linearBlurFragmentShaderCode = + "varying highp vec2 texCoord;" + + "uniform sampler2D sourceImage;" + + "uniform sampler2D inputImageTexture2;" + + "uniform lowp float excludeSize;" + + "uniform lowp vec2 excludePoint;" + + "uniform lowp float excludeBlurSize;" + + "uniform highp float angle;" + + "uniform highp float aspectRatio;" + + "void main() {" + + "lowp vec4 sharpImageColor = texture2D(sourceImage, texCoord);" + + "lowp vec4 blurredImageColor = texture2D(inputImageTexture2, texCoord);" + + "highp vec2 texCoordToUse = vec2(texCoord.x, (texCoord.y * aspectRatio + 0.5 - 0.5 * aspectRatio));" + + "highp float distanceFromCenter = abs((texCoordToUse.x - excludePoint.x) * aspectRatio * cos(angle) + (texCoordToUse.y - excludePoint.y) * sin(angle));" + + "gl_FragColor = mix(sharpImageColor, blurredImageColor, smoothstep(excludeSize - excludeBlurSize, excludeSize, distanceFromCenter));" + + "}"; + + private static final String blurVertexShaderCode = + "attribute vec4 position;" + + "attribute vec4 inputTexCoord;" + + "uniform highp float texelWidthOffset;" + + "uniform highp float texelHeightOffset;" + + "varying vec2 blurCoordinates[9];" + + "void main() {" + + "gl_Position = position;" + + "vec2 singleStepOffset = vec2(texelWidthOffset, texelHeightOffset);" + + "blurCoordinates[0] = inputTexCoord.xy;" + + "blurCoordinates[1] = inputTexCoord.xy + singleStepOffset * 1.458430;" + + "blurCoordinates[2] = inputTexCoord.xy - singleStepOffset * 1.458430;" + + "blurCoordinates[3] = inputTexCoord.xy + singleStepOffset * 3.403985;" + + "blurCoordinates[4] = inputTexCoord.xy - singleStepOffset * 3.403985;" + + "blurCoordinates[5] = inputTexCoord.xy + singleStepOffset * 5.351806;" + + "blurCoordinates[6] = inputTexCoord.xy - singleStepOffset * 5.351806;" + + "blurCoordinates[7] = inputTexCoord.xy + singleStepOffset * 7.302940;" + + "blurCoordinates[8] = inputTexCoord.xy - singleStepOffset * 7.302940;" + + "}"; + + private static final String blurFragmentShaderCode = + "uniform sampler2D sourceImage;" + + "varying highp vec2 blurCoordinates[9];" + + "void main() {" + + "lowp vec4 sum = vec4(0.0);" + + "sum += texture2D(sourceImage, blurCoordinates[0]) * 0.133571;" + + "sum += texture2D(sourceImage, blurCoordinates[1]) * 0.233308;" + + "sum += texture2D(sourceImage, blurCoordinates[2]) * 0.233308;" + + "sum += texture2D(sourceImage, blurCoordinates[3]) * 0.135928;" + + "sum += texture2D(sourceImage, blurCoordinates[4]) * 0.135928;" + + "sum += texture2D(sourceImage, blurCoordinates[5]) * 0.051383;" + + "sum += texture2D(sourceImage, blurCoordinates[6]) * 0.051383;" + + "sum += texture2D(sourceImage, blurCoordinates[7]) * 0.012595;" + + "sum += texture2D(sourceImage, blurCoordinates[8]) * 0.012595;" + + "gl_FragColor = sum;" + + "}"; + + private static final String simpleVertexVideoShaderCode = + "attribute vec4 position;" + + "uniform mat4 videoMatrix;" + + "attribute vec4 inputTexCoord;" + + "varying vec2 texCoord;" + + "void main() {" + + "gl_Position = position;" + + "texCoord = vec2(videoMatrix * inputTexCoord).xy;" + + "}"; + + private static final String rgbToHsvFragmentVideoShaderCode = + "#extension GL_OES_EGL_image_external : require\n" + + "precision highp float;" + + "varying vec2 texCoord;" + + "uniform samplerExternalOES sourceImage;" + + "vec3 rgb_to_hsv(vec3 c) {" + + "vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);" + + "vec4 p = c.g < c.b ? vec4(c.bg, K.wz) : vec4(c.gb, K.xy);" + + "vec4 q = c.r < p.x ? vec4(p.xyw, c.r) : vec4(c.r, p.yzx);" + + "float d = q.x - min(q.w, q.y);" + + "float e = 1.0e-10;" + + "return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);" + + "}" + + "void main() {" + + "vec4 texel = texture2D(sourceImage, texCoord);" + + "gl_FragColor = vec4(rgb_to_hsv(texel.rgb), texel.a);" + + "}"; + + private static final String rgbToHsvFragmentShaderCode = + "precision highp float;" + + "varying vec2 texCoord;" + + "uniform sampler2D sourceImage;" + + "vec3 rgb_to_hsv(vec3 c) {" + + "vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);" + + "vec4 p = c.g < c.b ? vec4(c.bg, K.wz) : vec4(c.gb, K.xy);" + + "vec4 q = c.r < p.x ? vec4(p.xyw, c.r) : vec4(c.r, p.yzx);" + + "float d = q.x - min(q.w, q.y);" + + "float e = 1.0e-10;" + + "return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);" + + "}" + + "void main() {" + + "vec4 texel = texture2D(sourceImage, texCoord);" + + "gl_FragColor = vec4(rgb_to_hsv(texel.rgb), texel.a);" + + "}"; + + private static final String enhanceFragmentShaderCode = + "precision highp float;" + + "varying vec2 texCoord;" + + "uniform sampler2D sourceImage;" + + "uniform sampler2D inputImageTexture2;" + + "uniform float intensity;" + + "float enhance(float value) {" + + "const vec2 offset = vec2(0.001953125, 0.03125);" + + "value = value + offset.x;" + + "vec2 coord = (clamp(texCoord, 0.125, 1.0 - 0.125001) - 0.125) * 4.0;" + + "vec2 frac = fract(coord);" + + "coord = floor(coord);" + + "float p00 = float(coord.y * 4.0 + coord.x) * 0.0625 + offset.y;" + + "float p01 = float(coord.y * 4.0 + coord.x + 1.0) * 0.0625 + offset.y;" + + "float p10 = float((coord.y + 1.0) * 4.0 + coord.x) * 0.0625 + offset.y;" + + "float p11 = float((coord.y + 1.0) * 4.0 + coord.x + 1.0) * 0.0625 + offset.y;" + + "vec3 c00 = texture2D(inputImageTexture2, vec2(value, p00)).rgb;" + + "vec3 c01 = texture2D(inputImageTexture2, vec2(value, p01)).rgb;" + + "vec3 c10 = texture2D(inputImageTexture2, vec2(value, p10)).rgb;" + + "vec3 c11 = texture2D(inputImageTexture2, vec2(value, p11)).rgb;" + + "float c1 = ((c00.r - c00.g) / (c00.b - c00.g));" + + "float c2 = ((c01.r - c01.g) / (c01.b - c01.g));" + + "float c3 = ((c10.r - c10.g) / (c10.b - c10.g));" + + "float c4 = ((c11.r - c11.g) / (c11.b - c11.g));" + + "float c1_2 = mix(c1, c2, frac.x);" + + "float c3_4 = mix(c3, c4, frac.x);" + + "return mix(c1_2, c3_4, frac.y);" + + "}" + + "vec3 hsv_to_rgb(vec3 c) {" + + "vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);" + + "vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);" + + "return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);" + + "}" + + "void main() {" + + "vec4 texel = texture2D(sourceImage, texCoord);" + + "vec4 hsv = texel;" + + "hsv.y = min(1.0, hsv.y * 1.2);" + + "hsv.z = min(1.0, enhance(hsv.z) * 1.1);" + + "gl_FragColor = vec4(hsv_to_rgb(mix(texel.xyz, hsv.xyz, intensity)), texel.w);" + + "}"; + + public static final String simpleVertexShaderCode = + "attribute vec4 position;" + + "attribute vec2 inputTexCoord;" + + "varying vec2 texCoord;" + + "void main() {" + + "gl_Position = position;" + + "texCoord = inputTexCoord;" + + "}"; + + public static final String simpleFragmentShaderCode = + "varying highp vec2 texCoord;" + + "uniform sampler2D sourceImage;" + + "void main() {" + + "gl_FragColor = texture2D(sourceImage, texCoord);" + + "}"; + + private static final String sharpenVertexShaderCode = + "attribute vec4 position;" + + "attribute vec2 inputTexCoord;" + + "varying vec2 texCoord;" + + + "uniform highp float inputWidth;" + + "uniform highp float inputHeight;" + + "varying vec2 leftTexCoord;" + + "varying vec2 rightTexCoord;" + + "varying vec2 topTexCoord;" + + "varying vec2 bottomTexCoord;" + + + "void main() {" + + "gl_Position = position;" + + "texCoord = inputTexCoord;" + + "highp vec2 widthStep = vec2(1.0 / inputWidth, 0.0);" + + "highp vec2 heightStep = vec2(0.0, 1.0 / inputHeight);" + + "leftTexCoord = inputTexCoord - widthStep;" + + "rightTexCoord = inputTexCoord + widthStep;" + + "topTexCoord = inputTexCoord + heightStep;" + + "bottomTexCoord = inputTexCoord - heightStep;" + + "}"; + + private static final String sharpenFragmentShaderCode = + "precision highp float;" + + "varying vec2 texCoord;" + + "varying vec2 leftTexCoord;" + + "varying vec2 rightTexCoord;" + + "varying vec2 topTexCoord;" + + "varying vec2 bottomTexCoord;" + + "uniform sampler2D sourceImage;" + + "uniform float sharpen;" + + + "void main() {" + + "vec4 result = texture2D(sourceImage, texCoord);" + + + "vec3 leftTextureColor = texture2D(sourceImage, leftTexCoord).rgb;" + + "vec3 rightTextureColor = texture2D(sourceImage, rightTexCoord).rgb;" + + "vec3 topTextureColor = texture2D(sourceImage, topTexCoord).rgb;" + + "vec3 bottomTextureColor = texture2D(sourceImage, bottomTexCoord).rgb;" + + "result.rgb = result.rgb * (1.0 + 4.0 * sharpen) - (leftTextureColor + rightTextureColor + topTextureColor + bottomTextureColor) * sharpen;" + + + "gl_FragColor = result;" + + "}"; + + private static final String toolsFragmentShaderCode = + "varying highp vec2 texCoord;" + + "uniform sampler2D sourceImage;" + + "uniform highp float width;" + + "uniform highp float height;" + + "uniform sampler2D curvesImage;" + + "uniform lowp float skipTone;" + + "uniform lowp float shadows;" + + "const mediump vec3 hsLuminanceWeighting = vec3(0.3, 0.3, 0.3);" + + "uniform lowp float highlights;" + + "uniform lowp float contrast;" + + "uniform lowp float fadeAmount;" + + "const mediump vec3 satLuminanceWeighting = vec3(0.2126, 0.7152, 0.0722);" + + "uniform lowp float saturation;" + + "uniform lowp float shadowsTintIntensity;" + + "uniform lowp float highlightsTintIntensity;" + + "uniform lowp vec3 shadowsTintColor;" + + "uniform lowp vec3 highlightsTintColor;" + + "uniform lowp float exposure;" + + "uniform lowp float warmth;" + + "uniform lowp float grain;" + + "const lowp float permTexUnit = 1.0 / 256.0;" + + "const lowp float permTexUnitHalf = 0.5 / 256.0;" + + "const lowp float grainsize = 2.3;" + + "uniform lowp float vignette;" + + "highp float getLuma(highp vec3 rgbP) {" + + "return (0.299 * rgbP.r) + (0.587 * rgbP.g) + (0.114 * rgbP.b);" + + "}" + + "lowp vec3 rgbToHsv(lowp vec3 c) {" + + "highp vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);" + + "highp vec4 p = c.g < c.b ? vec4(c.bg, K.wz) : vec4(c.gb, K.xy);" + + "highp vec4 q = c.r < p.x ? vec4(p.xyw, c.r) : vec4(c.r, p.yzx);" + + "highp float d = q.x - min(q.w, q.y);" + + "highp float e = 1.0e-10;" + + "return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);" + + "}" + + "lowp vec3 hsvToRgb(lowp vec3 c) {" + + "highp vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);" + + "highp vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);" + + "return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);" + + "}" + + "highp vec3 rgbToHsl(highp vec3 color) {" + + "highp vec3 hsl;" + + "highp float fmin = min(min(color.r, color.g), color.b);" + + "highp float fmax = max(max(color.r, color.g), color.b);" + + "highp float delta = fmax - fmin;" + + "hsl.z = (fmax + fmin) / 2.0;" + + "if (delta == 0.0) {" + + "hsl.x = 0.0;" + + "hsl.y = 0.0;" + + "} else {" + + "if (hsl.z < 0.5) {" + + "hsl.y = delta / (fmax + fmin);" + + "} else {" + + "hsl.y = delta / (2.0 - fmax - fmin);" + + "}" + + "highp float deltaR = (((fmax - color.r) / 6.0) + (delta / 2.0)) / delta;" + + "highp float deltaG = (((fmax - color.g) / 6.0) + (delta / 2.0)) / delta;" + + "highp float deltaB = (((fmax - color.b) / 6.0) + (delta / 2.0)) / delta;" + + "if (color.r == fmax) {" + + "hsl.x = deltaB - deltaG;" + + "} else if (color.g == fmax) {" + + "hsl.x = (1.0 / 3.0) + deltaR - deltaB;" + + "} else if (color.b == fmax) {" + + "hsl.x = (2.0 / 3.0) + deltaG - deltaR;" + + "}" + + "if (hsl.x < 0.0) {" + + "hsl.x += 1.0;" + + "} else if (hsl.x > 1.0) {" + + "hsl.x -= 1.0;" + + "}" + + "}" + + "return hsl;" + + "}" + + "highp float hueToRgb(highp float f1, highp float f2, highp float hue) {" + + "if (hue < 0.0) {" + + "hue += 1.0;" + + "} else if (hue > 1.0) {" + + "hue -= 1.0;" + + "}" + + "highp float res;" + + "if ((6.0 * hue) < 1.0) {" + + "res = f1 + (f2 - f1) * 6.0 * hue;" + + "} else if ((2.0 * hue) < 1.0) {" + + "res = f2;" + + "} else if ((3.0 * hue) < 2.0) {" + + "res = f1 + (f2 - f1) * ((2.0 / 3.0) - hue) * 6.0;" + + "} else {" + + "res = f1;" + + "} return res;" + + "}" + + "highp vec3 hslToRgb(highp vec3 hsl) {" + + "if (hsl.y == 0.0) {" + + "return vec3(hsl.z);" + + "} else {" + + "highp float f2;" + + "if (hsl.z < 0.5) {" + + "f2 = hsl.z * (1.0 + hsl.y);" + + "} else {" + + "f2 = (hsl.z + hsl.y) - (hsl.y * hsl.z);" + + "}" + + "highp float f1 = 2.0 * hsl.z - f2;" + + "return vec3(hueToRgb(f1, f2, hsl.x + (1.0/3.0)), hueToRgb(f1, f2, hsl.x), hueToRgb(f1, f2, hsl.x - (1.0/3.0)));" + + "}" + + "}" + + "highp vec3 rgbToYuv(highp vec3 inP) {" + + "highp float luma = getLuma(inP);" + + "return vec3(luma, (1.0 / 1.772) * (inP.b - luma), (1.0 / 1.402) * (inP.r - luma));" + + "}" + + "lowp vec3 yuvToRgb(highp vec3 inP) {" + + "return vec3(1.402 * inP.b + inP.r, (inP.r - (0.299 * 1.402 / 0.587) * inP.b - (0.114 * 1.772 / 0.587) * inP.g), 1.772 * inP.g + inP.r);" + + "}" + + "lowp float easeInOutSigmoid(lowp float value, lowp float strength) {" + + "if (value > 0.5) {" + + "return 1.0 - pow(2.0 - 2.0 * value, 1.0 / (1.0 - strength)) * 0.5;" + + "} else {" + + "return pow(2.0 * value, 1.0 / (1.0 - strength)) * 0.5;" + + "}" + + "}" + + "lowp vec3 applyLuminanceCurve(lowp vec3 pixel) {" + + "highp float index = floor(clamp(pixel.z / (1.0 / 200.0), 0.0, 199.0));" + + "pixel.y = mix(0.0, pixel.y, smoothstep(0.0, 0.1, pixel.z) * (1.0 - smoothstep(0.8, 1.0, pixel.z)));" + + "pixel.z = texture2D(curvesImage, vec2(1.0 / 200.0 * index, 0)).a;" + + "return pixel;" + + "}" + + "lowp vec3 applyRGBCurve(lowp vec3 pixel) {" + + "highp float index = floor(clamp(pixel.r / (1.0 / 200.0), 0.0, 199.0));" + + "pixel.r = texture2D(curvesImage, vec2(1.0 / 200.0 * index, 0)).r;" + + "index = floor(clamp(pixel.g / (1.0 / 200.0), 0.0, 199.0));" + + "pixel.g = clamp(texture2D(curvesImage, vec2(1.0 / 200.0 * index, 0)).g, 0.0, 1.0);" + + "index = floor(clamp(pixel.b / (1.0 / 200.0), 0.0, 199.0));" + + "pixel.b = clamp(texture2D(curvesImage, vec2(1.0 / 200.0 * index, 0)).b, 0.0, 1.0);" + + "return pixel;" + + "}" + + "highp vec3 fadeAdjust(highp vec3 color, highp float fadeVal) {" + + "return (color * (1.0 - fadeVal)) + ((color + (vec3(-0.9772) * pow(vec3(color), vec3(3.0)) + vec3(1.708) * pow(vec3(color), vec3(2.0)) + vec3(-0.1603) * vec3(color) + vec3(0.2878) - color * vec3(0.9))) * fadeVal);" + + "}" + + "lowp vec3 tintRaiseShadowsCurve(lowp vec3 color) {" + + "return vec3(-0.003671) * pow(color, vec3(3.0)) + vec3(0.3842) * pow(color, vec3(2.0)) + vec3(0.3764) * color + vec3(0.2515);" + + "}" + + "lowp vec3 tintShadows(lowp vec3 texel, lowp vec3 tintColor, lowp float tintAmount) {" + + "return clamp(mix(texel, mix(texel, tintRaiseShadowsCurve(texel), tintColor), tintAmount), 0.0, 1.0);" + + "} " + + "lowp vec3 tintHighlights(lowp vec3 texel, lowp vec3 tintColor, lowp float tintAmount) {" + + "return clamp(mix(texel, mix(texel, vec3(1.0) - tintRaiseShadowsCurve(vec3(1.0) - texel), (vec3(1.0) - tintColor)), tintAmount), 0.0, 1.0);" + + "}" + + "highp vec4 rnm(in highp vec2 tc) {" + + "highp float noise = sin(dot(tc, vec2(12.9898, 78.233))) * 43758.5453;" + + "return vec4(fract(noise), fract(noise * 1.2154), fract(noise * 1.3453), fract(noise * 1.3647)) * 2.0 - 1.0;" + + "}" + + "highp float fade(in highp float t) {" + + "return t * t * t * (t * (t * 6.0 - 15.0) + 10.0);" + + "}" + + "highp float pnoise3D(in highp vec3 p) {" + + "highp vec3 pi = permTexUnit * floor(p) + permTexUnitHalf;" + + "highp vec3 pf = fract(p);" + + "highp float perm = rnm(pi.xy).a;" + + "highp float n000 = dot(rnm(vec2(perm, pi.z)).rgb * 4.0 - 1.0, pf);" + + "highp float n001 = dot(rnm(vec2(perm, pi.z + permTexUnit)).rgb * 4.0 - 1.0, pf - vec3(0.0, 0.0, 1.0));" + + "perm = rnm(pi.xy + vec2(0.0, permTexUnit)).a;" + + "highp float n010 = dot(rnm(vec2(perm, pi.z)).rgb * 4.0 - 1.0, pf - vec3(0.0, 1.0, 0.0));" + + "highp float n011 = dot(rnm(vec2(perm, pi.z + permTexUnit)).rgb * 4.0 - 1.0, pf - vec3(0.0, 1.0, 1.0));" + + "perm = rnm(pi.xy + vec2(permTexUnit, 0.0)).a;" + + "highp float n100 = dot(rnm(vec2(perm, pi.z)).rgb * 4.0 - 1.0, pf - vec3(1.0, 0.0, 0.0));" + + "highp float n101 = dot(rnm(vec2(perm, pi.z + permTexUnit)).rgb * 4.0 - 1.0, pf - vec3(1.0, 0.0, 1.0));" + + "perm = rnm(pi.xy + vec2(permTexUnit, permTexUnit)).a;" + + "highp float n110 = dot(rnm(vec2(perm, pi.z)).rgb * 4.0 - 1.0, pf - vec3(1.0, 1.0, 0.0));" + + "highp float n111 = dot(rnm(vec2(perm, pi.z + permTexUnit)).rgb * 4.0 - 1.0, pf - vec3(1.0, 1.0, 1.0));" + + "highp vec4 n_x = mix(vec4(n000, n001, n010, n011), vec4(n100, n101, n110, n111), fade(pf.x));" + + "highp vec2 n_xy = mix(n_x.xy, n_x.zw, fade(pf.y));" + + "return mix(n_xy.x, n_xy.y, fade(pf.z));" + + "}" + + "lowp vec2 coordRot(in lowp vec2 tc, in lowp float angle) {" + + "return vec2(((tc.x * 2.0 - 1.0) * cos(angle) - (tc.y * 2.0 - 1.0) * sin(angle)) * 0.5 + 0.5, ((tc.y * 2.0 - 1.0) * cos(angle) + (tc.x * 2.0 - 1.0) * sin(angle)) * 0.5 + 0.5);" + + "}" + + "void main() {" + + "lowp vec4 source = texture2D(sourceImage, texCoord);" + + "lowp vec4 result = source;" + + "const lowp float toolEpsilon = 0.005;" + + "if (skipTone < toolEpsilon) {" + + "result = vec4(applyRGBCurve(hslToRgb(applyLuminanceCurve(rgbToHsl(result.rgb)))), result.a);" + + "}" + + "mediump float hsLuminance = dot(result.rgb, hsLuminanceWeighting);" + + "mediump float shadow = clamp((pow(hsLuminance, 1.0 / shadows) + (-0.76) * pow(hsLuminance, 2.0 / shadows)) - hsLuminance, 0.0, 1.0);" + + "mediump float highlight = clamp((1.0 - (pow(1.0 - hsLuminance, 1.0 / (2.0 - highlights)) + (-0.8) * pow(1.0 - hsLuminance, 2.0 / (2.0 - highlights)))) - hsLuminance, -1.0, 0.0);" + + "lowp vec3 hsresult = vec3(0.0, 0.0, 0.0) + ((hsLuminance + shadow + highlight) - 0.0) * ((result.rgb - vec3(0.0, 0.0, 0.0)) / (hsLuminance - 0.0));" + + "mediump float contrastedLuminance = ((hsLuminance - 0.5) * 1.5) + 0.5;" + + "mediump float whiteInterp = contrastedLuminance * contrastedLuminance * contrastedLuminance;" + + "mediump float whiteTarget = clamp(highlights, 1.0, 2.0) - 1.0;" + + "hsresult = mix(hsresult, vec3(1.0), whiteInterp * whiteTarget);" + + "mediump float invContrastedLuminance = 1.0 - contrastedLuminance;" + + "mediump float blackInterp = invContrastedLuminance * invContrastedLuminance * invContrastedLuminance;" + + "mediump float blackTarget = 1.0 - clamp(shadows, 0.0, 1.0);" + + "hsresult = mix(hsresult, vec3(0.0), blackInterp * blackTarget);" + + "result = vec4(hsresult.rgb, result.a);" + + "result = vec4(clamp(((result.rgb - vec3(0.5)) * contrast + vec3(0.5)), 0.0, 1.0), result.a);" + + "if (abs(fadeAmount) > toolEpsilon) {" + + "result.rgb = fadeAdjust(result.rgb, fadeAmount);" + + "}" + + "lowp float satLuminance = dot(result.rgb, satLuminanceWeighting);" + + "lowp vec3 greyScaleColor = vec3(satLuminance);" + + "result = vec4(clamp(mix(greyScaleColor, result.rgb, saturation), 0.0, 1.0), result.a);" + + "if (abs(shadowsTintIntensity) > toolEpsilon) {" + + "result.rgb = tintShadows(result.rgb, shadowsTintColor, shadowsTintIntensity * 2.0);" + + "}" + + "if (abs(highlightsTintIntensity) > toolEpsilon) {" + + "result.rgb = tintHighlights(result.rgb, highlightsTintColor, highlightsTintIntensity * 2.0);" + + "}" + + "if (abs(exposure) > toolEpsilon) {" + + "mediump float mag = exposure * 1.045;" + + "mediump float exppower = 1.0 + abs(mag);" + + "if (mag < 0.0) {" + + "exppower = 1.0 / exppower;" + + "}" + + "result.r = 1.0 - pow((1.0 - result.r), exppower);" + + "result.g = 1.0 - pow((1.0 - result.g), exppower);" + + "result.b = 1.0 - pow((1.0 - result.b), exppower);" + + "}" + + "if (abs(warmth) > toolEpsilon) {" + + "highp vec3 yuvVec;" + + "if (warmth > 0.0 ) {" + + "yuvVec = vec3(0.1765, -0.1255, 0.0902);" + + "} else {" + + "yuvVec = -vec3(0.0588, 0.1569, -0.1255);" + + "}" + + "highp vec3 yuvColor = rgbToYuv(result.rgb);" + + "highp float luma = yuvColor.r;" + + "highp float curveScale = sin(luma * 3.14159);" + + "yuvColor += 0.375 * warmth * curveScale * yuvVec;" + + "result.rgb = yuvToRgb(yuvColor);" + + "}" + + "if (abs(grain) > toolEpsilon) {" + + "highp vec3 rotOffset = vec3(1.425, 3.892, 5.835);" + + "highp vec2 rotCoordsR = coordRot(texCoord, rotOffset.x);" + + "highp vec3 noise = vec3(pnoise3D(vec3(rotCoordsR * vec2(width / grainsize, height / grainsize),0.0)));" + + "lowp vec3 lumcoeff = vec3(0.299,0.587,0.114);" + + "lowp float luminance = dot(result.rgb, lumcoeff);" + + "lowp float lum = smoothstep(0.2, 0.0, luminance);" + + "lum += luminance;" + + "noise = mix(noise,vec3(0.0),pow(lum,4.0));" + + "result.rgb = result.rgb + noise * grain;" + + "}" + + "if (abs(vignette) > toolEpsilon) {" + + "const lowp float midpoint = 0.7;" + + "const lowp float fuzziness = 0.62;" + + "lowp float radDist = length(texCoord - 0.5) / sqrt(0.5);" + + "lowp float mag = easeInOutSigmoid(radDist * midpoint, fuzziness) * vignette * 0.645;" + + "result.rgb = mix(pow(result.rgb, vec3(1.0 / (1.0 - mag))), vec3(0.0), mag * mag);" + + "}" + + "gl_FragColor = result;" + + "}"; + + public interface FilterShadersDelegate { + boolean shouldShowOriginal(); + float getShadowsValue(); + float getHighlightsValue(); + float getEnhanceValue(); + float getExposureValue(); + float getContrastValue(); + float getWarmthValue(); + float getVignetteValue(); + float getSharpenValue(); + float getGrainValue(); + float getFadeValue(); + float getTintHighlightsIntensityValue(); + float getTintShadowsIntensityValue(); + float getSaturationValue(); + int getTintHighlightsColor(); + int getTintShadowsColor(); + int getBlurType(); + float getBlurExcludeSize(); + float getBlurExcludeBlurSize(); + float getBlurAngle(); + Point getBlurExcludePoint(); + boolean shouldDrawCurvesPass(); + ByteBuffer fillAndGetCurveBuffer(); + } + + private boolean needUpdateBlurTexture = true; + + private int rgbToHsvShaderProgram; + private int rgbToHsvPositionHandle; + private int rgbToHsvInputTexCoordHandle; + private int rgbToHsvSourceImageHandle; + private int rgbToHsvMatrixHandle; + + private int enhanceShaderProgram; + private int enhancePositionHandle; + private int enhanceInputTexCoordHandle; + private int enhanceSourceImageHandle; + private int enhanceIntensityHandle; + private int enhanceInputImageTexture2Handle; + + private int toolsShaderProgram; + private int positionHandle; + private int inputTexCoordHandle; + private int sourceImageHandle; + private int shadowsHandle; + private int highlightsHandle; + private int exposureHandle; + private int contrastHandle; + private int saturationHandle; + private int warmthHandle; + private int vignetteHandle; + private int grainHandle; + private int widthHandle; + private int heightHandle; + + private int curvesImageHandle; + private int skipToneHandle; + private int fadeAmountHandle; + private int shadowsTintIntensityHandle; + private int highlightsTintIntensityHandle; + private int shadowsTintColorHandle; + private int highlightsTintColorHandle; + + private int blurShaderProgram; + private int blurPositionHandle; + private int blurInputTexCoordHandle; + private int blurSourceImageHandle; + private int blurWidthHandle; + private int blurHeightHandle; + + private int linearBlurShaderProgram; + private int linearBlurPositionHandle; + private int linearBlurInputTexCoordHandle; + private int linearBlurSourceImageHandle; + private int linearBlurSourceImage2Handle; + private int linearBlurExcludeSizeHandle; + private int linearBlurExcludePointHandle; + private int linearBlurExcludeBlurSizeHandle; + private int linearBlurAngleHandle; + private int linearBlurAspectRatioHandle; + + private int radialBlurShaderProgram; + private int radialBlurPositionHandle; + private int radialBlurInputTexCoordHandle; + private int radialBlurSourceImageHandle; + private int radialBlurSourceImage2Handle; + private int radialBlurExcludeSizeHandle; + private int radialBlurExcludePointHandle; + private int radialBlurExcludeBlurSizeHandle; + private int radialBlurAspectRatioHandle; + + private int sharpenShaderProgram; + private int sharpenHandle; + private int sharpenWidthHandle; + private int sharpenHeightHandle; + private int sharpenPositionHandle; + private int sharpenInputTexCoordHandle; + private int sharpenSourceImageHandle; + + private int videoTexture; + private float[] videoMatrix; + private int videoFramesCount; + + private int[] enhanceTextures = new int[2]; + private int[] enhanceFrameBuffer = new int[1]; + private int[] renderTexture = new int[3]; + private int[] renderFrameBuffer; + private int[] curveTextures = new int[1]; + private boolean hsvGenerated; + private int renderBufferWidth; + private int renderBufferHeight; + + private FloatBuffer vertexBuffer; + private FloatBuffer textureBuffer; + private FloatBuffer vertexInvertBuffer; + + private ByteBuffer hsvBuffer; + private ByteBuffer cdtBuffer; + private ByteBuffer calcBuffer; + + private final static int PGPhotoEnhanceHistogramBins = 256; + private final static int PGPhotoEnhanceSegments = 4; + + private FilterShadersDelegate delegate; + + private boolean isVideo; + + public FilterShaders(boolean video) { + isVideo = video; + + float[] squareCoordinates = { + -1.0f, 1.0f, + 1.0f, 1.0f, + -1.0f, -1.0f, + 1.0f, -1.0f}; + + ByteBuffer bb = ByteBuffer.allocateDirect(squareCoordinates.length * 4); + bb.order(ByteOrder.nativeOrder()); + vertexBuffer = bb.asFloatBuffer(); + vertexBuffer.put(squareCoordinates); + vertexBuffer.position(0); + + float[] squareCoordinates2 = { + -1.0f, -1.0f, + 1.0f, -1.0f, + -1.0f, 1.0f, + 1.0f, 1.0f}; + + bb = ByteBuffer.allocateDirect(squareCoordinates2.length * 4); + bb.order(ByteOrder.nativeOrder()); + vertexInvertBuffer = bb.asFloatBuffer(); + vertexInvertBuffer.put(squareCoordinates2); + vertexInvertBuffer.position(0); + + float[] textureCoordinates = { + 0.0f, 0.0f, + 1.0f, 0.0f, + 0.0f, 1.0f, + 1.0f, 1.0f, + }; + + bb = ByteBuffer.allocateDirect(textureCoordinates.length * 4); + bb.order(ByteOrder.nativeOrder()); + textureBuffer = bb.asFloatBuffer(); + textureBuffer.put(textureCoordinates); + textureBuffer.position(0); + } + + public void setDelegate(FilterShadersDelegate filterShadersDelegate) { + delegate = filterShadersDelegate; + } + + public boolean create() { + GLES20.glGenTextures(1, curveTextures, 0); + GLES20.glGenTextures(2, enhanceTextures, 0); + GLES20.glGenFramebuffers(1, enhanceFrameBuffer, 0); + + GLES20.glBindTexture(GL10.GL_TEXTURE_2D, enhanceTextures[1]); + GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR); + GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR); + GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE); + GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE); + + GLES20.glBindTexture(GL10.GL_TEXTURE_2D, curveTextures[0]); + GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR); + GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR); + GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE); + GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE); + + int vertexShader = loadShader(GLES20.GL_VERTEX_SHADER, simpleVertexShaderCode); + int fragmentShader = loadShader(GLES20.GL_FRAGMENT_SHADER, toolsFragmentShaderCode); + + if (vertexShader != 0 && fragmentShader != 0) { + toolsShaderProgram = GLES20.glCreateProgram(); + GLES20.glAttachShader(toolsShaderProgram, vertexShader); + GLES20.glAttachShader(toolsShaderProgram, fragmentShader); + GLES20.glBindAttribLocation(toolsShaderProgram, 0, "position"); + GLES20.glBindAttribLocation(toolsShaderProgram, 1, "inputTexCoord"); + + GLES20.glLinkProgram(toolsShaderProgram); + int[] linkStatus = new int[1]; + GLES20.glGetProgramiv(toolsShaderProgram, GLES20.GL_LINK_STATUS, linkStatus, 0); + if (linkStatus[0] == 0) { + GLES20.glDeleteProgram(toolsShaderProgram); + toolsShaderProgram = 0; + } else { + positionHandle = GLES20.glGetAttribLocation(toolsShaderProgram, "position"); + inputTexCoordHandle = GLES20.glGetAttribLocation(toolsShaderProgram, "inputTexCoord"); + sourceImageHandle = GLES20.glGetUniformLocation(toolsShaderProgram, "sourceImage"); + shadowsHandle = GLES20.glGetUniformLocation(toolsShaderProgram, "shadows"); + highlightsHandle = GLES20.glGetUniformLocation(toolsShaderProgram, "highlights"); + exposureHandle = GLES20.glGetUniformLocation(toolsShaderProgram, "exposure"); + contrastHandle = GLES20.glGetUniformLocation(toolsShaderProgram, "contrast"); + saturationHandle = GLES20.glGetUniformLocation(toolsShaderProgram, "saturation"); + warmthHandle = GLES20.glGetUniformLocation(toolsShaderProgram, "warmth"); + vignetteHandle = GLES20.glGetUniformLocation(toolsShaderProgram, "vignette"); + grainHandle = GLES20.glGetUniformLocation(toolsShaderProgram, "grain"); + widthHandle = GLES20.glGetUniformLocation(toolsShaderProgram, "width"); + heightHandle = GLES20.glGetUniformLocation(toolsShaderProgram, "height"); + curvesImageHandle = GLES20.glGetUniformLocation(toolsShaderProgram, "curvesImage"); + skipToneHandle = GLES20.glGetUniformLocation(toolsShaderProgram, "skipTone"); + fadeAmountHandle = GLES20.glGetUniformLocation(toolsShaderProgram, "fadeAmount"); + shadowsTintIntensityHandle = GLES20.glGetUniformLocation(toolsShaderProgram, "shadowsTintIntensity"); + highlightsTintIntensityHandle = GLES20.glGetUniformLocation(toolsShaderProgram, "highlightsTintIntensity"); + shadowsTintColorHandle = GLES20.glGetUniformLocation(toolsShaderProgram, "shadowsTintColor"); + highlightsTintColorHandle = GLES20.glGetUniformLocation(toolsShaderProgram, "highlightsTintColor"); + } + } else { + return false; + } + + vertexShader = loadShader(GLES20.GL_VERTEX_SHADER, sharpenVertexShaderCode); + fragmentShader = loadShader(GLES20.GL_FRAGMENT_SHADER, sharpenFragmentShaderCode); + + if (vertexShader != 0 && fragmentShader != 0) { + sharpenShaderProgram = GLES20.glCreateProgram(); + GLES20.glAttachShader(sharpenShaderProgram, vertexShader); + GLES20.glAttachShader(sharpenShaderProgram, fragmentShader); + GLES20.glBindAttribLocation(sharpenShaderProgram, 0, "position"); + GLES20.glBindAttribLocation(sharpenShaderProgram, 1, "inputTexCoord"); + + GLES20.glLinkProgram(sharpenShaderProgram); + int[] linkStatus = new int[1]; + GLES20.glGetProgramiv(sharpenShaderProgram, GLES20.GL_LINK_STATUS, linkStatus, 0); + if (linkStatus[0] == 0) { + GLES20.glDeleteProgram(sharpenShaderProgram); + sharpenShaderProgram = 0; + } else { + sharpenPositionHandle = GLES20.glGetAttribLocation(sharpenShaderProgram, "position"); + sharpenInputTexCoordHandle = GLES20.glGetAttribLocation(sharpenShaderProgram, "inputTexCoord"); + sharpenSourceImageHandle = GLES20.glGetUniformLocation(sharpenShaderProgram, "sourceImage"); + sharpenWidthHandle = GLES20.glGetUniformLocation(sharpenShaderProgram, "inputWidth"); + sharpenHeightHandle = GLES20.glGetUniformLocation(sharpenShaderProgram, "inputHeight"); + sharpenHandle = GLES20.glGetUniformLocation(sharpenShaderProgram, "sharpen"); + } + } else { + return false; + } + + vertexShader = loadShader(GLES20.GL_VERTEX_SHADER, blurVertexShaderCode); + fragmentShader = loadShader(GLES20.GL_FRAGMENT_SHADER, blurFragmentShaderCode); + + if (vertexShader != 0 && fragmentShader != 0) { + blurShaderProgram = GLES20.glCreateProgram(); + GLES20.glAttachShader(blurShaderProgram, vertexShader); + GLES20.glAttachShader(blurShaderProgram, fragmentShader); + GLES20.glBindAttribLocation(blurShaderProgram, 0, "position"); + GLES20.glBindAttribLocation(blurShaderProgram, 1, "inputTexCoord"); + + GLES20.glLinkProgram(blurShaderProgram); + int[] linkStatus = new int[1]; + GLES20.glGetProgramiv(blurShaderProgram, GLES20.GL_LINK_STATUS, linkStatus, 0); + if (linkStatus[0] == 0) { + GLES20.glDeleteProgram(blurShaderProgram); + blurShaderProgram = 0; + } else { + blurPositionHandle = GLES20.glGetAttribLocation(blurShaderProgram, "position"); + blurInputTexCoordHandle = GLES20.glGetAttribLocation(blurShaderProgram, "inputTexCoord"); + blurSourceImageHandle = GLES20.glGetUniformLocation(blurShaderProgram, "sourceImage"); + blurWidthHandle = GLES20.glGetUniformLocation(blurShaderProgram, "texelWidthOffset"); + blurHeightHandle = GLES20.glGetUniformLocation(blurShaderProgram, "texelHeightOffset"); + } + } else { + return false; + } + + vertexShader = loadShader(GLES20.GL_VERTEX_SHADER, simpleVertexShaderCode); + fragmentShader = loadShader(GLES20.GL_FRAGMENT_SHADER, linearBlurFragmentShaderCode); + + if (vertexShader != 0 && fragmentShader != 0) { + linearBlurShaderProgram = GLES20.glCreateProgram(); + GLES20.glAttachShader(linearBlurShaderProgram, vertexShader); + GLES20.glAttachShader(linearBlurShaderProgram, fragmentShader); + GLES20.glBindAttribLocation(linearBlurShaderProgram, 0, "position"); + GLES20.glBindAttribLocation(linearBlurShaderProgram, 1, "inputTexCoord"); + + GLES20.glLinkProgram(linearBlurShaderProgram); + int[] linkStatus = new int[1]; + GLES20.glGetProgramiv(linearBlurShaderProgram, GLES20.GL_LINK_STATUS, linkStatus, 0); + if (linkStatus[0] == 0) { + GLES20.glDeleteProgram(linearBlurShaderProgram); + linearBlurShaderProgram = 0; + } else { + linearBlurPositionHandle = GLES20.glGetAttribLocation(linearBlurShaderProgram, "position"); + linearBlurInputTexCoordHandle = GLES20.glGetAttribLocation(linearBlurShaderProgram, "inputTexCoord"); + linearBlurSourceImageHandle = GLES20.glGetUniformLocation(linearBlurShaderProgram, "sourceImage"); + linearBlurSourceImage2Handle = GLES20.glGetUniformLocation(linearBlurShaderProgram, "inputImageTexture2"); + linearBlurExcludeSizeHandle = GLES20.glGetUniformLocation(linearBlurShaderProgram, "excludeSize"); + linearBlurExcludePointHandle = GLES20.glGetUniformLocation(linearBlurShaderProgram, "excludePoint"); + linearBlurExcludeBlurSizeHandle = GLES20.glGetUniformLocation(linearBlurShaderProgram, "excludeBlurSize"); + linearBlurAngleHandle = GLES20.glGetUniformLocation(linearBlurShaderProgram, "angle"); + linearBlurAspectRatioHandle = GLES20.glGetUniformLocation(linearBlurShaderProgram, "aspectRatio"); + } + } else { + return false; + } + + vertexShader = loadShader(GLES20.GL_VERTEX_SHADER, simpleVertexShaderCode); + fragmentShader = loadShader(GLES20.GL_FRAGMENT_SHADER, radialBlurFragmentShaderCode); + + if (vertexShader != 0 && fragmentShader != 0) { + radialBlurShaderProgram = GLES20.glCreateProgram(); + GLES20.glAttachShader(radialBlurShaderProgram, vertexShader); + GLES20.glAttachShader(radialBlurShaderProgram, fragmentShader); + GLES20.glBindAttribLocation(radialBlurShaderProgram, 0, "position"); + GLES20.glBindAttribLocation(radialBlurShaderProgram, 1, "inputTexCoord"); + + GLES20.glLinkProgram(radialBlurShaderProgram); + int[] linkStatus = new int[1]; + GLES20.glGetProgramiv(radialBlurShaderProgram, GLES20.GL_LINK_STATUS, linkStatus, 0); + if (linkStatus[0] == 0) { + GLES20.glDeleteProgram(radialBlurShaderProgram); + radialBlurShaderProgram = 0; + } else { + radialBlurPositionHandle = GLES20.glGetAttribLocation(radialBlurShaderProgram, "position"); + radialBlurInputTexCoordHandle = GLES20.glGetAttribLocation(radialBlurShaderProgram, "inputTexCoord"); + radialBlurSourceImageHandle = GLES20.glGetUniformLocation(radialBlurShaderProgram, "sourceImage"); + radialBlurSourceImage2Handle = GLES20.glGetUniformLocation(radialBlurShaderProgram, "inputImageTexture2"); + radialBlurExcludeSizeHandle = GLES20.glGetUniformLocation(radialBlurShaderProgram, "excludeSize"); + radialBlurExcludePointHandle = GLES20.glGetUniformLocation(radialBlurShaderProgram, "excludePoint"); + radialBlurExcludeBlurSizeHandle = GLES20.glGetUniformLocation(radialBlurShaderProgram, "excludeBlurSize"); + radialBlurAspectRatioHandle = GLES20.glGetUniformLocation(radialBlurShaderProgram, "aspectRatio"); + } + } else { + return false; + } + + if (isVideo) { + fragmentShader = loadShader(GLES20.GL_FRAGMENT_SHADER, rgbToHsvFragmentVideoShaderCode); + vertexShader = loadShader(GLES20.GL_VERTEX_SHADER, simpleVertexVideoShaderCode); + } else { + fragmentShader = loadShader(GLES20.GL_FRAGMENT_SHADER, rgbToHsvFragmentShaderCode); + vertexShader = loadShader(GLES20.GL_VERTEX_SHADER, simpleVertexShaderCode); + } + if (vertexShader != 0 && fragmentShader != 0) { + rgbToHsvShaderProgram = GLES20.glCreateProgram(); + GLES20.glAttachShader(rgbToHsvShaderProgram, vertexShader); + GLES20.glAttachShader(rgbToHsvShaderProgram, fragmentShader); + GLES20.glBindAttribLocation(rgbToHsvShaderProgram, 0, "position"); + GLES20.glBindAttribLocation(rgbToHsvShaderProgram, 1, "inputTexCoord"); + + GLES20.glLinkProgram(rgbToHsvShaderProgram); + int[] linkStatus = new int[1]; + GLES20.glGetProgramiv(rgbToHsvShaderProgram, GLES20.GL_LINK_STATUS, linkStatus, 0); + if (linkStatus[0] == 0) { + GLES20.glDeleteProgram(rgbToHsvShaderProgram); + rgbToHsvShaderProgram = 0; + } else { + rgbToHsvPositionHandle = GLES20.glGetAttribLocation(rgbToHsvShaderProgram, "position"); + rgbToHsvInputTexCoordHandle = GLES20.glGetAttribLocation(rgbToHsvShaderProgram, "inputTexCoord"); + rgbToHsvSourceImageHandle = GLES20.glGetUniformLocation(rgbToHsvShaderProgram, "sourceImage"); + if (isVideo) { + rgbToHsvMatrixHandle = GLES20.glGetUniformLocation(rgbToHsvShaderProgram, "videoMatrix"); + } + } + } else { + return false; + } + + vertexShader = loadShader(GLES20.GL_VERTEX_SHADER, simpleVertexShaderCode); + fragmentShader = loadShader(GLES20.GL_FRAGMENT_SHADER, enhanceFragmentShaderCode); + if (vertexShader != 0 && fragmentShader != 0) { + enhanceShaderProgram = GLES20.glCreateProgram(); + GLES20.glAttachShader(enhanceShaderProgram, vertexShader); + GLES20.glAttachShader(enhanceShaderProgram, fragmentShader); + GLES20.glBindAttribLocation(enhanceShaderProgram, 0, "position"); + GLES20.glBindAttribLocation(enhanceShaderProgram, 1, "inputTexCoord"); + + GLES20.glLinkProgram(enhanceShaderProgram); + int[] linkStatus = new int[1]; + GLES20.glGetProgramiv(enhanceShaderProgram, GLES20.GL_LINK_STATUS, linkStatus, 0); + if (linkStatus[0] == 0) { + GLES20.glDeleteProgram(enhanceShaderProgram); + enhanceShaderProgram = 0; + } else { + enhancePositionHandle = GLES20.glGetAttribLocation(enhanceShaderProgram, "position"); + enhanceInputTexCoordHandle = GLES20.glGetAttribLocation(enhanceShaderProgram, "inputTexCoord"); + enhanceSourceImageHandle = GLES20.glGetUniformLocation(enhanceShaderProgram, "sourceImage"); + enhanceIntensityHandle = GLES20.glGetUniformLocation(enhanceShaderProgram, "intensity"); + enhanceInputImageTexture2Handle = GLES20.glGetUniformLocation(enhanceShaderProgram, "inputImageTexture2"); + } + } else { + return false; + } + + return true; + } + + public void setRenderData(Bitmap currentBitmap, int orientation, int videoTex, int w, int h) { + loadTexture(currentBitmap, orientation, w, h); + videoTexture = videoTex; + + GLES20.glBindTexture(GL10.GL_TEXTURE_2D, enhanceTextures[0]); + GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR); + GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR); + GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE); + GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE); + GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, renderBufferWidth, renderBufferHeight, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, hsvBuffer); + } + + public static int loadShader(int type, String shaderCode) { + int shader = GLES20.glCreateShader(type); + GLES20.glShaderSource(shader, shaderCode); + GLES20.glCompileShader(shader); + int[] compileStatus = new int[1]; + GLES20.glGetShaderiv(shader, GLES20.GL_COMPILE_STATUS, compileStatus, 0); + if (compileStatus[0] == 0) { + if (BuildVars.LOGS_ENABLED) { + FileLog.e(GLES20.glGetShaderInfoLog(shader)); + } + GLES20.glDeleteShader(shader); + shader = 0; + } + return shader; + } + + public void drawEnhancePass() { + boolean updateFrame; + if (isVideo) { + updateFrame = true; + } else { + updateFrame = !hsvGenerated; + } + if (updateFrame) { + GLES20.glUseProgram(rgbToHsvShaderProgram); + GLES20.glActiveTexture(GLES20.GL_TEXTURE0); + if (isVideo) { + GLES20.glBindTexture(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, videoTexture); + GLES20.glUniformMatrix4fv(rgbToHsvMatrixHandle, 1, false, videoMatrix, 0); + } else { + GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, renderTexture[1]); + } + GLES20.glUniform1i(rgbToHsvSourceImageHandle, 0); + GLES20.glEnableVertexAttribArray(rgbToHsvInputTexCoordHandle); + GLES20.glVertexAttribPointer(rgbToHsvInputTexCoordHandle, 2, GLES20.GL_FLOAT, false, 8, textureBuffer); + GLES20.glEnableVertexAttribArray(rgbToHsvPositionHandle); + GLES20.glVertexAttribPointer(rgbToHsvPositionHandle, 2, GLES20.GL_FLOAT, false, 8, isVideo ? vertexInvertBuffer : vertexBuffer); + + GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, enhanceFrameBuffer[0]); + GLES20.glFramebufferTexture2D(GLES20.GL_FRAMEBUFFER, GLES20.GL_COLOR_ATTACHMENT0, GLES20.GL_TEXTURE_2D, enhanceTextures[0], 0); + GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4); + } + + if (!hsvGenerated) { + int newCapacity = renderBufferWidth * renderBufferHeight * 4; + if (hsvBuffer == null || newCapacity > hsvBuffer.capacity()) { + hsvBuffer = ByteBuffer.allocateDirect(newCapacity); + } + if (cdtBuffer == null) { + cdtBuffer = ByteBuffer.allocateDirect(PGPhotoEnhanceSegments * PGPhotoEnhanceSegments * PGPhotoEnhanceHistogramBins * 4); + } + if (calcBuffer == null) { + calcBuffer = ByteBuffer.allocateDirect(PGPhotoEnhanceSegments * PGPhotoEnhanceSegments * 2 * 4 * (1 + PGPhotoEnhanceHistogramBins)); + } + GLES20.glReadPixels(0, 0, renderBufferWidth, renderBufferHeight, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, hsvBuffer); + Utilities.calcCDT(hsvBuffer, renderBufferWidth, renderBufferHeight, cdtBuffer, calcBuffer); + + GLES20.glBindTexture(GL10.GL_TEXTURE_2D, enhanceTextures[1]); + GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, 256, 16, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, cdtBuffer); + + if (!isVideo) { + hsvBuffer = null; + cdtBuffer = null; + calcBuffer = null; + } + hsvGenerated = true; + } + + GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, renderFrameBuffer[1]); + GLES20.glFramebufferTexture2D(GLES20.GL_FRAMEBUFFER, GLES20.GL_COLOR_ATTACHMENT0, GLES20.GL_TEXTURE_2D, renderTexture[1], 0); + + GLES20.glUseProgram(enhanceShaderProgram); + GLES20.glActiveTexture(GLES20.GL_TEXTURE0); + GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, enhanceTextures[0]); + GLES20.glUniform1i(enhanceSourceImageHandle, 0); + GLES20.glActiveTexture(GLES20.GL_TEXTURE1); + GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, enhanceTextures[1]); + GLES20.glUniform1i(enhanceInputImageTexture2Handle, 1); + if (delegate == null || delegate.shouldShowOriginal()) { + GLES20.glUniform1f(enhanceIntensityHandle, 0); + } else { + GLES20.glUniform1f(enhanceIntensityHandle, delegate.getEnhanceValue()); + } + + GLES20.glEnableVertexAttribArray(enhanceInputTexCoordHandle); + GLES20.glVertexAttribPointer(enhanceInputTexCoordHandle, 2, GLES20.GL_FLOAT, false, 8, textureBuffer); + GLES20.glEnableVertexAttribArray(enhancePositionHandle); + GLES20.glVertexAttribPointer(enhancePositionHandle, 2, GLES20.GL_FLOAT, false, 8, vertexBuffer); + GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4); + } + + public void drawSharpenPass() { + if (isVideo) { + return; + } + GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, renderFrameBuffer[0]); + GLES20.glFramebufferTexture2D(GLES20.GL_FRAMEBUFFER, GLES20.GL_COLOR_ATTACHMENT0, GLES20.GL_TEXTURE_2D, renderTexture[0], 0); + + GLES20.glUseProgram(sharpenShaderProgram); + GLES20.glActiveTexture(GLES20.GL_TEXTURE0); + GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, renderTexture[1]); + GLES20.glUniform1i(sharpenSourceImageHandle, 0); + if (delegate == null || delegate.shouldShowOriginal()) { + GLES20.glUniform1f(sharpenHandle, 0); + } else { + GLES20.glUniform1f(sharpenHandle, delegate.getSharpenValue()); + } + GLES20.glUniform1f(sharpenWidthHandle, renderBufferWidth); + GLES20.glUniform1f(sharpenHeightHandle, renderBufferHeight); + GLES20.glEnableVertexAttribArray(sharpenInputTexCoordHandle); + GLES20.glVertexAttribPointer(sharpenInputTexCoordHandle, 2, GLES20.GL_FLOAT, false, 8, textureBuffer); + GLES20.glEnableVertexAttribArray(sharpenPositionHandle); + GLES20.glVertexAttribPointer(sharpenPositionHandle, 2, GLES20.GL_FLOAT, false, 8, vertexInvertBuffer); + GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4); + } + + public void drawCustomParamsPass() { + GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, renderFrameBuffer[isVideo ? 0 : 1]); + GLES20.glFramebufferTexture2D(GLES20.GL_FRAMEBUFFER, GLES20.GL_COLOR_ATTACHMENT0, GLES20.GL_TEXTURE_2D, renderTexture[isVideo ? 0 : 1], 0); + + GLES20.glUseProgram(toolsShaderProgram); + GLES20.glActiveTexture(GLES20.GL_TEXTURE0); + GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, renderTexture[isVideo ? 1 : 0]); + GLES20.glUniform1i(sourceImageHandle, 0); + if (delegate == null || delegate.shouldShowOriginal()) { + GLES20.glUniform1f(shadowsHandle, 1); + GLES20.glUniform1f(highlightsHandle, 1); + GLES20.glUniform1f(exposureHandle, 0); + GLES20.glUniform1f(contrastHandle, 1); + GLES20.glUniform1f(saturationHandle, 1); + GLES20.glUniform1f(warmthHandle, 0); + GLES20.glUniform1f(vignetteHandle, 0); + GLES20.glUniform1f(grainHandle, 0); + GLES20.glUniform1f(fadeAmountHandle, 0); + GLES20.glUniform3f(highlightsTintColorHandle, 0, 0, 0); + GLES20.glUniform1f(highlightsTintIntensityHandle, 0); + GLES20.glUniform3f(shadowsTintColorHandle, 0, 0, 0); + GLES20.glUniform1f(shadowsTintIntensityHandle, 0); + GLES20.glUniform1f(skipToneHandle, 1); + } else { + GLES20.glUniform1f(shadowsHandle, delegate.getShadowsValue()); + GLES20.glUniform1f(highlightsHandle, delegate.getHighlightsValue()); + GLES20.glUniform1f(exposureHandle, delegate.getExposureValue()); + GLES20.glUniform1f(contrastHandle, delegate.getContrastValue()); + GLES20.glUniform1f(saturationHandle, delegate.getSaturationValue()); + GLES20.glUniform1f(warmthHandle, delegate.getWarmthValue()); + GLES20.glUniform1f(vignetteHandle, delegate.getVignetteValue()); + GLES20.glUniform1f(grainHandle, delegate.getGrainValue()); + GLES20.glUniform1f(fadeAmountHandle, delegate.getFadeValue()); + int tintHighlightsColor = delegate.getTintHighlightsColor(); + int tintShadowsColor = delegate.getTintShadowsColor(); + GLES20.glUniform3f(highlightsTintColorHandle, (tintHighlightsColor >> 16 & 0xff) / 255.0f, (tintHighlightsColor >> 8 & 0xff) / 255.0f, (tintHighlightsColor & 0xff) / 255.0f); + GLES20.glUniform1f(highlightsTintIntensityHandle, delegate.getTintHighlightsIntensityValue()); + GLES20.glUniform3f(shadowsTintColorHandle, (tintShadowsColor >> 16 & 0xff) / 255.0f, (tintShadowsColor >> 8 & 0xff) / 255.0f, (tintShadowsColor & 0xff) / 255.0f); + GLES20.glUniform1f(shadowsTintIntensityHandle, delegate.getTintShadowsIntensityValue()); + boolean shouldDrawCurvesPass = delegate.shouldDrawCurvesPass(); + GLES20.glUniform1f(skipToneHandle, shouldDrawCurvesPass ? 0.0f : 1.0f); + if (shouldDrawCurvesPass) { + ByteBuffer curveBuffer = delegate.fillAndGetCurveBuffer(); + GLES20.glActiveTexture(GLES20.GL_TEXTURE1); + GLES20.glBindTexture(GL10.GL_TEXTURE_2D, curveTextures[0]); + GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, 200, 1, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, curveBuffer); + GLES20.glUniform1i(curvesImageHandle, 1); + } + } + + GLES20.glUniform1f(widthHandle, renderBufferWidth); + GLES20.glUniform1f(heightHandle, renderBufferHeight); + GLES20.glEnableVertexAttribArray(inputTexCoordHandle); + GLES20.glVertexAttribPointer(inputTexCoordHandle, 2, GLES20.GL_FLOAT, false, 8, textureBuffer); + GLES20.glEnableVertexAttribArray(positionHandle); + GLES20.glVertexAttribPointer(positionHandle, 2, GLES20.GL_FLOAT, false, 8, vertexInvertBuffer); + GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4); + } + + public boolean drawBlurPass() { + int blurType = delegate != null ? delegate.getBlurType() : 0; + if (isVideo || delegate == null || delegate.shouldShowOriginal() || blurType == 0) { + return false; + } + if (needUpdateBlurTexture) { + GLES20.glUseProgram(blurShaderProgram); + GLES20.glUniform1i(blurSourceImageHandle, 0); + GLES20.glEnableVertexAttribArray(blurInputTexCoordHandle); + GLES20.glVertexAttribPointer(blurInputTexCoordHandle, 2, GLES20.GL_FLOAT, false, 8, textureBuffer); + GLES20.glEnableVertexAttribArray(blurPositionHandle); + GLES20.glVertexAttribPointer(blurPositionHandle, 2, GLES20.GL_FLOAT, false, 8, vertexInvertBuffer); + + GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, renderFrameBuffer[0]); + GLES20.glFramebufferTexture2D(GLES20.GL_FRAMEBUFFER, GLES20.GL_COLOR_ATTACHMENT0, GLES20.GL_TEXTURE_2D, renderTexture[0], 0); + GLES20.glActiveTexture(GLES20.GL_TEXTURE0); + GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, renderTexture[1]); + GLES20.glUniform1f(blurWidthHandle, 0.0f); + GLES20.glUniform1f(blurHeightHandle, 1.0f / renderBufferHeight); + GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4); + + GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, renderFrameBuffer[2]); + GLES20.glFramebufferTexture2D(GLES20.GL_FRAMEBUFFER, GLES20.GL_COLOR_ATTACHMENT0, GLES20.GL_TEXTURE_2D, renderTexture[2], 0); + GLES20.glActiveTexture(GLES20.GL_TEXTURE0); + GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, renderTexture[0]); + GLES20.glUniform1f(blurWidthHandle, 1.0f / renderBufferWidth); + GLES20.glUniform1f(blurHeightHandle, 0.0f); + GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4); + needUpdateBlurTexture = false; + } + + GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, renderFrameBuffer[0]); + GLES20.glFramebufferTexture2D(GLES20.GL_FRAMEBUFFER, GLES20.GL_COLOR_ATTACHMENT0, GLES20.GL_TEXTURE_2D, renderTexture[0], 0); + if (blurType == 1) { + GLES20.glUseProgram(radialBlurShaderProgram); + GLES20.glUniform1i(radialBlurSourceImageHandle, 0); + GLES20.glUniform1i(radialBlurSourceImage2Handle, 1); + GLES20.glUniform1f(radialBlurExcludeSizeHandle, delegate.getBlurExcludeSize()); + GLES20.glUniform1f(radialBlurExcludeBlurSizeHandle, delegate.getBlurExcludeBlurSize()); + Point blurExcludePoint = delegate.getBlurExcludePoint(); + GLES20.glUniform2f(radialBlurExcludePointHandle, blurExcludePoint.x, blurExcludePoint.y); + GLES20.glUniform1f(radialBlurAspectRatioHandle, (float) renderBufferHeight / (float) renderBufferWidth); + GLES20.glEnableVertexAttribArray(radialBlurInputTexCoordHandle); + GLES20.glVertexAttribPointer(radialBlurInputTexCoordHandle, 2, GLES20.GL_FLOAT, false, 8, textureBuffer); + GLES20.glEnableVertexAttribArray(radialBlurPositionHandle); + GLES20.glVertexAttribPointer(radialBlurPositionHandle, 2, GLES20.GL_FLOAT, false, 8, vertexInvertBuffer); + } else if (blurType == 2) { + GLES20.glUseProgram(linearBlurShaderProgram); + GLES20.glUniform1i(linearBlurSourceImageHandle, 0); + GLES20.glUniform1i(linearBlurSourceImage2Handle, 1); + GLES20.glUniform1f(linearBlurExcludeSizeHandle, delegate.getBlurExcludeSize()); + GLES20.glUniform1f(linearBlurExcludeBlurSizeHandle, delegate.getBlurExcludeBlurSize()); + GLES20.glUniform1f(linearBlurAngleHandle, delegate.getBlurAngle()); + Point blurExcludePoint = delegate.getBlurExcludePoint(); + GLES20.glUniform2f(linearBlurExcludePointHandle, blurExcludePoint.x, blurExcludePoint.y); + GLES20.glUniform1f(linearBlurAspectRatioHandle, (float) renderBufferHeight / (float) renderBufferWidth); + GLES20.glEnableVertexAttribArray(linearBlurInputTexCoordHandle); + GLES20.glVertexAttribPointer(linearBlurInputTexCoordHandle, 2, GLES20.GL_FLOAT, false, 8, textureBuffer); + GLES20.glEnableVertexAttribArray(linearBlurPositionHandle); + GLES20.glVertexAttribPointer(linearBlurPositionHandle, 2, GLES20.GL_FLOAT, false, 8, vertexInvertBuffer); + } + + GLES20.glActiveTexture(GLES20.GL_TEXTURE0); + GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, renderTexture[1]); + GLES20.glActiveTexture(GLES20.GL_TEXTURE1); + GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, renderTexture[2]); + GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4); + + return true; + } + + public void onVideoFrameUpdate(float[] m) { + videoMatrix = m; + //videoFramesCount++; + hsvGenerated = false; + /*if (videoFramesCount >= 30) { + hsvGenerated = false; + videoFramesCount = 0; + }*/ + } + + private Bitmap createBitmap(Bitmap bitmap, int orientation, int w, int h, float scale) { + Matrix matrix = new Matrix(); + matrix.setScale(scale, scale); + matrix.postRotate(orientation); + return Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true); + } + + private void loadTexture(Bitmap bitmap, int orientation, int w, int h) { + renderBufferWidth = w; + renderBufferHeight = h; + + if (renderFrameBuffer == null) { + renderFrameBuffer = new int[3]; + GLES20.glGenFramebuffers(3, renderFrameBuffer, 0); + GLES20.glGenTextures(3, renderTexture, 0); + } + + if (bitmap != null && !bitmap.isRecycled()) { + float maxSize = AndroidUtilities.getPhotoSize(); + if (renderBufferWidth > maxSize || renderBufferHeight > maxSize || orientation % 360 != 0) { + float scale = 1; + if (renderBufferWidth > maxSize || renderBufferHeight > maxSize) { + float scaleX = maxSize / bitmap.getWidth(); + float scaleY = maxSize / bitmap.getHeight(); + if (scaleX < scaleY) { + renderBufferWidth = (int) maxSize; + renderBufferHeight = (int) (bitmap.getHeight() * scaleX); + scale = scaleX; + } else { + renderBufferHeight = (int) maxSize; + renderBufferWidth = (int) (bitmap.getWidth() * scaleY); + scale = scaleY; + } + } + + if (orientation % 360 == 90 || orientation % 360 == 270) { + int temp = renderBufferWidth; + renderBufferWidth = renderBufferHeight; + renderBufferHeight = temp; + } + + bitmap = createBitmap(bitmap, orientation, renderBufferWidth, renderBufferHeight, scale); + } + + GLES20.glBindTexture(GL10.GL_TEXTURE_2D, renderTexture[1]); + GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR); + GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR); + GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE); + GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE); + GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0); + } else { + GLES20.glBindTexture(GL10.GL_TEXTURE_2D, renderTexture[1]); + GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR); + GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR); + GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE); + GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE); + GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, renderBufferWidth, renderBufferHeight, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, null); + } + + GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, renderTexture[0]); + GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR); + GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR); + GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE); + GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE); + GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, renderBufferWidth, renderBufferHeight, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, null); + + GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, renderTexture[2]); + GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR); + GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR); + GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE); + GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE); + GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, renderBufferWidth, renderBufferHeight, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, null); + } + + public FloatBuffer getTextureBuffer() { + return textureBuffer; + } + + public FloatBuffer getVertexBuffer() { + return vertexBuffer; + } + + public FloatBuffer getVertexInvertBuffer() { + return vertexInvertBuffer; + } + + public int getRenderBufferWidth() { + return renderBufferWidth; + } + + public int getRenderBufferHeight() { + return renderBufferHeight; + } + + public int getRenderTexture(int index) { + if (isVideo) { + return renderTexture[index == 0 ? 1 : 0]; + } + return renderTexture[index]; + } + + public int getRenderFrameBuffer() { + return renderFrameBuffer != null ? renderFrameBuffer[isVideo ? 0 : 1] : 0; + } + + public void requestUpdateBlurTexture() { + needUpdateBlurTexture = true; + } + + public static FilterShadersDelegate getFilterShadersDelegate(MediaController.SavedFilterState lastState) { + return new FilterShadersDelegate() { + @Override + public boolean shouldShowOriginal() { + return false; + } + + @Override + public float getShadowsValue() { + return (lastState.shadowsValue * 0.55f + 100.0f) / 100.0f; + } + + @Override + public float getHighlightsValue() { + return (lastState.highlightsValue * 0.75f + 100.0f) / 100.0f; + } + + @Override + public float getEnhanceValue() { + return (lastState.enhanceValue / 100.0f); + } + + @Override + public float getExposureValue() { + return (lastState.exposureValue / 100.0f); + } + + @Override + public float getContrastValue() { + return (lastState.contrastValue / 100.0f) * 0.3f + 1; + } + + @Override + public float getWarmthValue() { + return lastState.warmthValue / 100.0f; + } + + @Override + public float getVignetteValue() { + return lastState.vignetteValue / 100.0f; + } + + @Override + public float getSharpenValue() { + return 0.11f + lastState.sharpenValue / 100.0f * 0.6f; + } + + @Override + public float getGrainValue() { + return lastState.grainValue / 100.0f * 0.04f; + } + + @Override + public float getFadeValue() { + return lastState.fadeValue / 100.0f; + } + + @Override + public float getTintHighlightsIntensityValue() { + float tintHighlightsIntensity = 50.0f; + return lastState.tintHighlightsColor == 0 ? 0 : tintHighlightsIntensity / 100.0f; + } + + @Override + public float getTintShadowsIntensityValue() { + float tintShadowsIntensity = 50.0f; + return lastState.tintShadowsColor == 0 ? 0 : tintShadowsIntensity / 100.0f; + } + + @Override + public float getSaturationValue() { + float parameterValue = (lastState.saturationValue / 100.0f); + if (parameterValue > 0) { + parameterValue *= 1.05f; + } + return parameterValue + 1; + } + + @Override + public int getTintHighlightsColor() { + return lastState.tintHighlightsColor; + } + + @Override + public int getTintShadowsColor() { + return lastState.tintShadowsColor; + } + + @Override + public int getBlurType() { + return lastState.blurType; + } + + @Override + public float getBlurExcludeSize() { + return lastState.blurExcludeSize; + } + + @Override + public float getBlurExcludeBlurSize() { + return lastState.blurExcludeBlurSize; + } + + @Override + public float getBlurAngle() { + return lastState.blurAngle; + } + + @Override + public Point getBlurExcludePoint() { + return lastState.blurExcludePoint; + } + + @Override + public boolean shouldDrawCurvesPass() { + return !lastState.curvesToolValue.shouldBeSkipped(); + } + + @Override + public ByteBuffer fillAndGetCurveBuffer() { + lastState.curvesToolValue.fillBuffer(); + return lastState.curvesToolValue.curveBuffer; + } + }; + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/FiltersListBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/FiltersListBottomSheet.java new file mode 100644 index 000000000..e11fdb0e2 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/FiltersListBottomSheet.java @@ -0,0 +1,420 @@ +package org.telegram.ui.Components; + +import android.animation.Animator; +import android.animation.AnimatorListenerAdapter; +import android.animation.AnimatorSet; +import android.animation.ObjectAnimator; +import android.content.Context; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.PorterDuff; +import android.graphics.PorterDuffColorFilter; +import android.graphics.RectF; +import android.graphics.drawable.Drawable; +import android.os.Build; +import android.text.TextUtils; +import android.util.TypedValue; +import android.view.Gravity; +import android.view.MotionEvent; +import android.view.View; +import android.view.ViewGroup; +import android.widget.FrameLayout; +import android.widget.TextView; + +import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.LocaleController; +import org.telegram.messenger.MessagesController; +import org.telegram.messenger.NotificationCenter; +import org.telegram.messenger.R; +import org.telegram.tgnet.TLRPC; +import org.telegram.ui.ActionBar.BaseFragment; +import org.telegram.ui.ActionBar.BottomSheet; +import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.DialogsActivity; + +import java.util.ArrayList; + +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +public class FiltersListBottomSheet extends BottomSheet implements NotificationCenter.NotificationCenterDelegate { + + private RecyclerListView listView; + private ListAdapter adapter; + private TextView titleTextView; + private AnimatorSet shadowAnimation; + private View shadow; + + private int scrollOffsetY; + private boolean ignoreLayout; + + private FiltersListBottomSheetDelegate delegate; + + private ArrayList dialogFilters; + + public interface FiltersListBottomSheetDelegate { + void didSelectFilter(MessagesController.DialogFilter filter); + } + + public FiltersListBottomSheet(DialogsActivity baseFragment, ArrayList selectedDialogs) { + super(baseFragment.getParentActivity(), false); + dialogFilters = getCanAddDialogFilters(baseFragment, selectedDialogs); + Context context = baseFragment.getParentActivity(); + + containerView = new FrameLayout(context) { + + private RectF rect = new RectF(); + private boolean fullHeight; + + @Override + public boolean onInterceptTouchEvent(MotionEvent ev) { + if (ev.getAction() == MotionEvent.ACTION_DOWN && scrollOffsetY != 0 && ev.getY() < scrollOffsetY) { + dismiss(); + return true; + } + return super.onInterceptTouchEvent(ev); + } + + @Override + public boolean onTouchEvent(MotionEvent e) { + return !isDismissed() && super.onTouchEvent(e); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + int height = MeasureSpec.getSize(heightMeasureSpec); + if (Build.VERSION.SDK_INT >= 21) { + ignoreLayout = true; + setPadding(backgroundPaddingLeft, AndroidUtilities.statusBarHeight, backgroundPaddingLeft, 0); + ignoreLayout = false; + } + int contentSize = AndroidUtilities.dp(48) + AndroidUtilities.dp(48) * adapter.getItemCount() + backgroundPaddingTop + AndroidUtilities.statusBarHeight; + int padding = contentSize < (height / 5 * 3.2) ? 0 : (height / 5 * 2); + if (padding != 0 && contentSize < height) { + padding -= (height - contentSize); + } + if (padding == 0) { + padding = backgroundPaddingTop; + } + if (listView.getPaddingTop() != padding) { + ignoreLayout = true; + listView.setPadding(AndroidUtilities.dp(10), padding, AndroidUtilities.dp(10), 0); + ignoreLayout = false; + } + fullHeight = contentSize >= height; + super.onMeasure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(Math.min(contentSize, height), MeasureSpec.EXACTLY)); + } + + @Override + protected void onLayout(boolean changed, int left, int top, int right, int bottom) { + super.onLayout(changed, left, top, right, bottom); + updateLayout(); + } + + @Override + public void requestLayout() { + if (ignoreLayout) { + return; + } + super.requestLayout(); + } + + @Override + protected void onDraw(Canvas canvas) { + int top = scrollOffsetY - backgroundPaddingTop - AndroidUtilities.dp(8); + int height = getMeasuredHeight() + AndroidUtilities.dp(28) + backgroundPaddingTop; + int statusBarHeight = 0; + float radProgress = 1.0f; + if (Build.VERSION.SDK_INT >= 21) { + top += AndroidUtilities.statusBarHeight; + height -= AndroidUtilities.statusBarHeight; + + if (fullHeight) { + if (top + backgroundPaddingTop < AndroidUtilities.statusBarHeight * 2) { + int diff = Math.min(AndroidUtilities.statusBarHeight, AndroidUtilities.statusBarHeight * 2 - top - backgroundPaddingTop); + top -= diff; + height += diff; + radProgress = 1.0f - Math.min(1.0f, (diff * 2) / (float) AndroidUtilities.statusBarHeight); + } + if (top + backgroundPaddingTop < AndroidUtilities.statusBarHeight) { + statusBarHeight = Math.min(AndroidUtilities.statusBarHeight, AndroidUtilities.statusBarHeight - top - backgroundPaddingTop); + } + } + } + + shadowDrawable.setBounds(0, top, getMeasuredWidth(), height); + shadowDrawable.draw(canvas); + + if (radProgress != 1.0f) { + Theme.dialogs_onlineCirclePaint.setColor(Theme.getColor(Theme.key_dialogBackground)); + rect.set(backgroundPaddingLeft, backgroundPaddingTop + top, getMeasuredWidth() - backgroundPaddingLeft, backgroundPaddingTop + top + AndroidUtilities.dp(24)); + canvas.drawRoundRect(rect, AndroidUtilities.dp(12) * radProgress, AndroidUtilities.dp(12) * radProgress, Theme.dialogs_onlineCirclePaint); + } + + if (statusBarHeight > 0) { + int color1 = Theme.getColor(Theme.key_dialogBackground); + int finalColor = Color.argb(0xff, (int) (Color.red(color1) * 0.8f), (int) (Color.green(color1) * 0.8f), (int) (Color.blue(color1) * 0.8f)); + Theme.dialogs_onlineCirclePaint.setColor(finalColor); + canvas.drawRect(backgroundPaddingLeft, AndroidUtilities.statusBarHeight - statusBarHeight, getMeasuredWidth() - backgroundPaddingLeft, AndroidUtilities.statusBarHeight, Theme.dialogs_onlineCirclePaint); + } + } + }; + containerView.setWillNotDraw(false); + containerView.setPadding(backgroundPaddingLeft, 0, backgroundPaddingLeft, 0); + + FrameLayout.LayoutParams frameLayoutParams = new FrameLayout.LayoutParams(LayoutHelper.MATCH_PARENT, AndroidUtilities.getShadowHeight(), Gravity.TOP | Gravity.LEFT); + frameLayoutParams.topMargin = AndroidUtilities.dp(48); + shadow = new View(context); + shadow.setBackgroundColor(Theme.getColor(Theme.key_dialogShadowLine)); + shadow.setAlpha(0.0f); + shadow.setVisibility(View.INVISIBLE); + shadow.setTag(1); + containerView.addView(shadow, frameLayoutParams); + + listView = new RecyclerListView(context) { + @Override + public void requestLayout() { + if (ignoreLayout) { + return; + } + super.requestLayout(); + } + }; + listView.setTag(14); + listView.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false)); + listView.setAdapter(adapter = new ListAdapter(context)); + listView.setVerticalScrollBarEnabled(false); + listView.setPadding(AndroidUtilities.dp(10), 0, AndroidUtilities.dp(10), 0); + listView.setClipToPadding(false); + listView.setGlowColor(Theme.getColor(Theme.key_dialogScrollGlow)); + listView.setOnScrollListener(new RecyclerView.OnScrollListener() { + @Override + public void onScrolled(RecyclerView recyclerView, int dx, int dy) { + updateLayout(); + } + }); + listView.setOnItemClickListener((view, position) -> { + delegate.didSelectFilter(adapter.getItem(position)); + dismiss(); + }); + containerView.addView(listView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.TOP | Gravity.LEFT, 0, 48, 0, 0)); + + titleTextView = new TextView(context); + titleTextView.setLines(1); + titleTextView.setSingleLine(true); + titleTextView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack)); + titleTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); + titleTextView.setLinkTextColor(Theme.getColor(Theme.key_dialogTextLink)); + titleTextView.setHighlightColor(Theme.getColor(Theme.key_dialogLinkSelection)); + titleTextView.setEllipsize(TextUtils.TruncateAt.END); + titleTextView.setPadding(AndroidUtilities.dp(18), 0, AndroidUtilities.dp(18), 0); + titleTextView.setGravity(Gravity.CENTER_VERTICAL); + titleTextView.setText(LocaleController.getString("FilterChoose", R.string.FilterChoose)); + titleTextView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); + containerView.addView(titleTextView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 50, Gravity.LEFT | Gravity.TOP, 0, 0, 40, 0)); + + NotificationCenter.getGlobalInstance().addObserver(this, NotificationCenter.emojiDidLoad); + } + + @Override + protected boolean canDismissWithSwipe() { + return false; + } + + private void updateLayout() { + if (listView.getChildCount() <= 0) { + listView.setTopGlowOffset(scrollOffsetY = listView.getPaddingTop()); + titleTextView.setTranslationY(scrollOffsetY); + shadow.setTranslationY(scrollOffsetY); + containerView.invalidate(); + return; + } + View child = listView.getChildAt(0); + RecyclerListView.Holder holder = (RecyclerListView.Holder) listView.findContainingViewHolder(child); + int top = child.getTop(); + int newOffset = 0; + if (top >= 0 && holder != null && holder.getAdapterPosition() == 0) { + newOffset = top; + runShadowAnimation(false); + } else { + runShadowAnimation(true); + } + if (scrollOffsetY != newOffset) { + listView.setTopGlowOffset(scrollOffsetY = newOffset); + titleTextView.setTranslationY(scrollOffsetY); + shadow.setTranslationY(scrollOffsetY); + containerView.invalidate(); + } + } + + private void runShadowAnimation(final boolean show) { + if (show && shadow.getTag() != null || !show && shadow.getTag() == null) { + shadow.setTag(show ? null : 1); + if (show) { + shadow.setVisibility(View.VISIBLE); + } + if (shadowAnimation != null) { + shadowAnimation.cancel(); + } + shadowAnimation = new AnimatorSet(); + shadowAnimation.playTogether(ObjectAnimator.ofFloat(shadow, View.ALPHA, show ? 1.0f : 0.0f)); + shadowAnimation.setDuration(150); + shadowAnimation.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + if (shadowAnimation != null && shadowAnimation.equals(animation)) { + if (!show) { + shadow.setVisibility(View.INVISIBLE); + } + shadowAnimation = null; + } + } + + @Override + public void onAnimationCancel(Animator animation) { + if (shadowAnimation != null && shadowAnimation.equals(animation)) { + shadowAnimation = null; + } + } + }); + shadowAnimation.start(); + } + } + + @Override + public void dismiss() { + super.dismiss(); + NotificationCenter.getGlobalInstance().removeObserver(this, NotificationCenter.emojiDidLoad); + } + + @Override + public void didReceivedNotification(int id, int account, Object... args) { + if (id == NotificationCenter.emojiDidLoad) { + if (listView != null) { + int count = listView.getChildCount(); + for (int a = 0; a < count; a++) { + listView.getChildAt(a).invalidate(); + } + } + } + } + + public void setDelegate(FiltersListBottomSheetDelegate filtersListBottomSheetDelegate) { + delegate = filtersListBottomSheetDelegate; + } + + public static ArrayList getCanAddDialogFilters(BaseFragment fragment, ArrayList selectedDialogs) { + ArrayList result = new ArrayList<>(); + ArrayList filters = fragment.getMessagesController().dialogFilters; + for (int a = 0, N = filters.size(); a < N; a++) { + MessagesController.DialogFilter filter = filters.get(a); + if (!getDialogsCount(fragment, filter, selectedDialogs, true, true).isEmpty()) { + result.add(filter); + } + } + return result; + } + + public static ArrayList getDialogsCount(BaseFragment fragment, MessagesController.DialogFilter filter, ArrayList selectedDialogs, boolean always, boolean check) { + ArrayList dids = new ArrayList<>(); + for (int b = 0, N2 = selectedDialogs.size(); b < N2; b++) { + long did = selectedDialogs.get(b); + int lowerId = (int) did; + if (lowerId == 0) { + int highId = (int) (did >> 32); + TLRPC.EncryptedChat encryptedChat = fragment.getMessagesController().getEncryptedChat(highId); + if (encryptedChat != null) { + lowerId = encryptedChat.user_id; + if (dids.contains(lowerId)) { + continue; + } + } else { + continue; + } + } + if (filter != null && (always && filter.alwaysShow.contains(lowerId) || !always && filter.neverShow.contains(lowerId))) { + continue; + } + dids.add(lowerId); + if (check) { + break; + } + } + return dids; + } + + private class ListAdapter extends RecyclerListView.SelectionAdapter { + + private Context context; + + public ListAdapter(Context context) { + this.context = context; + } + + public MessagesController.DialogFilter getItem(int position) { + if (position < dialogFilters.size()) { + return dialogFilters.get(position); + } + return null; + } + + @Override + public int getItemCount() { + return dialogFilters.size() + 1; + } + + @Override + public int getItemViewType(int position) { + return 0; + } + + @Override + public boolean isEnabled(RecyclerView.ViewHolder holder) { + return true; + } + + @Override + public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + BottomSheet.BottomSheetCell cell = new BottomSheet.BottomSheetCell(context, 0); + cell.setBackground(null); + cell.setLayoutParams(new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); + return new RecyclerListView.Holder(cell); + } + + @Override + public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { + BottomSheet.BottomSheetCell cell = (BottomSheet.BottomSheetCell) holder.itemView; + if (position < dialogFilters.size()) { + cell.getImageView().setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_dialogIcon), PorterDuff.Mode.MULTIPLY)); + MessagesController.DialogFilter filter = dialogFilters.get(position); + cell.setTextColor(Theme.getColor(Theme.key_dialogTextBlack)); + int icon; + if ((filter.flags & MessagesController.DIALOG_FILTER_FLAG_ALL_CHATS) == (MessagesController.DIALOG_FILTER_FLAG_CONTACTS | MessagesController.DIALOG_FILTER_FLAG_NON_CONTACTS)) { + icon = R.drawable.menu_private; + } else if ((filter.flags & MessagesController.DIALOG_FILTER_FLAG_EXCLUDE_READ) != 0 && (filter.flags & MessagesController.DIALOG_FILTER_FLAG_ALL_CHATS) == MessagesController.DIALOG_FILTER_FLAG_ALL_CHATS) { + icon = R.drawable.menu_unread; + } else if ((filter.flags & MessagesController.DIALOG_FILTER_FLAG_ALL_CHATS) == MessagesController.DIALOG_FILTER_FLAG_CHANNELS) { + icon = R.drawable.menu_broadcast; + } else if ((filter.flags & MessagesController.DIALOG_FILTER_FLAG_ALL_CHATS) == MessagesController.DIALOG_FILTER_FLAG_GROUPS) { + icon = R.drawable.menu_groups; + } else if ((filter.flags & MessagesController.DIALOG_FILTER_FLAG_ALL_CHATS) == MessagesController.DIALOG_FILTER_FLAG_CONTACTS) { + icon = R.drawable.menu_contacts; + } else if ((filter.flags & MessagesController.DIALOG_FILTER_FLAG_ALL_CHATS) == MessagesController.DIALOG_FILTER_FLAG_BOTS) { + icon = R.drawable.menu_bots; + } else { + icon = R.drawable.menu_folders; + } + cell.setTextAndIcon(filter.name, icon); + } else { + cell.getImageView().setColorFilter(null); + Drawable drawable1 = context.getResources().getDrawable(R.drawable.poll_add_circle); + Drawable drawable2 = context.getResources().getDrawable(R.drawable.poll_add_plus); + drawable1.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_switchTrackChecked), PorterDuff.Mode.MULTIPLY)); + drawable2.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_checkboxCheck), PorterDuff.Mode.MULTIPLY)); + CombinedDrawable combinedDrawable = new CombinedDrawable(drawable1, drawable2); + cell.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlueText4)); + cell.setTextAndIcon(LocaleController.getString("CreateNewFilter", R.string.CreateNewFilter), combinedDrawable); + } + } + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ForegroundDetector.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ForegroundDetector.java index e0cd96f13..c2dfdc22b 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ForegroundDetector.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ForegroundDetector.java @@ -8,7 +8,6 @@ package org.telegram.ui.Components; -import android.annotation.SuppressLint; import android.app.Activity; import android.app.Application; import android.os.Build; @@ -20,7 +19,6 @@ import org.telegram.messenger.FileLog; import java.util.concurrent.CopyOnWriteArrayList; -@SuppressLint("NewApi") public class ForegroundDetector implements Application.ActivityLifecycleCallbacks { public interface Listener { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/GroupedPhotosListView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/GroupedPhotosListView.java index 84719c02d..6550852fa 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/GroupedPhotosListView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/GroupedPhotosListView.java @@ -1,5 +1,8 @@ package org.telegram.ui.Components; +import android.animation.Animator; +import android.animation.AnimatorListenerAdapter; +import android.animation.ValueAnimator; import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; @@ -46,10 +49,15 @@ public class GroupedPhotosListView extends View implements GestureDetector.OnGes private boolean scrolling; private boolean stopedScrolling; private boolean ignoreChanges; + private boolean animationsEnabled = true; private int nextPhotoScrolling = -1; private GroupedPhotosListViewDelegate delegate; + private ValueAnimator showAnimator; + private ValueAnimator hideAnimator; + private float drawAlpha = 0f; + public interface GroupedPhotosListViewDelegate { int getCurrentIndex(); int getCurrentAccount(); @@ -63,13 +71,17 @@ public class GroupedPhotosListView extends View implements GestureDetector.OnGes } public GroupedPhotosListView(Context context) { + this(context, AndroidUtilities.dp(3)); + } + + public GroupedPhotosListView(Context context, int paddingTop) { super(context); gestureDetector = new GestureDetector(context, this); scroll = new Scroller(context); itemWidth = AndroidUtilities.dp(42); itemHeight = AndroidUtilities.dp(56); itemSpacing = AndroidUtilities.dp(1); - itemY = AndroidUtilities.dp(3); + itemY = paddingTop; backgroundPaint.setColor(0x7f000000); } @@ -105,7 +117,8 @@ public class GroupedPhotosListView extends View implements GestureDetector.OnGes if (messageObject.getGroupIdForUse() != currentGroupId) { changed = true; currentGroupId = messageObject.getGroupIdForUse(); - } else { + } + if (currentGroupId != 0) { int max = Math.min(currentIndex + 10, imagesArr.size()); for (int a = currentIndex; a < max; a++) { MessageObject object = imagesArr.get(a); @@ -131,7 +144,8 @@ public class GroupedPhotosListView extends View implements GestureDetector.OnGes if (pageBlock.groupId != currentGroupId) { changed = true; currentGroupId = pageBlock.groupId; - } else { + } + if (currentGroupId != 0) { for (int a = currentIndex, size = pageBlockArr.size(); a < size; a++) { TLRPC.PageBlock object = pageBlockArr.get(a); if (object.groupId == currentGroupId) { @@ -153,6 +167,57 @@ public class GroupedPhotosListView extends View implements GestureDetector.OnGes if (currentObject == null) { return; } + if (animationsEnabled) { + if (newCount <= 1) { + if (showAnimator != null) { + showAnimator.cancel(); + } + if (drawAlpha > 0f && currentPhotos.size() > 1) { + if (hideAnimator == null) { + hideAnimator = ValueAnimator.ofFloat(drawAlpha, 0f); + hideAnimator.setDuration((long) (200 * drawAlpha)); + hideAnimator.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + if (hideAnimator == animation) { + hideAnimator = null; + fillList(); + } + } + }); + hideAnimator.addUpdateListener(a -> { + drawAlpha = (float) a.getAnimatedValue(); + invalidate(); + }); + hideAnimator.start(); + } + return; + } + } else { + if (hideAnimator != null) { + final Animator a = hideAnimator; + hideAnimator = null; + a.cancel(); + } + if (drawAlpha < 1f && showAnimator == null) { + showAnimator = ValueAnimator.ofFloat(drawAlpha, 1f); + showAnimator.setDuration((long) (200 * (1f - drawAlpha))); + showAnimator.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + if (showAnimator == animation) { + showAnimator = null; + } + } + }); + showAnimator.addUpdateListener(a -> { + drawAlpha = (float) a.getAnimatedValue(); + invalidate(); + }); + showAnimator.start(); + } + } + } if (!changed) { if (newCount != currentPhotos.size() || currentObjects.indexOf(currentObject) == -1) { changed = true; @@ -556,6 +621,7 @@ public class GroupedPhotosListView extends View implements GestureDetector.OnGes if (imagesToDraw.isEmpty()) { return; } + backgroundPaint.setAlpha((int) (0x7F * drawAlpha)); canvas.drawRect(0, 0, getMeasuredWidth(), getMeasuredHeight(), backgroundPaint); int count = imagesToDraw.size(); @@ -624,11 +690,12 @@ public class GroupedPhotosListView extends View implements GestureDetector.OnGes } if (num == nextImage) { receiver.setImageWidth(nextTrueWidth - nextPaddings); - receiver.setImageX(receiver.getImageX() + nextPaddings / 2); + receiver.setImageX((int) (receiver.getImageX() + nextPaddings / 2)); } else { receiver.setImageWidth(itemWidth); } } + receiver.setAlpha(drawAlpha); receiver.draw(canvas); } @@ -700,4 +767,36 @@ public class GroupedPhotosListView extends View implements GestureDetector.OnGes public void setDelegate(GroupedPhotosListViewDelegate groupedPhotosListViewDelegate) { delegate = groupedPhotosListViewDelegate; } + + public boolean hasPhotos() { + return !currentPhotos.isEmpty() && hideAnimator == null; + } + + public boolean isAnimationsEnabled() { + return animationsEnabled; + } + + public void setAnimationsEnabled(boolean animationsEnabled) { + if (this.animationsEnabled != animationsEnabled) { + this.animationsEnabled = animationsEnabled; + if (!animationsEnabled) { + if (showAnimator != null) { + showAnimator.cancel(); + showAnimator = null; + } + if (hideAnimator != null) { + hideAnimator.cancel(); + hideAnimator = null; + } + drawAlpha = 1f; + invalidate(); + } + } + } + + public void reset() { + if (animationsEnabled) { + drawAlpha = 0f; + } + } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/HintView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/HintView.java index 5d4abfdb0..0acd2701d 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/HintView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/HintView.java @@ -128,7 +128,7 @@ public class HintView extends FrameLayout { if (currentType == 0) { ImageReceiver imageReceiver = cell.getPhotoImage(); top += imageReceiver.getImageY(); - int height = imageReceiver.getImageHeight(); + int height = (int) imageReceiver.getImageHeight(); int bottom = top + height; int parentHeight = parentView.getMeasuredHeight(); if (top <= getMeasuredHeight() + AndroidUtilities.dp(10) || bottom > parentHeight + height / 4) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ImageUpdater.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ImageUpdater.java index 1266e5833..66c783c63 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ImageUpdater.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ImageUpdater.java @@ -183,9 +183,10 @@ public class ImageUpdater implements NotificationCenter.NotificationCenterDelega } else { info.searchImage = searchImage; } + info.thumbPath = searchImage.thumbPath; info.caption = searchImage.caption != null ? searchImage.caption.toString() : null; info.entities = searchImage.entities; - info.masks = !searchImage.stickers.isEmpty() ? new ArrayList<>(searchImage.stickers) : null; + info.masks = searchImage.stickers; info.ttl = searchImage.ttl; } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/InstantCameraView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/InstantCameraView.java index c6d7aa7f6..30ae9486c 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/InstantCameraView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/InstantCameraView.java @@ -57,7 +57,6 @@ import android.widget.FrameLayout; import android.widget.ImageView; import com.google.android.exoplayer2.ExoPlayer; -import com.google.android.exoplayer2.util.Log; import org.telegram.messenger.AndroidUtilities; import org.telegram.messenger.ApplicationLoader; @@ -65,6 +64,7 @@ import org.telegram.messenger.BuildVars; import org.telegram.messenger.DispatchQueue; import org.telegram.messenger.FileLoader; import org.telegram.messenger.FileLog; +import org.telegram.messenger.ImageReceiver; import org.telegram.messenger.LocaleController; import org.telegram.messenger.MediaController; import org.telegram.messenger.NotificationCenter; @@ -107,7 +107,7 @@ import javax.microedition.khronos.opengles.GL; public class InstantCameraView extends FrameLayout implements NotificationCenter.NotificationCenterDelegate { private int currentAccount = UserConfig.selectedAccount; - private FrameLayout cameraContainer; + private InstantViewCameraContainer cameraContainer; private ChatActivity baseFragment; private Paint paint; private RectF rect; @@ -256,7 +256,7 @@ public class InstantCameraView extends FrameLayout implements NotificationCenter rect = new RectF(); if (Build.VERSION.SDK_INT >= 21) { - cameraContainer = new FrameLayout(context) { + cameraContainer = new InstantViewCameraContainer(context) { @Override public void setScaleX(float scaleX) { super.setScaleX(scaleX); @@ -283,7 +283,7 @@ public class InstantCameraView extends FrameLayout implements NotificationCenter final Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); paint.setColor(0xff000000); paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR)); - cameraContainer = new FrameLayout(context) { + cameraContainer = new InstantViewCameraContainer(context) { @Override public void setScaleX(float scaleX) { @@ -556,7 +556,7 @@ public class InstantCameraView extends FrameLayout implements NotificationCenter MediaController.getInstance().requestAudioFocus(true); } - public FrameLayout getCameraContainer() { + public InstantViewCameraContainer getCameraContainer() { return cameraContainer; } @@ -790,13 +790,14 @@ public class InstantCameraView extends FrameLayout implements NotificationCenter } } textureView = null; + cameraContainer.setImageReceiver(null); } private void switchCamera() { saveLastCameraBitmap(); if (lastBitmap != null) { textureOverlayView.setImageBitmap(lastBitmap); - textureOverlayView.animate().setDuration(120).alpha(1.0f).setInterpolator(new DecelerateInterpolator()).start(); + textureOverlayView.setAlpha(1f); } if (cameraSession != null) { cameraSession.destroy(); @@ -979,6 +980,10 @@ public class InstantCameraView extends FrameLayout implements NotificationCenter blurBehindDrawable.onPanTranslationUpdate(y); } + public TextureView getTextureView() { + return textureView; + } + public class CameraGLThread extends DispatchQueue { private final static int EGL_CONTEXT_CLIENT_VERSION = 0x3098; @@ -1965,6 +1970,8 @@ public class InstantCameraView extends FrameLayout implements NotificationCenter AlertsCreator.createScheduleDatePickerDialog(baseFragment.getParentActivity(), baseFragment.getDialogId(), (notify, scheduleDate) -> { baseFragment.sendMedia(new MediaController.PhotoEntry(0, 0, 0, videoFile.getAbsolutePath(), 0, true, 0, 0, 0), videoEditedInfo, notify, scheduleDate); startAnimation(false); + }, () -> { + startAnimation(false); }); } else { baseFragment.sendMedia(new MediaController.PhotoEntry(0, 0, 0, videoFile.getAbsolutePath(), 0, true, 0, 0, 0), videoEditedInfo, true, 0); @@ -1983,7 +1990,7 @@ public class InstantCameraView extends FrameLayout implements NotificationCenter } @Override - public void onError(Exception e) { + public void onError(VideoPlayer player, Exception e) { FileLog.e(e); } @@ -2400,4 +2407,44 @@ public class InstantCameraView extends FrameLayout implements NotificationCenter } } } + + public class InstantViewCameraContainer extends FrameLayout { + + ImageReceiver imageReceiver; + float imageProgress; + + public InstantViewCameraContainer(Context context) { + super(context); + InstantCameraView.this.setWillNotDraw(false); + } + + public void setImageReceiver(ImageReceiver imageReceiver) { + if (this.imageReceiver == null) { + imageProgress = 0; + } + this.imageReceiver = imageReceiver; + invalidate(); + } + + @Override + protected void dispatchDraw(Canvas canvas) { + super.dispatchDraw(canvas); + if (imageProgress != 1f) { + imageProgress += 16 / 250.0f; + if (imageProgress > 1f) { + imageProgress = 1f; + } + invalidate(); + } + if (imageReceiver != null) { + canvas.save(); + canvas.translate(-imageReceiver.getImageX(), -imageReceiver.getImageY()); + float oldAlpha = imageReceiver.getAlpha(); + imageReceiver.setAlpha(imageProgress); + imageReceiver.draw(canvas); + imageReceiver.setAlpha(oldAlpha); + canvas.restore(); + } + } + } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Input.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Input.java index 5c5aba9c2..79358738f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Input.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Input.java @@ -34,7 +34,7 @@ public class Input { m.invert(invertMatrix); } - public void process(MotionEvent event) { + public void process(MotionEvent event, float scale) { int action = event.getActionMasked(); float x = event.getX(); float y = renderView.getHeight() - event.getY(); @@ -61,7 +61,7 @@ public class Input { clearBuffer = true; } else { float distance = location.getDistanceTo(lastLocation); - if (distance < AndroidUtilities.dp(5.0f)) { + if (distance < AndroidUtilities.dp(5.0f) / scale) { return; } @@ -79,9 +79,8 @@ public class Input { lastLocation = location; } + break; } - break; - case MotionEvent.ACTION_UP: { if (!hasMoved) { if (renderView.shouldDraw()) { @@ -99,8 +98,14 @@ public class Input { beganDrawing = false; renderView.onFinishedDrawing(hasMoved); + break; + } + case MotionEvent.ACTION_CANCEL: { + renderView.getPainting().clearStroke(); + pointsCount = 0; + beganDrawing = false; + break; } - break; } } @@ -158,8 +163,7 @@ public class Input { } else { pointsCount = 2; } - } - else { + } else { Point[] result = new Point[pointsCount]; System.arraycopy(this.points, 0, result, 0, pointsCount); Path path = new Path(result); @@ -184,17 +188,7 @@ public class Input { path.remainder = lastRemainder; - renderView.getPainting().paintStroke(path, clearBuffer, new Runnable() { - @Override - public void run() { - AndroidUtilities.runOnUIThread(new Runnable() { - @Override - public void run() { - lastRemainder = path.remainder; - clearBuffer = false; - } - }); - } - }); + renderView.getPainting().paintStroke(path, clearBuffer, () -> AndroidUtilities.runOnUIThread(() -> lastRemainder = path.remainder)); + clearBuffer = false; } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Painting.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Painting.java index 5af89ba2e..b817640d0 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Painting.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Painting.java @@ -19,13 +19,13 @@ import javax.microedition.khronos.opengles.GL10; public class Painting { public interface PaintingDelegate { - void contentChanged(RectF rect); + void contentChanged(); void strokeCommited(); UndoStore requestUndoStore(); DispatchQueue requestDispatchQueue(); } - public class PaintingData { + public static class PaintingData { public Bitmap bitmap; public ByteBuffer data; @@ -56,15 +56,15 @@ public class Painting { private boolean paused; private Slice backupSlice; - private float projection[]; - private float renderProjection[]; + private float[] projection; + private float[] renderProjection; public Painting(Size sz) { renderState = new RenderState(); size = sz; - dataBuffer = ByteBuffer.allocateDirect((int)size.width * (int)size.height * 4); + dataBuffer = ByteBuffer.allocateDirect((int) size.width * (int) size.height * 4); projection = GLMatrix.LoadOrtho(0, size.width, 0, size.height, -1.0f, 1.0f); @@ -133,129 +133,141 @@ public class Painting { bitmapTexture = new Texture(bitmap); } - private void update(RectF bounds, Runnable action) { - GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, getReusableFramebuffer()); - GLES20.glFramebufferTexture2D(GLES20.GL_FRAMEBUFFER, GLES20.GL_COLOR_ATTACHMENT0, GLES20.GL_TEXTURE_2D, getTexture(), 0); - - int status = GLES20.glCheckFramebufferStatus(GLES20.GL_FRAMEBUFFER); - if (status == GLES20.GL_FRAMEBUFFER_COMPLETE) { - GLES20.glViewport(0, 0, (int) size.width, (int) size.height); - action.run(); - } - GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, 0); - - if (!isSuppressingChanges() && delegate != null) { - delegate.contentChanged(bounds); - } - } - public void paintStroke(final Path path, final boolean clearBuffer, final Runnable action) { - renderView.performInContext(new Runnable() { - @Override - public void run() { - activePath = path; + renderView.performInContext(() -> { + activePath = path; - RectF bounds = null; + RectF bounds = null; - GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, getReusableFramebuffer()); - GLES20.glFramebufferTexture2D(GLES20.GL_FRAMEBUFFER, GLES20.GL_COLOR_ATTACHMENT0, GLES20.GL_TEXTURE_2D, getPaintTexture(), 0); + GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, getReusableFramebuffer()); + GLES20.glFramebufferTexture2D(GLES20.GL_FRAMEBUFFER, GLES20.GL_COLOR_ATTACHMENT0, GLES20.GL_TEXTURE_2D, getPaintTexture(), 0); - Utils.HasGLError(); + Utils.HasGLError(); - int status = GLES20.glCheckFramebufferStatus(GLES20.GL_FRAMEBUFFER); - if (status == GLES20.GL_FRAMEBUFFER_COMPLETE) { - GLES20.glViewport(0, 0, (int) size.width, (int) size.height); + int status = GLES20.glCheckFramebufferStatus(GLES20.GL_FRAMEBUFFER); + if (status == GLES20.GL_FRAMEBUFFER_COMPLETE) { + GLES20.glViewport(0, 0, (int) size.width, (int) size.height); - if (clearBuffer) { - GLES20.glClearColor(0, 0, 0, 0); - GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT); - } - - if (shaders == null) { - return; - } - Shader shader = shaders.get(brush.isLightSaber() ? "brushLight" : "brush"); - if (shader == null) { - return; - } - - GLES20.glUseProgram(shader.program); - if (brushTexture == null) { - brushTexture = new Texture(brush.getStamp()); - } - GLES20.glActiveTexture(GLES20.GL_TEXTURE0); - GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, brushTexture.texture()); - GLES20.glUniformMatrix4fv(shader.getUniform("mvpMatrix"), 1, false, FloatBuffer.wrap(projection)); - GLES20.glUniform1i(shader.getUniform("texture"), 0); - - bounds = Render.RenderPath(path, renderState); + if (clearBuffer) { + GLES20.glClearColor(0, 0, 0, 0); + GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT); } - GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, 0); - - if (delegate != null) { - delegate.contentChanged(bounds); + if (shaders == null) { + return; + } + Shader shader = shaders.get(brush.isLightSaber() ? "brushLight" : "brush"); + if (shader == null) { + return; } - if (activeStrokeBounds != null) { - activeStrokeBounds.union(bounds); - } else { - activeStrokeBounds = bounds; + GLES20.glUseProgram(shader.program); + if (brushTexture == null) { + brushTexture = new Texture(brush.getStamp()); } + GLES20.glActiveTexture(GLES20.GL_TEXTURE0); + GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, brushTexture.texture()); + GLES20.glUniformMatrix4fv(shader.getUniform("mvpMatrix"), 1, false, FloatBuffer.wrap(projection)); + GLES20.glUniform1i(shader.getUniform("texture"), 0); - if (action != null) { - action.run(); - } + bounds = Render.RenderPath(path, renderState); + } + + GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, 0); + + if (delegate != null) { + delegate.contentChanged(); + } + + if (activeStrokeBounds != null) { + activeStrokeBounds.union(bounds); + } else { + activeStrokeBounds = bounds; + } + + if (action != null) { + action.run(); } }); } public void commitStroke(final int color) { - renderView.performInContext(new Runnable() { - @Override - public void run() { - registerUndo(activeStrokeBounds); + renderView.performInContext(() -> { - beginSuppressingChanges(); + registerUndo(activeStrokeBounds); - update(null, new Runnable() { - @Override - public void run() { - if (shaders == null) { - return; - } - Shader shader = shaders.get(brush.isLightSaber() ? "compositeWithMaskLight" : "compositeWithMask"); - if (shader == null) { - return; - } + beginSuppressingChanges(); - GLES20.glUseProgram(shader.program); + GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, getReusableFramebuffer()); + GLES20.glFramebufferTexture2D(GLES20.GL_FRAMEBUFFER, GLES20.GL_COLOR_ATTACHMENT0, GLES20.GL_TEXTURE_2D, getTexture(), 0); - GLES20.glUniformMatrix4fv(shader.getUniform("mvpMatrix"), 1, false, FloatBuffer.wrap(projection)); - GLES20.glUniform1i(shader.getUniform("mask"), 0); - Shader.SetColorUniform(shader.getUniform("color"), color); + GLES20.glViewport(0, 0, (int) size.width, (int) size.height); - GLES20.glActiveTexture(GLES20.GL_TEXTURE0); - GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, getPaintTexture()); + Shader shader = shaders.get(brush.isLightSaber() ? "compositeWithMaskLight" : "compositeWithMask"); - GLES20.glBlendFuncSeparate(GLES20.GL_SRC_ALPHA, GLES20.GL_ONE_MINUS_SRC_ALPHA, GLES20.GL_SRC_ALPHA, GLES20.GL_ONE ); + GLES20.glUseProgram(shader.program); - GLES20.glVertexAttribPointer(0, 2, GLES20.GL_FLOAT, false, 8, vertexBuffer); - GLES20.glEnableVertexAttribArray(0); - GLES20.glVertexAttribPointer(1, 2, GLES20.GL_FLOAT, false, 8, textureBuffer); - GLES20.glEnableVertexAttribArray(1); + GLES20.glUniformMatrix4fv(shader.getUniform("mvpMatrix"), 1, false, FloatBuffer.wrap(projection)); + GLES20.glUniform1i(shader.getUniform("texture"), 0); + GLES20.glUniform1i(shader.getUniform("mask"), 1); + Shader.SetColorUniform(shader.getUniform("color"), color); - GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4); - } - }); + GLES20.glActiveTexture(GLES20.GL_TEXTURE0); + GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, getTexture()); + GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_NEAREST); - endSuppressingChanges(); + GLES20.glActiveTexture(GLES20.GL_TEXTURE1); + GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, getPaintTexture()); - renderState.reset(); + GLES20.glBlendFunc(GLES20.GL_ONE, GLES20.GL_ZERO); - activeStrokeBounds = null; - activePath = null; + GLES20.glVertexAttribPointer(0, 2, GLES20.GL_FLOAT, false, 8, vertexBuffer); + GLES20.glEnableVertexAttribArray(0); + GLES20.glVertexAttribPointer(1, 2, GLES20.GL_FLOAT, false, 8, textureBuffer); + GLES20.glEnableVertexAttribArray(1); + + GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4); + + GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, getTexture()); + GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR); + + GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, 0); + + if (!isSuppressingChanges() && delegate != null) { + delegate.contentChanged(); } + + endSuppressingChanges(); + + renderState.reset(); + + activeStrokeBounds = null; + activePath = null; + }); + } + + public void clearStroke() { + renderView.performInContext(() -> { + GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, getReusableFramebuffer()); + GLES20.glFramebufferTexture2D(GLES20.GL_FRAMEBUFFER, GLES20.GL_COLOR_ATTACHMENT0, GLES20.GL_TEXTURE_2D, getPaintTexture(), 0); + + Utils.HasGLError(); + + int status = GLES20.glCheckFramebufferStatus(GLES20.GL_FRAMEBUFFER); + if (status == GLES20.GL_FRAMEBUFFER_COMPLETE) { + GLES20.glViewport(0, 0, (int) size.width, (int) size.height); + GLES20.glClearColor(0, 0, 0, 0); + GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT); + } + + GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, 0); + + if (delegate != null) { + delegate.contentChanged(); + } + renderState.reset(); + activeStrokeBounds = null; + activePath = null; }); } @@ -273,28 +285,20 @@ public class Painting { ByteBuffer data = paintingData.data; final Slice slice = new Slice(data, rect, delegate.requestDispatchQueue()); - delegate.requestUndoStore().registerUndo(UUID.randomUUID(), new Runnable() { - @Override - public void run() { - restoreSlice(slice); - } - }); + delegate.requestUndoStore().registerUndo(UUID.randomUUID(), () -> restoreSlice(slice)); } private void restoreSlice(final Slice slice) { - renderView.performInContext(new Runnable() { - @Override - public void run() { - ByteBuffer buffer = slice.getData(); + renderView.performInContext(() -> { + ByteBuffer buffer = slice.getData(); - GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, getTexture()); - GLES20.glTexSubImage2D(GLES20.GL_TEXTURE_2D, 0, slice.getX(), slice.getY(), slice.getWidth(), slice.getHeight(), GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, buffer); - if (!isSuppressingChanges() && delegate != null) { - delegate.contentChanged(slice.getBounds()); - } - - slice.cleanResources(); + GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, getTexture()); + GLES20.glTexSubImage2D(GLES20.GL_TEXTURE_2D, 0, slice.getX(), slice.getY(), slice.getWidth(), slice.getHeight(), GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, buffer); + if (!isSuppressingChanges() && delegate != null) { + delegate.contentChanged(); } + + slice.cleanResources(); }); } @@ -406,8 +410,8 @@ public class Painting { Matrix translate = new Matrix(); translate.preTranslate(-minX, -minY); - float effective[] = GLMatrix.LoadGraphicsMatrix(translate); - float finalProjection[] = GLMatrix.MultiplyMat4f(projection, effective); + float[] effective = GLMatrix.LoadGraphicsMatrix(translate); + float[] finalProjection = GLMatrix.MultiplyMat4f(projection, effective); GLES20.glUniformMatrix4fv(shader.getUniform("mvpMatrix"), 1, false, FloatBuffer.wrap(finalProjection)); @@ -472,18 +476,15 @@ public class Painting { } public void onPause(final Runnable completionRunnable) { - renderView.performInContext(new Runnable() { - @Override - public void run() { - paused = true; - PaintingData data = getPaintingData(getBounds(), true); - backupSlice = new Slice(data.data, getBounds(), delegate.requestDispatchQueue()); + renderView.performInContext(() -> { + paused = true; + PaintingData data = getPaintingData(getBounds(), true); + backupSlice = new Slice(data.data, getBounds(), delegate.requestDispatchQueue()); - cleanResources(false); + cleanResources(false); - if (completionRunnable != null) - completionRunnable.run(); - } + if (completionRunnable != null) + completionRunnable.run(); }); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/PhotoFace.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/PhotoFace.java index 3db0c9daa..00860e15c 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/PhotoFace.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/PhotoFace.java @@ -101,8 +101,7 @@ public class PhotoFace { private Point transposePoint(PointF point, Bitmap sourceBitmap, Size targetSize, boolean sideward) { float bitmapW = sideward ? sourceBitmap.getHeight() : sourceBitmap.getWidth(); float bitmapH = sideward ? sourceBitmap.getWidth() : sourceBitmap.getHeight(); - return new Point(targetSize.width * point.x / bitmapW, - targetSize.height * point.y / bitmapH); + return new Point(targetSize.width * point.x / bitmapW, targetSize.height * point.y / bitmapH); } public Point getPointForAnchor(int anchor) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/RenderView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/RenderView.java index 72a1387a2..c842fd825 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/RenderView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/RenderView.java @@ -15,6 +15,7 @@ import javax.microedition.khronos.egl.EGLContext; import javax.microedition.khronos.egl.EGLDisplay; import javax.microedition.khronos.egl.EGLSurface; +import org.telegram.messenger.AndroidUtilities; import org.telegram.messenger.BuildVars; import org.telegram.messenger.DispatchQueue; import org.telegram.messenger.FileLog; @@ -27,6 +28,7 @@ public class RenderView extends TextureView { public interface RenderViewDelegate { void onBeganDrawing(); void onFinishedDrawing(boolean moved); + void onFirstDraw(); boolean shouldDraw(); } @@ -39,7 +41,8 @@ public class RenderView extends TextureView { private Input input; private Bitmap bitmap; private boolean transformedBitmap; - private int orientation; + + private boolean firstDrawSent; private float weight; private int color; @@ -47,11 +50,11 @@ public class RenderView extends TextureView { private boolean shuttingDown; - public RenderView(Context context, Painting paint, Bitmap b, int rotation) { + public RenderView(Context context, Painting paint, Bitmap b) { super(context); + setOpaque(false); bitmap = b; - orientation = rotation; painting = paint; painting.setRenderView(this); @@ -82,12 +85,9 @@ public class RenderView extends TextureView { internal.setBufferSize(width, height); updateTransform(); internal.requestRender(); - internal.postRunnable(new Runnable() { - @Override - public void run() { - if (internal != null) { - internal.requestRender(); - } + internal.postRunnable(() -> { + if (internal != null) { + internal.requestRender(); } }); } @@ -98,12 +98,9 @@ public class RenderView extends TextureView { return true; } if (!shuttingDown) { - painting.onPause(new Runnable() { - @Override - public void run() { - internal.shutdown(); - internal = null; - } + painting.onPause(() -> { + internal.shutdown(); + internal = null; }); } @@ -119,7 +116,7 @@ public class RenderView extends TextureView { input = new Input(this); painting.setDelegate(new Painting.PaintingDelegate() { @Override - public void contentChanged(RectF rect) { + public void contentChanged() { if (internal != null) { internal.scheduleRedraw(); } @@ -142,21 +139,21 @@ public class RenderView extends TextureView { }); } - @Override - protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - super.onMeasure(widthMeasureSpec, heightMeasureSpec); + public void redraw() { + if (internal == null) { + return; + } + internal.requestRender(); } - @Override - public boolean onTouchEvent(MotionEvent event) { + public boolean onTouch(MotionEvent event) { if (event.getPointerCount() > 1) { return false; } - - if (internal == null || !internal.initialized || !internal.ready) + if (internal == null || !internal.initialized || !internal.ready) { return true; - - input.process(event); + } + input.process(event, getScaleX()); return true; } @@ -221,9 +218,9 @@ public class RenderView extends TextureView { input.setMatrix(matrix); - float proj[] = GLMatrix.LoadOrtho(0.0f, internal.bufferWidth, 0.0f, internal.bufferHeight, -1.0f, 1.0f); - float effectiveProjection[] = GLMatrix.LoadGraphicsMatrix(matrix); - float finalProjection[] = GLMatrix.MultiplyMat4f(proj, effectiveProjection); + float[] proj = GLMatrix.LoadOrtho(0.0f, internal.bufferWidth, 0.0f, internal.bufferHeight, -1.0f, 1.0f); + float[] effectiveProjection = GLMatrix.LoadGraphicsMatrix(matrix); + float[] finalProjection = GLMatrix.MultiplyMat4f(proj, effectiveProjection); painting.setRenderProjection(finalProjection); } @@ -247,13 +244,10 @@ public class RenderView extends TextureView { shuttingDown = true; if (internal != null) { - performInContext(new Runnable() { - @Override - public void run() { - painting.cleanResources(transformedBitmap); - internal.shutdown(); - internal = null; - } + performInContext(() -> { + painting.cleanResources(transformedBitmap); + internal.shutdown(); + internal = null; }); } @@ -261,12 +255,11 @@ public class RenderView extends TextureView { } private class CanvasInternal extends DispatchQueue { - private final int EGL_CONTEXT_CLIENT_VERSION = 0x3098; - private final int EGL_OPENGL_ES2_BIT = 4; + private static final int EGL_CONTEXT_CLIENT_VERSION = 0x3098; + private static final int EGL_OPENGL_ES2_BIT = 4; private SurfaceTexture surfaceTexture; private EGL10 egl10; private EGLDisplay eglDisplay; - private EGLConfig eglConfig; private EGLContext eglContext; private EGLSurface eglSurface; private boolean initialized; @@ -326,6 +319,7 @@ public class RenderView extends TextureView { EGL10.EGL_STENCIL_SIZE, 0, EGL10.EGL_NONE }; + EGLConfig eglConfig; if (!egl10.eglChooseConfig(eglDisplay, configSpec, configs, 1, configsCount)) { if (BuildVars.LOGS_ENABLED) { FileLog.e("eglChooseConfig failed " + GLUtils.getEGLErrorString(egl10.eglGetError())); @@ -391,21 +385,16 @@ public class RenderView extends TextureView { private Bitmap createBitmap(Bitmap bitmap, float scale) { Matrix matrix = new Matrix(); matrix.setScale(scale, scale); - matrix.postRotate(orientation); return Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true); } private void checkBitmap() { Size paintingSize = painting.getSize(); - - if (bitmap.getWidth() != paintingSize.width || bitmap.getHeight() != paintingSize.height || orientation != 0) { - float bitmapWidth = bitmap.getWidth(); - if (orientation % 360 == 90 || orientation % 360 == 270) - bitmapWidth = bitmap.getHeight(); - - float scale = paintingSize.width / bitmapWidth; - bitmap = createBitmap(bitmap, scale); - orientation = 0; + if (bitmap.getWidth() != paintingSize.width || bitmap.getHeight() != paintingSize.height) { + Bitmap b = Bitmap.createBitmap((int) paintingSize.width, (int) paintingSize.height, Bitmap.Config.ARGB_8888); + Canvas canvas = new Canvas(b); + canvas.drawBitmap(bitmap, null, new RectF(0, 0, paintingSize.width, paintingSize.height), null); + bitmap = b; transformedBitmap = true; } } @@ -435,7 +424,7 @@ public class RenderView extends TextureView { GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, 0); GLES20.glViewport(0, 0, bufferWidth, bufferHeight); - GLES20.glClearColor(0.0f, 0.0f, 0.0f, 1.0f); + GLES20.glClearColor(0.0f, 0.0f, 0.0f, 0.0f); GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT); painting.render(); @@ -443,14 +432,13 @@ public class RenderView extends TextureView { GLES20.glBlendFunc(GLES20.GL_ONE, GLES20.GL_ONE_MINUS_SRC_ALPHA); egl10.eglSwapBuffers(eglDisplay, eglSurface); + if (!firstDrawSent) { + firstDrawSent = true; + AndroidUtilities.runOnUIThread(() -> delegate.onFirstDraw()); + } if (!ready) { - queue.postRunnable(new Runnable() { - @Override - public void run() { - ready = true; - } - }, 200); + queue.postRunnable(() -> ready = true, 200); } } }; @@ -461,12 +449,7 @@ public class RenderView extends TextureView { } public void requestRender() { - postRunnable(new Runnable() { - @Override - public void run() { - drawRunnable.run(); - } - }); + postRunnable(() -> drawRunnable.run()); } public void scheduleRedraw() { @@ -475,12 +458,9 @@ public class RenderView extends TextureView { scheduledRunnable = null; } - scheduledRunnable = new Runnable() { - @Override - public void run() { - scheduledRunnable = null; - drawRunnable.run(); - } + scheduledRunnable = () -> { + scheduledRunnable = null; + drawRunnable.run(); }; postRunnable(scheduledRunnable, 1); @@ -503,14 +483,11 @@ public class RenderView extends TextureView { } public void shutdown() { - postRunnable(new Runnable() { - @Override - public void run() { - finish(); - Looper looper = Looper.myLooper(); - if (looper != null) { - looper.quit(); - } + postRunnable(() -> { + finish(); + Looper looper = Looper.myLooper(); + if (looper != null) { + looper.quit(); } }); } @@ -520,15 +497,14 @@ public class RenderView extends TextureView { return null; } final CountDownLatch countDownLatch = new CountDownLatch(1); - final Bitmap object[] = new Bitmap[1]; + final Bitmap[] object = new Bitmap[1]; try { - postRunnable(new Runnable() { - @Override - public void run() { - Painting.PaintingData data = painting.getPaintingData(new RectF(0, 0, painting.getSize().width, painting.getSize().height), false); + postRunnable(() -> { + Painting.PaintingData data = painting.getPaintingData(new RectF(0, 0, painting.getSize().width, painting.getSize().height), false); + if (data != null) { object[0] = data.bitmap; - countDownLatch.countDown(); } + countDownLatch.countDown(); }); countDownLatch.await(); } catch (Exception e) { @@ -547,16 +523,13 @@ public class RenderView extends TextureView { return; } - internal.postRunnable(new Runnable() { - @Override - public void run() { - if (internal == null || !internal.initialized) { - return; - } - - internal.setCurrentContext(); - action.run(); + internal.postRunnable(() -> { + if (internal == null || !internal.initialized) { + return; } + + internal.setCurrentContext(); + action.run(); }); } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Shader.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Shader.java index 938b90f62..4aea59796 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Shader.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Shader.java @@ -17,7 +17,7 @@ public class Shader { protected Map uniformsMap = new HashMap<>(); - public Shader(String vertexShader, String fragmentShader, String attributes[], String uniforms[]) { + public Shader(String vertexShader, String fragmentShader, String[] attributes, String[] uniforms) { this.program = GLES20.glCreateProgram(); CompilationResult vResult = compileShader(GLES20.GL_VERTEX_SHADER, vertexShader); @@ -70,7 +70,7 @@ public class Shader { } } - private class CompilationResult { + private static class CompilationResult { int shader; int status; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/ShaderSet.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/ShaderSet.java index 7f72a8d02..dd302cae7 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/ShaderSet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/ShaderSet.java @@ -21,8 +21,8 @@ public class ShaderSet { private static final String PAINT_BLIT_FSH = "precision highp float; varying vec2 varTexcoord; uniform sampler2D texture; void main (void) { vec4 tex = texture2D(texture, varTexcoord.st, 0.0); gl_FragColor = texture2D(texture, varTexcoord.st, 0.0); gl_FragColor.rgb *= gl_FragColor.a; }"; private static final String PAINT_BLITWITHMASKLIGHT_FSH = "precision highp float; varying vec2 varTexcoord; uniform sampler2D texture; uniform sampler2D mask; uniform vec4 color; void main (void) { vec4 dst = texture2D(texture, varTexcoord.st, 0.0); vec3 maskColor = texture2D(mask, varTexcoord.st, 0.0).rgb; float srcAlpha = clamp(0.78 * maskColor.r + maskColor.b + maskColor.g, 0.0, 1.0); vec3 borderColor = mix(color.rgb, vec3(1.0, 1.0, 1.0), 0.86); vec3 finalColor = mix(color.rgb, borderColor, maskColor.g); finalColor = mix(finalColor.rgb, vec3(1.0, 1.0, 1.0), maskColor.b); float outAlpha = srcAlpha + dst.a * (1.0 - srcAlpha); gl_FragColor.rgb = (finalColor * srcAlpha + dst.rgb * dst.a * (1.0 - srcAlpha)) / outAlpha; gl_FragColor.a = outAlpha; gl_FragColor.rgb *= gl_FragColor.a; }"; private static final String PAINT_BLITWITHMASK_FSH = "precision highp float; varying vec2 varTexcoord; uniform sampler2D texture; uniform sampler2D mask; uniform vec4 color; void main (void) { vec4 dst = texture2D(texture, varTexcoord.st, 0.0); float srcAlpha = color.a * texture2D(mask, varTexcoord.st, 0.0).a; float outAlpha = srcAlpha + dst.a * (1.0 - srcAlpha); gl_FragColor.rgb = (color.rgb * srcAlpha + dst.rgb * dst.a * (1.0 - srcAlpha)) / outAlpha; gl_FragColor.a = outAlpha; gl_FragColor.rgb *= gl_FragColor.a; }"; - private static final String PAINT_COMPOSITEWITHMASK_FSH = "precision highp float; varying vec2 varTexcoord; uniform sampler2D mask; uniform vec4 color; void main(void) { float alpha = color.a * texture2D(mask, varTexcoord.st, 0.0).a; gl_FragColor.rgb = color.rgb; gl_FragColor.a = alpha; }"; - private static final String PAINT_COMPOSITEWITHMASKLIGHT_FSH = "precision highp float; varying vec2 varTexcoord; uniform sampler2D mask; uniform vec4 color; void main (void) { vec3 maskColor = texture2D(mask, varTexcoord.st, 0.0).rgb; float alpha = clamp(0.78 * maskColor.r + maskColor.b + maskColor.g, 0.0, 1.0); vec3 borderColor = mix(color.rgb, vec3(1.0, 1.0, 1.0), 0.86); vec3 finalColor = mix(color.rgb, borderColor, maskColor.g); finalColor = mix(finalColor.rgb, vec3(1.0, 1.0, 1.0), maskColor.b); gl_FragColor.rgb = finalColor; gl_FragColor.a = alpha; }"; + private static final String PAINT_COMPOSITEWITHMASK_FSH = "precision highp float; varying vec2 varTexcoord; uniform sampler2D texture; uniform sampler2D mask; uniform vec4 color; void main(void) { vec4 dst = texture2D(texture, varTexcoord.st, 0.0); float srcAlpha = color.a * texture2D(mask, varTexcoord.st, 0.0).a; float outAlpha = srcAlpha + dst.a * (1.0 - srcAlpha); gl_FragColor.rgb = (color.rgb * srcAlpha + dst.rgb * dst.a * (1.0 - srcAlpha)) / outAlpha; gl_FragColor.a = outAlpha; }"; + private static final String PAINT_COMPOSITEWITHMASKLIGHT_FSH = "precision highp float; varying vec2 varTexcoord; uniform sampler2D texture; uniform sampler2D mask; uniform vec4 color; void main(void) { vec4 dst = texture2D(texture, varTexcoord.st, 0.0); vec3 maskColor = texture2D(mask, varTexcoord.st, 0.0).rgb; float srcAlpha = clamp(0.78 * maskColor.r + maskColor.b + maskColor.g, 0.0, 1.0); vec3 borderColor = mix(color.rgb, vec3(1.0, 1.0, 1.0), 0.86); vec3 finalColor = mix(color.rgb, borderColor, maskColor.g); finalColor = mix(finalColor.rgb, vec3(1.0, 1.0, 1.0), maskColor.b); float outAlpha = srcAlpha + dst.a * (1.0 - srcAlpha); gl_FragColor.rgb = (finalColor * srcAlpha + dst.rgb * dst.a * (1.0 - srcAlpha)) / outAlpha; gl_FragColor.a = outAlpha; }"; private static final String PAINT_NONPREMULTIPLIEDBLIT_FSH = "precision highp float; varying vec2 varTexcoord; uniform sampler2D texture; void main (void) { gl_FragColor = texture2D(texture, varTexcoord.st, 0.0); }"; private static Map> createMap() { @@ -67,7 +67,7 @@ public class ShaderSet { shader.put(VERTEX, PAINT_BLIT_VSH); shader.put(FRAGMENT, PAINT_COMPOSITEWITHMASK_FSH); shader.put(ATTRIBUTES, new String[]{"inPosition", "inTexcoord"}); - shader.put(UNIFORMS, new String[]{"mvpMatrix", "mask", "color"}); + shader.put(UNIFORMS, new String[]{"mvpMatrix", "texture", "mask", "color"}); result.put("compositeWithMask", Collections.unmodifiableMap(shader)); shader = new HashMap<>(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Slice.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Slice.java index 68ad7db41..c2d05b1d7 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Slice.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Slice.java @@ -84,8 +84,7 @@ public class Slice { if (inflater.finished()) { break; - } - else if (inflater.needsInput()) { + } else if (inflater.needsInput()) { continue; } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Texture.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Texture.java index 78262d5bd..8ad83be74 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Texture.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Texture.java @@ -6,6 +6,8 @@ import android.opengl.GLUtils; import org.telegram.ui.Components.Size; +import java.nio.ByteBuffer; + public class Texture { private Bitmap bitmap; @@ -48,18 +50,17 @@ public class Texture { GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, texture); - boolean mipMappable = false; //isPOT(bitmap.getWidth()) && isPOT(bitmap.getHeight()); GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE); GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE); - GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR); - GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, mipMappable ? GLES20.GL_LINEAR_MIPMAP_LINEAR : GLES20.GL_LINEAR); + GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR); GLUtils.texImage2D(GLES20.GL_TEXTURE_2D, 0, bitmap, 0); + int px = bitmap.getPixel(0, 0); - if (mipMappable) { - GLES20.glGenerateMipmap(GLES20.GL_TEXTURE_2D); - } + ByteBuffer buffer = ByteBuffer.allocateDirect(4); //fix for android 9.0 + buffer.putInt(px).position(0); + GLES20.glTexSubImage2D(GLES20.GL_TEXTURE_2D, 0, 0, 0, 1, 1, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, buffer); Utils.HasGLError(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/UndoStore.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/UndoStore.java index 0851fcc25..e33fd81d3 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/UndoStore.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/UndoStore.java @@ -63,12 +63,9 @@ public class UndoStore { } private void notifyOfHistoryChanges() { - AndroidUtilities.runOnUIThread(new Runnable() { - @Override - public void run() { - if (delegate != null) { - delegate.historyChanged(); - } + AndroidUtilities.runOnUIThread(() -> { + if (delegate != null) { + delegate.historyChanged(); } }); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/ColorPicker.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/ColorPicker.java index 60c9eb9f9..cdf51c185 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/ColorPicker.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/ColorPicker.java @@ -76,7 +76,7 @@ public class ColorPicker extends FrameLayout { private RectF rectF = new RectF(); private float location; - private float weight = 0.27f; + private float weight = 0.016773745f; private float draggingFactor; private boolean dragging; @@ -91,7 +91,7 @@ public class ColorPicker extends FrameLayout { settingsButton = new ImageView(context); settingsButton.setScaleType(ImageView.ScaleType.CENTER); settingsButton.setImageResource(R.drawable.photo_paint_brush); - addView(settingsButton, LayoutHelper.createFrame(60, 52)); + addView(settingsButton, LayoutHelper.createFrame(46, 52)); settingsButton.setOnClickListener(v -> { if (delegate != null) { delegate.onSettingsPressed(); @@ -101,7 +101,7 @@ public class ColorPicker extends FrameLayout { undoButton = new ImageView(context); undoButton.setScaleType(ImageView.ScaleType.CENTER); undoButton.setImageResource(R.drawable.photo_undo); - addView(undoButton, LayoutHelper.createFrame(60, 52)); + addView(undoButton, LayoutHelper.createFrame(46, 52)); undoButton.setOnClickListener(v -> { if (delegate != null) { delegate.onUndoPressed(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/EditTextOutline.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/EditTextOutline.java index 4666c30ca..8e5e78cc5 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/EditTextOutline.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/EditTextOutline.java @@ -1,33 +1,44 @@ package org.telegram.ui.Components.Paint.Views; +import android.annotation.SuppressLint; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; +import android.graphics.Path; import android.graphics.PorterDuff; +import android.graphics.RectF; +import android.text.InputType; import android.text.Layout; import android.text.StaticLayout; import android.text.TextPaint; -import android.widget.EditText; -public class EditTextOutline extends EditText { +import org.telegram.messenger.AndroidUtilities; +import org.telegram.ui.Components.EditTextBoldCursor; - private final Canvas mCanvas = new Canvas(); - private final TextPaint mPaint = new TextPaint(); +public class EditTextOutline extends EditTextBoldCursor { + + private Canvas mCanvas = new Canvas(); + private TextPaint textPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG); + private Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); private Bitmap mCache; private boolean mUpdateCachedBitmap; private int mStrokeColor; private float mStrokeWidth; + private int mFrameColor; + private Path path = new Path(); + private RectF rect = new RectF(); + private float[] lines; public EditTextOutline(Context context) { super(context); mStrokeColor = Color.TRANSPARENT; + setInputType(getInputType() | InputType.TYPE_TEXT_FLAG_MULTI_LINE | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS); mUpdateCachedBitmap = true; - mPaint.setAntiAlias(true); - mPaint.setStyle(Paint.Style.FILL_AND_STROKE); + textPaint.setStyle(Paint.Style.FILL_AND_STROKE); } protected void onTextChanged(CharSequence text, int start, int before, int after) { @@ -39,6 +50,9 @@ public class EditTextOutline extends EditText { super.onSizeChanged(w, h, oldw, oldh); if (w > 0 && h > 0) { mUpdateCachedBitmap = true; + if (mCache != null) { + mCache.recycle(); + } mCache = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888); } else { mCache = null; @@ -46,17 +60,43 @@ public class EditTextOutline extends EditText { } public void setStrokeColor(int strokeColor) { - this.mStrokeColor = strokeColor; + mStrokeColor = strokeColor; + mUpdateCachedBitmap = true; + invalidate(); + } + + public void setFrameColor(int frameColor) { + if (mFrameColor == 0 && frameColor != 0) { + setPadding(AndroidUtilities.dp(7 + 12), AndroidUtilities.dp(7), AndroidUtilities.dp(7 + 12), AndroidUtilities.dp(7)); + setCursorColor(0xff000000); + } else if (mFrameColor != 0 && frameColor == 0) { + setPadding(AndroidUtilities.dp(7), AndroidUtilities.dp(7), AndroidUtilities.dp(7), AndroidUtilities.dp(7)); + setCursorColor(0xffffffff); + } + mFrameColor = frameColor; + + if (mFrameColor != 0) { + float lightness = AndroidUtilities.computePerceivedBrightness(mFrameColor); + if (lightness == 0) { + lightness = Color.red(mFrameColor) / 255.0f; + } + if (lightness > 0.87) { + setTextColor(0xff000000); + } else { + setTextColor(0xffffffff); + } + } mUpdateCachedBitmap = true; invalidate(); } public void setStrokeWidth(float strokeWidth) { - this.mStrokeWidth = strokeWidth; + mStrokeWidth = strokeWidth; mUpdateCachedBitmap = true; invalidate(); } + @SuppressLint("DrawAllocation") protected void onDraw(Canvas canvas) { if (mCache != null && mStrokeColor != Color.TRANSPARENT) { if (mUpdateCachedBitmap) { @@ -67,24 +107,159 @@ public class EditTextOutline extends EditText { mCanvas.setBitmap(mCache); mCanvas.drawColor(0, PorterDuff.Mode.CLEAR); - float strokeWidth = mStrokeWidth > 0 ? mStrokeWidth : (float)Math.ceil(getTextSize() / 11.5f); - mPaint.setStrokeWidth(strokeWidth); - mPaint.setColor(mStrokeColor); - mPaint.setTextSize(getTextSize()); - mPaint.setTypeface(getTypeface()); - mPaint.setStyle(Paint.Style.FILL_AND_STROKE); + float strokeWidth = mStrokeWidth > 0 ? mStrokeWidth : (float) Math.ceil(getTextSize() / 11.5f); + textPaint.setStrokeWidth(strokeWidth); + textPaint.setColor(mStrokeColor); + textPaint.setTextSize(getTextSize()); + textPaint.setTypeface(getTypeface()); + textPaint.setStyle(Paint.Style.FILL_AND_STROKE); - StaticLayout sl = new StaticLayout(text, mPaint, w, Layout.Alignment.ALIGN_CENTER, 1, 0, true); + StaticLayout sl = new StaticLayout(text, textPaint, w, Layout.Alignment.ALIGN_CENTER, 1, 0, true); mCanvas.save(); - float a = (h - getPaddingTop() - getPaddingBottom() - sl.getHeight()) / 2.0f; - mCanvas.translate(getPaddingLeft(), a + getPaddingTop()); + float ty = (h - getPaddingTop() - getPaddingBottom() - sl.getHeight()) / 2.0f; + mCanvas.translate(getPaddingLeft(), ty + getPaddingTop()); sl.draw(mCanvas); mCanvas.restore(); mUpdateCachedBitmap = false; } - canvas.drawBitmap(mCache, 0, 0, mPaint); + canvas.drawBitmap(mCache, 0, 0, textPaint); + } + if (mFrameColor != 0) { + paint.setColor(mFrameColor); + Layout sl = getLayout(); + if (lines == null || lines.length != sl.getLineCount()) { + lines = new float[sl.getLineCount()]; + } + float rad = AndroidUtilities.dp(6); + float padding = AndroidUtilities.dp(6); + float inset = AndroidUtilities.dp(26); + for (int a = 0; a < lines.length; a++) { + float w = (float) Math.ceil(sl.getLineRight(a) - sl.getLineLeft(a)); + if (w > AndroidUtilities.dp(1)) { + lines[a] = w + padding * 2; + } else { + lines[a] = 0; + } + } + boolean hasChanges; + do { + hasChanges = false; + for (int a = 1; a < lines.length; a++) { + if (lines[a] == 0) { + continue; + } + float diff = lines[a] - lines[a - 1]; + if (diff > 0) { + if (diff < inset) { + lines[a - 1] = lines[a]; + hasChanges = true; + } else if (diff < rad * 4) { + lines[a] += Math.ceil(rad * 4 - diff); + hasChanges = true; + } + } else if (diff < 0) { + if (-diff < inset) { + lines[a] = lines[a - 1]; + hasChanges = true; + } else if (-diff < rad * 4) { + lines[a - 1] += Math.ceil(rad * 4 + diff); + hasChanges = true; + } + } + } + } while (hasChanges); + int cx = getMeasuredWidth() / 2; + float cx1, cx2; + float top = (getMeasuredHeight() - sl.getHeight()) / 2; + for (int a = 0; a < lines.length; a++) { + int h = (sl.getLineBottom(a) - sl.getLineTop(a)) - (a != lines.length - 1 ? AndroidUtilities.dp(1) : 0) + (a != 0 ? AndroidUtilities.dp(1) : 0); + if (lines[a] <= padding * 2) { + top += h; + continue; + } + boolean topLess = a > 0 && lines[a - 1] > lines[a] && lines[a - 1] > padding * 2; + boolean bottomLess = a + 1 < lines.length && lines[a + 1] > lines[a] && lines[a + 1] > padding * 2; + boolean drawTop = a == 0 || lines[a - 1] != lines[a]; + boolean drawBottom = a == lines.length - 1 || lines[a] != lines[a + 1]; + + path.reset(); + + if (a != 0) { + top -= 1; + h += 1; + } + float bottom = (float) Math.ceil(top + h); + + cx1 = cx - lines[a] / 2 + rad; + cx2 = cx + lines[a] / 2 - rad; + + path.moveTo(cx1, top); + + if (drawTop) { + if (topLess) { + path.lineTo(cx2 + rad * 2, top); + rect.set(cx2 + rad, top, cx2 + rad * 3, top + rad * 2); + path.arcTo(rect, 270, -90, false); + } else { + path.lineTo(cx2, top); + rect.set(cx2 - rad, top, cx2 + rad, top + rad * 2); + path.arcTo(rect, 270, 90, false); + } + } else { + path.lineTo(cx2 + rad, top); + } + + path.lineTo(cx2 + rad, bottom - rad); + + if (drawBottom) { + if (bottomLess) { + rect.set(cx2 + rad, bottom - rad * 2, cx2 + rad * 3, bottom); + path.arcTo(rect, 180, -90, false); + path.lineTo(cx1 - rad * 2, bottom); + } else { + rect.set(cx2 - rad, bottom - rad * 2, cx2 + rad, bottom); + path.arcTo(rect, 0, 90, false); + path.lineTo(cx1, bottom); + } + + if (bottomLess) { + rect.set(cx1 - rad * 3, bottom - rad * 2, cx1 - rad, bottom); + path.arcTo(rect, 90, -90, false); + } else { + rect.set(cx1 - rad, bottom - rad * 2, cx1 + rad, bottom); + path.arcTo(rect, 90, 90, false); + } + } else { + path.lineTo(cx2 + rad, bottom); + path.lineTo(cx1 - rad, bottom); + } + + path.lineTo(cx1 - rad, top - rad); + + if (drawTop) { + if (topLess) { + rect.set(cx1 - rad * 3, top, cx1 - rad, top + rad * 2); + path.arcTo(rect, 0, -90, false); + } else { + rect.set(cx1 - rad, top, cx1 + rad, top + rad * 2); + path.arcTo(rect, 180, 90, false); + } + } else { + path.lineTo(cx1 - rad, top); + } + + path.close(); + + canvas.drawPath(path, paint); + + if (a != 0) { + top += 1; + h -= 1; + } + top += h; + } } super.onDraw(canvas); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/EntitiesContainerView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/EntitiesContainerView.java index ab45f3285..76ac66549 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/EntitiesContainerView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/EntitiesContainerView.java @@ -60,13 +60,11 @@ public class EntitiesContainerView extends FrameLayout implements ScaleGestureDe return false; } - if (event.getPointerCount() == 1) - { + if (event.getPointerCount() == 1) { int action = event.getActionMasked(); if (action == MotionEvent.ACTION_DOWN) { hasTransformed = false; - } - else if (action == MotionEvent.ACTION_UP || action == MotionEvent.ACTION_MOVE) { + } else if (action == MotionEvent.ACTION_UP || action == MotionEvent.ACTION_MOVE) { if (!hasTransformed && delegate != null) { delegate.onEntityDeselect(); } @@ -123,4 +121,15 @@ public class EntitiesContainerView extends FrameLayout implements ScaleGestureDe public void onRotationEnd(RotationGestureDetector rotationDetector) { } + + @Override + protected void measureChildWithMargins(View child, int parentWidthMeasureSpec, int widthUsed, int parentHeightMeasureSpec, int heightUsed) { + if (child instanceof TextPaintView) { + final MarginLayoutParams lp = (MarginLayoutParams) child.getLayoutParams(); + final int childWidthMeasureSpec = getChildMeasureSpec(parentWidthMeasureSpec, getPaddingLeft() + getPaddingRight() + lp.leftMargin + lp.rightMargin + widthUsed, lp.width); + child.measure(childWidthMeasureSpec, MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); + } else { + super.measureChildWithMargins(child, parentWidthMeasureSpec, widthUsed, parentHeightMeasureSpec, heightUsed); + } + } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/EntityView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/EntityView.java index c115558bd..0727a7578 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/EntityView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/EntityView.java @@ -33,12 +33,9 @@ public class EntityView extends FrameLayout { private EntityViewDelegate delegate; - protected Point position = new Point(); + protected Point position; protected SelectionView selectionView; - private int offsetX; - private int offsetY; - private GestureDetector gestureDetector; private UUID uuid; @@ -90,11 +87,6 @@ public class EntityView extends FrameLayout { delegate = entityViewDelegate; } - public void setOffset(int x, int y) { - offsetX = x; - offsetY = y; - } - @Override public boolean onInterceptTouchEvent(MotionEvent ev) { return delegate.allowInteraction(this); @@ -102,11 +94,12 @@ public class EntityView extends FrameLayout { private boolean onTouchMove(float x, float y) { float scale = ((View) getParent()).getScaleX(); - Point translation = new Point((x - previousLocationX) / scale, (y - previousLocationY) / scale); - float distance = (float) Math.hypot(translation.x, translation.y); + float tx = (x - previousLocationX) / scale; + float ty = (y - previousLocationY) / scale; + float distance = (float) Math.hypot(tx, ty); float minDistance = hasPanned ? 6 : 16; if (distance > minDistance) { - pan(translation); + pan(tx, ty); previousLocationX = x; previousLocationY = y; hasPanned = true; @@ -170,22 +163,21 @@ public class EntityView extends FrameLayout { return handled; } - public void pan(Point translation) { - position.x += translation.x; - position.y += translation.y; + public void pan(float tx, float ty) { + position.x += tx; + position.y += ty; updatePosition(); } protected void updatePosition() { - float halfWidth = getWidth() / 2.0f; - float halfHeight = getHeight() / 2.0f; + float halfWidth = getMeasuredWidth() / 2.0f; + float halfHeight = getMeasuredHeight() / 2.0f; setX(position.x - halfWidth); setY(position.y - halfHeight); updateSelectionView(); } public void scale(float scale) { - float newScale = Math.max(getScale() * scale, 0.1f); setScale(newScale); updateSelectionView(); @@ -265,8 +257,8 @@ public class EntityView extends FrameLayout { protected void updatePosition() { Rect bounds = getSelectionBounds(); LayoutParams layoutParams = (LayoutParams) getLayoutParams(); - layoutParams.leftMargin = (int)bounds.x + offsetX; - layoutParams.topMargin = (int)bounds.y + offsetY; + layoutParams.leftMargin = (int) bounds.x; + layoutParams.topMargin = (int) bounds.y; layoutParams.width = (int) bounds.width; layoutParams.height = (int) bounds.height; setLayoutParams(layoutParams); @@ -304,36 +296,40 @@ public class EntityView extends FrameLayout { handled = onTouchMove(x, y); } else if (currentHandle != 0) { - hasTransformed = true; - Point translation = new Point(event.getRawX() - previousLocationX, event.getRawY() - previousLocationY); - float radAngle = (float) Math.toRadians(getRotation()); - float delta = (float) (translation.x * Math.cos(radAngle) + translation.y * Math.sin(radAngle)); - if (currentHandle == SELECTION_LEFT_HANDLE) { - delta *= -1; + float tx = event.getRawX() - previousLocationX; + float ty = event.getRawY() - previousLocationY; + + if (hasTransformed || Math.abs(tx) > AndroidUtilities.dp(2) || Math.abs(ty) > AndroidUtilities.dp(2)) { + hasTransformed = true; + float radAngle = (float) Math.toRadians(getRotation()); + float delta = (float) (tx * Math.cos(radAngle) + ty * Math.sin(radAngle)); + if (currentHandle == SELECTION_LEFT_HANDLE) { + delta *= -1; + } + + float scaleDelta = 1 + (delta * 2) / getMeasuredWidth(); + scale(scaleDelta); + + float centerX = getLeft() + getMeasuredWidth() / 2; + float centerY = getTop() + getMeasuredHeight() / 2; + + float parentX = event.getRawX() - ((View) getParent()).getLeft(); + float parentY = event.getRawY() - ((View) getParent()).getTop(); + + float angle = 0; + if (currentHandle == SELECTION_LEFT_HANDLE) { + angle = (float) Math.atan2(centerY - parentY, centerX - parentX); + } else if (currentHandle == SELECTION_RIGHT_HANDLE) { + angle = (float) Math.atan2(parentY - centerY, parentX - centerX); + } + + rotate((float) Math.toDegrees(angle)); + + previousLocationX = event.getRawX(); + previousLocationY = event.getRawY(); } - float scaleDelta = 1 + (delta * 2) / getWidth(); - scale(scaleDelta); - - float centerX = getLeft() + getWidth() / 2; - float centerY = getTop() + getHeight() / 2; - - float parentX = event.getRawX() - ((View) getParent()).getLeft(); - float parentY = event.getRawY() - ((View) getParent()).getTop() - AndroidUtilities.statusBarHeight; - - float angle = 0; - if (currentHandle == SELECTION_LEFT_HANDLE) { - angle = (float) Math.atan2(centerY - parentY, centerX - parentX); - } else if (currentHandle == SELECTION_RIGHT_HANDLE) { - angle = (float) Math.atan2(parentY - centerY, parentX - centerX); - } - - rotate((float) Math.toDegrees(angle)); - - previousLocationX = event.getRawX(); - previousLocationY = event.getRawY(); - handled = true; } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/StickerView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/StickerView.java index afe5da956..38fd66413 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/StickerView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/StickerView.java @@ -1,7 +1,6 @@ package org.telegram.ui.Components.Paint.Views; import android.content.Context; -import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.RectF; @@ -15,6 +14,7 @@ import org.telegram.messenger.ImageReceiver; import org.telegram.tgnet.TLRPC; import org.telegram.ui.Components.LayoutHelper; import org.telegram.ui.Components.Point; +import org.telegram.ui.Components.RLottieDrawable; import org.telegram.ui.Components.Rect; import org.telegram.ui.Components.Size; @@ -57,8 +57,9 @@ public class StickerView extends EntityView { for (int a = 0; a < sticker.attributes.size(); a++) { TLRPC.DocumentAttribute attribute = sticker.attributes.get(a); if (attribute instanceof TLRPC.TL_documentAttributeSticker) { - if (attribute.mask_coords != null) + if (attribute.mask_coords != null) { anchor = attribute.mask_coords.n; + } break; } } @@ -82,6 +83,18 @@ public class StickerView extends EntityView { } } + @Override + protected void onDetachedFromWindow() { + super.onDetachedFromWindow(); + centerImage.onDetachedFromWindow(); + } + + @Override + protected void onAttachedToWindow() { + super.onAttachedToWindow(); + centerImage.onAttachedToWindow(); + } + public int getAnchor() { return anchor; } @@ -91,6 +104,10 @@ public class StickerView extends EntityView { containerView.invalidate(); } + public boolean isMirrored() { + return mirrored; + } + protected void updatePosition() { float halfWidth = baseSize.width / 2.0f; float halfHeight = baseSize.height / 2.0f; @@ -105,18 +122,23 @@ public class StickerView extends EntityView { } canvas.save(); - Bitmap bitmap = centerImage.getBitmap(); - if (bitmap != null) { - if (mirrored) { - canvas.scale(-1.0f, 1.0f); - canvas.translate(-baseSize.width, 0); - } - centerImage.setImageCoords(0, 0, (int) baseSize.width, (int) baseSize.height); - centerImage.draw(canvas); + if (mirrored) { + canvas.scale(-1.0f, 1.0f); + canvas.translate(-baseSize.width, 0); } + centerImage.setImageCoords(0, 0, (int) baseSize.width, (int) baseSize.height); + centerImage.draw(canvas); canvas.restore(); } + public long getDuration() { + RLottieDrawable drawable = centerImage.getLottieAnimation(); + if (drawable == null) { + return 0; + } + return drawable.getDuration(); + } + @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(MeasureSpec.makeMeasureSpec((int) baseSize.width, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec((int) baseSize.height, MeasureSpec.EXACTLY)); @@ -127,7 +149,7 @@ public class StickerView extends EntityView { ViewGroup parentView = (ViewGroup) getParent(); float scale = parentView.getScaleX(); - float side = getWidth() * (getScale() + 0.4f); + float side = getMeasuredWidth() * (getScale() + 0.4f); return new Rect((position.x - side / 2.0f) * scale, (position.y - side / 2.0f) * scale, side * scale, side * scale); } @@ -140,6 +162,14 @@ public class StickerView extends EntityView { return sticker; } + public Object getParentObject() { + return parentObject; + } + + public Size getBaseSize() { + return baseSize; + } + public class StickerViewSelectionView extends SelectionView { private Paint arcPaint = new Paint(Paint.ANTI_ALIAS_FLAG); @@ -159,15 +189,15 @@ public class StickerView extends EntityView { float radius = AndroidUtilities.dp(19.5f); float inset = radius + thickness; - float middle = inset + (getHeight() - inset * 2) / 2.0f; + float middle = inset + (getMeasuredHeight() - inset * 2) / 2.0f; if (x > inset - radius && y > middle - radius && x < inset + radius && y < middle + radius) { return SELECTION_LEFT_HANDLE; - } else if (x > inset + (getWidth() - inset * 2) - radius && y > middle - radius && x < inset + (getWidth() - inset * 2) + radius && y < middle + radius) { + } else if (x > inset + (getMeasuredWidth() - inset * 2) - radius && y > middle - radius && x < inset + (getMeasuredWidth() - inset * 2) + radius && y < middle + radius) { return SELECTION_RIGHT_HANDLE; } - float selectionRadius = getWidth() / 2.0f; + float selectionRadius = getMeasuredWidth() / 2.0f; if (Math.pow(x - selectionRadius, 2) + Math.pow(y - selectionRadius, 2) < Math.pow(selectionRadius, 2)) { return SELECTION_WHOLE_HANDLE; @@ -184,7 +214,7 @@ public class StickerView extends EntityView { float radius = AndroidUtilities.dp(4.5f); float inset = radius + thickness + AndroidUtilities.dp(15); - float mainRadius = getWidth() / 2 - inset; + float mainRadius = getMeasuredWidth() / 2 - inset; float space = 4.0f; float length = 4.0f; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/TextPaintView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/TextPaintView.java index d358f037e..5a50cb4ae 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/TextPaintView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/TextPaintView.java @@ -24,10 +24,10 @@ public class TextPaintView extends EntityView { private EditTextOutline editText; private Swatch swatch; - private boolean stroke; + private int currentType; private int baseFontSize; - public TextPaintView(Context context, Point position, int fontSize, String text, Swatch swatch, boolean stroke) { + public TextPaintView(Context context, Point position, int fontSize, String text, Swatch swatch, int type) { super(context, position); baseFontSize = fontSize; @@ -37,6 +37,7 @@ public class TextPaintView extends EntityView { editText.setPadding(AndroidUtilities.dp(7), AndroidUtilities.dp(7), AndroidUtilities.dp(7), AndroidUtilities.dp(7)); editText.setClickable(false); editText.setEnabled(false); + editText.setCursorColor(0xffffffff); editText.setTextSize(TypedValue.COMPLEX_UNIT_PX, baseFontSize); editText.setText(text); editText.setTextColor(swatch.color); @@ -53,7 +54,7 @@ public class TextPaintView extends EntityView { } setSwatch(swatch); - setStroke(stroke); + setType(type); updatePosition(); @@ -87,7 +88,7 @@ public class TextPaintView extends EntityView { } public TextPaintView(Context context, TextPaintView textPaintView, Point position) { - this(context, position, textPaintView.baseFontSize, textPaintView.getText(), textPaintView.getSwatch(), textPaintView.stroke); + this(context, position, textPaintView.baseFontSize, textPaintView.getText(), textPaintView.getSwatch(), textPaintView.currentType); setRotation(textPaintView.getRotation()); setScale(textPaintView.getScale()); } @@ -119,6 +120,7 @@ public class TextPaintView extends EntityView { editText.setClickable(true); editText.requestFocus(); editText.setSelection(editText.getText().length()); + AndroidUtilities.runOnUIThread(() -> AndroidUtilities.showKeyboard(editText), 300); } public void endEditing() { @@ -132,25 +134,40 @@ public class TextPaintView extends EntityView { return swatch; } + public int getTextSize() { + return (int) editText.getTextSize(); + } + public void setSwatch(Swatch swatch) { this.swatch = swatch; updateColor(); } - public void setStroke(boolean stroke) { - this.stroke = stroke; + public void setType(int type) { + currentType = type; updateColor(); } + public int getType() { + return currentType; + } + private void updateColor() { - if (stroke) { + if (currentType == 0) { editText.setTextColor(0xffffffff); editText.setStrokeColor(swatch.color); + editText.setFrameColor(0); editText.setShadowLayer(0, 0, 0, 0); - } else { + } else if (currentType == 1) { editText.setTextColor(swatch.color); - editText.setStrokeColor(Color.TRANSPARENT); - editText.setShadowLayer(8, 0, 2, 0xaa000000); + editText.setStrokeColor(0); + editText.setFrameColor(0); + editText.setShadowLayer(5, 0, 1, 0x66000000); + } else if (currentType == 2) { + editText.setTextColor(0xff000000); + editText.setStrokeColor(0); + editText.setFrameColor(swatch.color); + editText.setShadowLayer(0, 0, 0, 0); } } @@ -158,8 +175,8 @@ public class TextPaintView extends EntityView { protected Rect getSelectionBounds() { ViewGroup parentView = (ViewGroup) getParent(); float scale = parentView.getScaleX(); - float width = getWidth() * (getScale()) + AndroidUtilities.dp(46) / scale; - float height = getHeight() * (getScale()) + AndroidUtilities.dp(20) / scale; + float width = (getMeasuredWidth() - (currentType == 2 ? AndroidUtilities.dp(24) : 0)) * getScale() + AndroidUtilities.dp(46) / scale; + float height = getMeasuredHeight() * getScale() + AndroidUtilities.dp(20) / scale; return new Rect((position.x - width / 2.0f) * scale, (position.y - height / 2.0f) * scale, width * scale, height * scale); } @@ -179,8 +196,8 @@ public class TextPaintView extends EntityView { float radius = AndroidUtilities.dp(19.5f); float inset = radius + thickness; - float width = getWidth() - inset * 2; - float height = getHeight() - inset * 2; + float width = getMeasuredWidth() - inset * 2; + float height = getMeasuredHeight() - inset * 2; float middle = inset + height / 2.0f; @@ -208,8 +225,8 @@ public class TextPaintView extends EntityView { float inset = radius + thickness + AndroidUtilities.dp(15); - float width = getWidth() - inset * 2; - float height = getHeight() - inset * 2; + float width = getMeasuredWidth() - inset * 2; + float height = getMeasuredHeight() - inset * 2; int xCount = (int) (Math.floor(width / (space + length))); float xGap = (float) Math.ceil(((width - xCount * (space + length)) + space) / 2.0f); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/PaintingOverlay.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/PaintingOverlay.java new file mode 100644 index 000000000..ef48e17e4 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/PaintingOverlay.java @@ -0,0 +1,240 @@ +package org.telegram.ui.Components; + +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.Typeface; +import android.graphics.drawable.BitmapDrawable; +import android.graphics.drawable.Drawable; +import android.os.Build; +import android.text.Layout; +import android.util.TypedValue; +import android.view.Gravity; +import android.view.MotionEvent; +import android.view.inputmethod.EditorInfo; +import android.widget.FrameLayout; + +import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.FileLoader; +import org.telegram.messenger.ImageLocation; +import org.telegram.messenger.ImageReceiver; +import org.telegram.messenger.VideoEditedInfo; +import org.telegram.tgnet.TLRPC; +import org.telegram.ui.Components.Paint.Views.EditTextOutline; + +import java.util.ArrayList; + +public class PaintingOverlay extends FrameLayout { + + private Bitmap paintBitmap; + private ArrayList mediaEntities; + private boolean ignoreLayout; + private Drawable backgroundDrawable; + + public PaintingOverlay(Context context) { + super(context); + } + + public void setData(String paintPath, ArrayList entities, boolean isVideo, boolean startAfterSet) { + if (paintPath != null) { + paintBitmap = BitmapFactory.decodeFile(paintPath); + setBackground(backgroundDrawable = new BitmapDrawable(paintBitmap)); + } else { + paintBitmap = null; + setBackground(backgroundDrawable = null); + } + setEntities(entities, isVideo, startAfterSet); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + ignoreLayout = true; + setMeasuredDimension(MeasureSpec.getSize(widthMeasureSpec), MeasureSpec.getSize(heightMeasureSpec)); + if (mediaEntities != null) { + int width = getMeasuredWidth(); + int height = getMeasuredHeight(); + for (int a = 0, N = mediaEntities.size(); a < N; a++) { + VideoEditedInfo.MediaEntity entity = mediaEntities.get(a); + if (entity.view == null) { + continue; + } + if (entity.view instanceof EditTextOutline) { + entity.view.measure(MeasureSpec.makeMeasureSpec(entity.viewWidth, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); + float sc = entity.textViewWidth * width / entity.viewWidth; + entity.view.setScaleX(entity.scale * sc); + entity.view.setScaleY(entity.scale * sc); + } else { + entity.view.measure(MeasureSpec.makeMeasureSpec((int) (width * entity.width), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec((int) (height * entity.height), MeasureSpec.EXACTLY)); + } + } + } + ignoreLayout = false; + } + + @Override + public boolean dispatchTouchEvent(MotionEvent ev) { + return false; + } + + @Override + public boolean onInterceptTouchEvent(MotionEvent ev) { + return false; + } + + @Override + public boolean onTouchEvent(MotionEvent event) { + return false; + } + + @Override + public void requestLayout() { + if (ignoreLayout) { + return; + } + super.requestLayout(); + } + + @Override + protected void onLayout(boolean changed, int left, int top, int right, int bottom) { + if (mediaEntities != null) { + int width = getMeasuredWidth(); + int height = getMeasuredHeight(); + for (int a = 0, N = mediaEntities.size(); a < N; a++) { + VideoEditedInfo.MediaEntity entity = mediaEntities.get(a); + if (entity.view == null) { + continue; + } + int x; + int y; + if (entity.view instanceof EditTextOutline) { + x = (int) (width * entity.textViewX) - entity.view.getMeasuredWidth() / 2; + y = (int) (height * entity.textViewY) - entity.view.getMeasuredHeight() / 2; + } else { + x = (int) (width * entity.x); + y = (int) (height * entity.y); + } + entity.view.layout(x, y, x + entity.view.getMeasuredWidth(), y + entity.view.getMeasuredHeight()); + } + } + } + + public void showAll() { + int count = getChildCount(); + for (int a = 0; a < count; a++) { + getChildAt(a).setVisibility(VISIBLE); + } + setBackground(backgroundDrawable); + } + + public void hideEntities() { + int count = getChildCount(); + for (int a = 0; a < count; a++) { + getChildAt(a).setVisibility(INVISIBLE); + } + } + + public void hideBitmap() { + setBackground(null); + } + + public void setEntities(ArrayList entities, boolean isVideo, boolean startAfterSet) { + mediaEntities = entities; + removeAllViews(); + if (entities != null && !entities.isEmpty()) { + for (int a = 0, N = mediaEntities.size(); a < N; a++) { + VideoEditedInfo.MediaEntity entity = mediaEntities.get(a); + if (entity.type == 0) { + BackupImageView imageView = new BackupImageView(getContext()); + imageView.setAspectFit(true); + ImageReceiver imageReceiver = imageView.getImageReceiver(); + if (isVideo) { + imageReceiver.setAllowDecodeSingleFrame(true); + imageReceiver.setAllowStartLottieAnimation(false); + if (startAfterSet) { + imageReceiver.setDelegate((imageReceiver1, set, thumb, memCache) -> { + if (set && !thumb) { + RLottieDrawable drawable = imageReceiver1.getLottieAnimation(); + if (drawable != null) { + drawable.start(); + } + } + }); + } + } + TLRPC.PhotoSize thumb = FileLoader.getClosestPhotoSizeWithSize(entity.document.thumbs, 90); + imageReceiver.setImage(ImageLocation.getForDocument(entity.document), null, ImageLocation.getForDocument(thumb, entity.document), null, "webp", entity.parentObject, 1); + if ((entity.subType & 2) != 0) { + imageView.setScaleX(-1); + } + entity.view = imageView; + } else if (entity.type == 1) { + EditTextOutline editText = new EditTextOutline(getContext()) { + @Override + public boolean dispatchTouchEvent(MotionEvent event) { + return false; + } + + @Override + public boolean onTouchEvent(MotionEvent event) { + return false; + } + }; + editText.setBackgroundColor(Color.TRANSPARENT); + editText.setPadding(AndroidUtilities.dp(7), AndroidUtilities.dp(7), AndroidUtilities.dp(7), AndroidUtilities.dp(7)); + editText.setTextSize(TypedValue.COMPLEX_UNIT_PX, entity.fontSize); + editText.setText(entity.text); + editText.setTypeface(null, Typeface.BOLD); + editText.setGravity(Gravity.CENTER); + editText.setHorizontallyScrolling(false); + editText.setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI); + editText.setFocusableInTouchMode(true); + editText.setEnabled(false); + editText.setInputType(editText.getInputType() | EditorInfo.TYPE_TEXT_FLAG_CAP_SENTENCES); + if (Build.VERSION.SDK_INT >= 23) { + editText.setBreakStrategy(Layout.BREAK_STRATEGY_SIMPLE); + } + if ((entity.subType & 1) != 0) { + editText.setTextColor(0xffffffff); + editText.setStrokeColor(entity.color); + editText.setFrameColor(0); + editText.setShadowLayer(0, 0, 0, 0); + } else if ((entity.subType & 4) != 0) { + editText.setTextColor(0xff000000); + editText.setStrokeColor(0); + editText.setFrameColor(entity.color); + editText.setShadowLayer(0, 0, 0, 0); + } else { + editText.setTextColor(entity.color); + editText.setStrokeColor(0); + editText.setFrameColor(0); + editText.setShadowLayer(5, 0, 1, 0x66000000); + } + entity.view = editText; + } + addView(entity.view); + entity.view.setRotation((float) (-entity.rotation / Math.PI * 180)); + } + } + } + + public void setBitmap(Bitmap bitmap) { + setBackground(backgroundDrawable = new BitmapDrawable(paintBitmap = bitmap)); + } + + public Bitmap getBitmap() { + return paintBitmap; + } + + public Bitmap getThumb() { + float w = getMeasuredWidth(); + float h = getMeasuredHeight(); + float scale = Math.max(w / AndroidUtilities.dp(120), h / AndroidUtilities.dp(120)); + Bitmap bitmap = Bitmap.createBitmap((int) (w / scale), (int) (h / scale), Bitmap.Config.ARGB_8888); + Canvas canvas = new Canvas(bitmap); + canvas.scale(1.0f / scale, 1.0f / scale); + draw(canvas); + return bitmap; + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/PhotoCropView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/PhotoCropView.java index 0ecab1ebd..71f52deb0 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/PhotoCropView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/PhotoCropView.java @@ -15,6 +15,7 @@ import android.view.Gravity; import android.widget.FrameLayout; import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.MediaController; import org.telegram.ui.Components.Crop.CropRotationWheel; import org.telegram.ui.Components.Crop.CropView; @@ -90,10 +91,10 @@ public class PhotoCropView extends FrameLayout { cropView.rotate90Degrees(); } - public void setBitmap(Bitmap bitmap, int rotation, boolean freeform, boolean update) { + public void setBitmap(Bitmap bitmap, int rotation, boolean freeform, boolean update, PaintingOverlay paintingOverlay) { requestLayout(); - cropView.setBitmap(bitmap, rotation, freeform, update); + cropView.setBitmap(bitmap, rotation, freeform, update, paintingOverlay); if (showOnSetBitmap) { showOnSetBitmap = false; @@ -164,11 +165,8 @@ public class PhotoCropView extends FrameLayout { return cropView.getCropHeight(); } - public Bitmap getBitmap() { - if (cropView != null) { - return cropView.getResult(); - } - return null; + public Bitmap getBitmap(MediaController.MediaEditState editState) { + return cropView.getResult(editState); } public void setDelegate(PhotoCropViewDelegate delegate) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/PhotoFilterBlurControl.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/PhotoFilterBlurControl.java index c7c22fc24..3c834fc0d 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/PhotoFilterBlurControl.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/PhotoFilterBlurControl.java @@ -200,12 +200,13 @@ public class PhotoFilterBlurControl extends FrameLayout { float locationX = event.getX(); float locationY = event.getY(); Point actualCenterPoint = getActualCenterPoint(); - Point delta = new Point(locationX - actualCenterPoint.x, locationY - actualCenterPoint.y); - float radialDistance = (float) Math.sqrt(delta.x * delta.x + delta.y * delta.y); - float shorterSide = (actualAreaSize.width > actualAreaSize.height) ? actualAreaSize.height : actualAreaSize.width; + float dx = locationX - actualCenterPoint.x; + float dy = locationY - actualCenterPoint.y; + float radialDistance = (float) Math.sqrt(dx * dx + dy * dy); + float shorterSide = Math.min(actualAreaSize.width, actualAreaSize.height); float innerRadius = shorterSide * falloff; float outerRadius = shorterSide * size; - float distance = (float) Math.abs(delta.x * Math.cos(degreesToRadians(angle) + Math.PI / 2.0f) + delta.y * Math.sin(degreesToRadians(angle) + Math.PI / 2.0f)); + float distance = (float) Math.abs(dx * Math.cos(degreesToRadians(angle) + Math.PI / 2.0f) + dy * Math.sin(degreesToRadians(angle) + Math.PI / 2.0f)); switch (state) { case GestureStateBegan: { @@ -255,7 +256,7 @@ public class PhotoFilterBlurControl extends FrameLayout { case BlurViewActiveControlCenter: { float translationX = locationX - pointerStartX; float translationY = locationY - pointerStartY; - Rect actualArea = new Rect((getWidth() - actualAreaSize.width) / 2, (getHeight() - actualAreaSize.height) / 2, actualAreaSize.width, actualAreaSize.height); + Rect actualArea = new Rect((getWidth() - actualAreaSize.width) / 2, (Build.VERSION.SDK_INT >= 21 ? AndroidUtilities.statusBarHeight : 0) + (getHeight() - actualAreaSize.height) / 2, actualAreaSize.width, actualAreaSize.height); Point newPoint = new Point(Math.max(actualArea.x, Math.min(actualArea.x + actualArea.width, startCenterPoint.x + translationX)), Math.max(actualArea.y, Math.min(actualArea.y + actualArea.height, startCenterPoint.y + translationY))); centerPoint = new Point((newPoint.x - actualArea.x) / actualAreaSize.width, ((newPoint.y - actualArea.y) + (actualAreaSize.width - actualAreaSize.height) / 2) / actualAreaSize.width); } @@ -282,8 +283,9 @@ public class PhotoFilterBlurControl extends FrameLayout { boolean right = locationX > actualCenterPoint.x; boolean bottom = locationY > actualCenterPoint.y; + final boolean b = Math.abs(translationY) > Math.abs(translationX); if (!right && !bottom) { - if (Math.abs(translationY) > Math.abs(translationX)) { + if (b) { if (translationY < 0) { clockwise = true; } @@ -293,7 +295,7 @@ public class PhotoFilterBlurControl extends FrameLayout { } } } else if (right && !bottom) { - if (Math.abs(translationY) > Math.abs(translationX)) { + if (b) { if (translationY > 0) { clockwise = true; } @@ -303,7 +305,7 @@ public class PhotoFilterBlurControl extends FrameLayout { } } } else if (right && bottom) { - if (Math.abs(translationY) > Math.abs(translationX)) { + if (b) { if (translationY > 0) { clockwise = true; } @@ -313,7 +315,7 @@ public class PhotoFilterBlurControl extends FrameLayout { } } } else { - if (Math.abs(translationY) > Math.abs(translationX)) { + if (b) { if (translationY < 0) { clockwise = true; } @@ -340,7 +342,7 @@ public class PhotoFilterBlurControl extends FrameLayout { case BlurViewActiveControlCenter: { float translationX = locationX - pointerStartX; float translationY = locationY - pointerStartY; - Rect actualArea = new Rect((getWidth() - actualAreaSize.width) / 2, (getHeight() - actualAreaSize.height) / 2, actualAreaSize.width, actualAreaSize.height); + Rect actualArea = new Rect((getWidth() - actualAreaSize.width) / 2, (Build.VERSION.SDK_INT >= 21 ? AndroidUtilities.statusBarHeight : 0) + (getHeight() - actualAreaSize.height) / 2, actualAreaSize.width, actualAreaSize.height); Point newPoint = new Point(Math.max(actualArea.x, Math.min(actualArea.x + actualArea.width, startCenterPoint.x + translationX)), Math.max(actualArea.y, Math.min(actualArea.y + actualArea.height, startCenterPoint.y + translationY))); centerPoint = new Point((newPoint.x - actualArea.x) / actualAreaSize.width, ((newPoint.y - actualArea.y) + (actualAreaSize.width - actualAreaSize.height) / 2) / actualAreaSize.width); } @@ -455,19 +457,23 @@ public class PhotoFilterBlurControl extends FrameLayout { float thickness = AndroidUtilities.dp(1.5f); for (int i = 0; i < 30; i++) { canvas.drawRect(i * (length + space), -innerRadius, i * (length + space) + length, thickness - innerRadius, paint); - canvas.drawRect(-i * (length + space) - space - length, -innerRadius, -i * (length + space) - space, thickness - innerRadius, paint); + float left = -i * (length + space) - space - length; + float right = -i * (length + space) - space; + canvas.drawRect(left, -innerRadius, right, thickness - innerRadius, paint); canvas.drawRect(i * (length + space), innerRadius, length + i * (length + space), thickness + innerRadius, paint); - canvas.drawRect(-i * (length + space) - space - length, innerRadius, -i * (length + space) - space, thickness + innerRadius, paint); + canvas.drawRect(left, innerRadius, right, thickness + innerRadius, paint); } length = AndroidUtilities.dp(6.0f); for (int i = 0; i < 64; i++) { canvas.drawRect(i * (length + space), -outerRadius, length + i * (length + space), thickness - outerRadius, paint); - canvas.drawRect(-i * (length + space) - space - length, -outerRadius, -i * (length + space) - space, thickness - outerRadius, paint); + float left = -i * (length + space) - space - length; + float right = -i * (length + space) - space; + canvas.drawRect(left, -outerRadius, right, thickness - outerRadius, paint); canvas.drawRect(i * (length + space), outerRadius, length + i * (length + space), thickness + outerRadius, paint); - canvas.drawRect(-i * (length + space) - space - length, outerRadius, -i * (length + space) - space, thickness + outerRadius, paint); + canvas.drawRect(left, outerRadius, right, thickness + outerRadius, paint); } } else if (type == 1) { float radSpace = 6.15f; @@ -492,10 +498,10 @@ public class PhotoFilterBlurControl extends FrameLayout { } private float getActualInnerRadius() { - return (actualAreaSize.width > actualAreaSize.height ? actualAreaSize.height : actualAreaSize.width) * falloff; + return (Math.min(actualAreaSize.width, actualAreaSize.height)) * falloff; } private float getActualOuterRadius() { - return (actualAreaSize.width > actualAreaSize.height ? actualAreaSize.height : actualAreaSize.width) * size; + return (Math.min(actualAreaSize.width, actualAreaSize.height)) * size; } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/PhotoFilterView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/PhotoFilterView.java index 6b49f1686..555708eb1 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/PhotoFilterView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/PhotoFilterView.java @@ -11,15 +11,12 @@ package org.telegram.ui.Components; import android.annotation.SuppressLint; import android.content.Context; import android.graphics.Bitmap; -import android.graphics.Matrix; +import android.graphics.Canvas; import android.graphics.PorterDuff; import android.graphics.PorterDuffColorFilter; import android.graphics.SurfaceTexture; import android.graphics.drawable.Drawable; -import android.opengl.GLES20; -import android.opengl.GLUtils; import android.os.Build; -import android.os.Looper; import android.util.TypedValue; import android.view.Gravity; import android.view.MotionEvent; @@ -32,55 +29,42 @@ import android.widget.LinearLayout; import android.widget.TextView; import org.telegram.messenger.AndroidUtilities; -import org.telegram.messenger.BuildVars; import org.telegram.messenger.LocaleController; import org.telegram.messenger.MediaController; -import org.telegram.messenger.DispatchQueue; -import org.telegram.messenger.FileLog; import org.telegram.messenger.R; -import org.telegram.messenger.Utilities; import org.telegram.ui.ActionBar.Theme; import org.telegram.ui.Cells.PhotoEditRadioCell; import org.telegram.ui.Cells.PhotoEditToolCell; import java.nio.ByteBuffer; import java.nio.ByteOrder; -import java.nio.FloatBuffer; import java.util.ArrayList; -import java.util.concurrent.CountDownLatch; - -import javax.microedition.khronos.egl.EGL10; -import javax.microedition.khronos.egl.EGLConfig; -import javax.microedition.khronos.egl.EGLContext; -import javax.microedition.khronos.egl.EGLDisplay; -import javax.microedition.khronos.egl.EGLSurface; -import javax.microedition.khronos.opengles.GL; -import javax.microedition.khronos.opengles.GL10; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; @SuppressLint("NewApi") -public class PhotoFilterView extends FrameLayout { +public class PhotoFilterView extends FrameLayout implements FilterShaders.FilterShadersDelegate { private final static int curveGranularity = 100; private final static int curveDataStep = 2; private boolean showOriginal; - private int enhanceTool = 0; - private int exposureTool = 1; - private int contrastTool = 2; - private int saturationTool = 3; - private int warmthTool = 4; - private int fadeTool = 5; - private int highlightsTool = 6; - private int shadowsTool = 7; - private int vignetteTool = 8; - private int grainTool = 9; - private int sharpenTool = 10; - private int tintShadowsTool = 11; - private int tintHighlightsTool = 12; + private int enhanceTool; + private int exposureTool; + private int contrastTool; + private int saturationTool; + private int warmthTool; + private int fadeTool; + private int highlightsTool; + private int shadowsTool; + private int vignetteTool; + private int grainTool; + private int sharpenTool; + private int tintShadowsTool; + private int tintHighlightsTool; + private int rowsCount; private float enhanceValue; //0 100 private float exposureValue; //-100 100 @@ -108,7 +92,8 @@ public class PhotoFilterView extends FrameLayout { private TextView doneTextView; private TextView cancelTextView; private TextureView textureView; - private EGLThread eglThread; + private boolean ownsTextureView; + private FilterGLThread eglThread; private RecyclerListView recyclerListView; private FrameLayout blurLayout; private PhotoFilterBlurControl blurControl; @@ -118,6 +103,7 @@ public class PhotoFilterView extends FrameLayout { private TextView blurLinearButton; private FrameLayout curveLayout; private RadioButton[] curveRadioButton = new RadioButton[4]; + private PaintingOverlay paintingOverlay; private int selectedTool; @@ -277,1370 +263,31 @@ public class PhotoFilterView extends FrameLayout { } } - public class EGLThread extends DispatchQueue { - - private final int EGL_CONTEXT_CLIENT_VERSION = 0x3098; - private final int EGL_OPENGL_ES2_BIT = 4; - private SurfaceTexture surfaceTexture; - private EGL10 egl10; - private EGLDisplay eglDisplay; - private EGLConfig eglConfig; - private EGLContext eglContext; - private EGLSurface eglSurface; - private GL gl; - private boolean initied; - private boolean needUpdateBlurTexture = true; - - private Bitmap currentBitmap; - - private int rgbToHsvShaderProgram; - private int rgbToHsvPositionHandle; - private int rgbToHsvInputTexCoordHandle; - private int rgbToHsvSourceImageHandle; - - private int enhanceShaderProgram; - private int enhancePositionHandle; - private int enhanceInputTexCoordHandle; - private int enhanceSourceImageHandle; - private int enhanceIntensityHandle; - private int enhanceInputImageTexture2Handle; - - private int toolsShaderProgram; - private int positionHandle; - private int inputTexCoordHandle; //"varying vec2 texCoord;" + - private int sourceImageHandle; //"uniform sampler2D sourceImage;" + - private int shadowsHandle; //"uniform float shadows;" + - private int highlightsHandle; //"uniform float highlights;" + - private int exposureHandle; //"uniform float exposure;" + - private int contrastHandle; //"uniform float contrast;" + - private int saturationHandle; //"uniform float saturation;" + - private int warmthHandle; //"uniform float warmth;" + - private int vignetteHandle; //"uniform float vignette;" + - private int grainHandle; //"uniform float grain;" + - private int widthHandle; //"uniform float width;" + - private int heightHandle; //"uniform float height;" + - - private int curvesImageHandle; //"uniform sampler2D curvesImage;" + - private int skipToneHandle; //"uniform lowp float skipTone;" + - private int fadeAmountHandle; //"uniform lowp float fadeAmount;" + - private int shadowsTintIntensityHandle; //"uniform lowp float shadowsTintIntensity;" + - private int highlightsTintIntensityHandle; //"uniform lowp float highlightsTintIntensity;" + - private int shadowsTintColorHandle; //"uniform lowp vec3 shadowsTintColor;" + - private int highlightsTintColorHandle; //"uniform lowp vec3 highlightsTintColor;" + - - private int blurShaderProgram; - private int blurPositionHandle; - private int blurInputTexCoordHandle; - private int blurSourceImageHandle; - private int blurWidthHandle; - private int blurHeightHandle; - - private int linearBlurShaderProgram; - private int linearBlurPositionHandle; - private int linearBlurInputTexCoordHandle; - private int linearBlurSourceImageHandle; - private int linearBlurSourceImage2Handle; - private int linearBlurExcludeSizeHandle; - private int linearBlurExcludePointHandle; - private int linearBlurExcludeBlurSizeHandle; - private int linearBlurAngleHandle; - private int linearBlurAspectRatioHandle; - - private int radialBlurShaderProgram; - private int radialBlurPositionHandle; - private int radialBlurInputTexCoordHandle; - private int radialBlurSourceImageHandle; - private int radialBlurSourceImage2Handle; - private int radialBlurExcludeSizeHandle; - private int radialBlurExcludePointHandle; - private int radialBlurExcludeBlurSizeHandle; - private int radialBlurAspectRatioHandle; - - private int sharpenShaderProgram; - private int sharpenHandle; - private int sharpenWidthHandle; - private int sharpenHeightHandle; - private int sharpenPositionHandle; - private int sharpenInputTexCoordHandle; - private int sharpenSourceImageHandle; - - private int simpleShaderProgram; - private int simplePositionHandle; - private int simpleInputTexCoordHandle; - private int simpleSourceImageHandle; - - private int[] enhanceTextures = new int[2]; - private int[] renderTexture = new int[3]; - private int[] renderFrameBuffer = new int[3]; - private int[] curveTextures = new int[1]; - private boolean hsvGenerated; - private int renderBufferWidth; - private int renderBufferHeight; - private volatile int surfaceWidth; - private volatile int surfaceHeight; - - private FloatBuffer vertexBuffer; - private FloatBuffer textureBuffer; - private FloatBuffer vertexInvertBuffer; - - private boolean blured; - - private final static int PGPhotoEnhanceHistogramBins = 256; - private final static int PGPhotoEnhanceSegments = 4; - - private long lastRenderCallTime; - - private static final String radialBlurFragmentShaderCode = - "varying highp vec2 texCoord;" + - "uniform sampler2D sourceImage;" + - "uniform sampler2D inputImageTexture2;" + - "uniform lowp float excludeSize;" + - "uniform lowp vec2 excludePoint;" + - "uniform lowp float excludeBlurSize;" + - "uniform highp float aspectRatio;" + - "void main() {" + - "lowp vec4 sharpImageColor = texture2D(sourceImage, texCoord);" + - "lowp vec4 blurredImageColor = texture2D(inputImageTexture2, texCoord);" + - "highp vec2 texCoordToUse = vec2(texCoord.x, (texCoord.y * aspectRatio + 0.5 - 0.5 * aspectRatio));" + - "highp float distanceFromCenter = distance(excludePoint, texCoordToUse);" + - "gl_FragColor = mix(sharpImageColor, blurredImageColor, smoothstep(excludeSize - excludeBlurSize, excludeSize, distanceFromCenter));" + - "}"; - - private static final String linearBlurFragmentShaderCode = - "varying highp vec2 texCoord;" + - "uniform sampler2D sourceImage;" + - "uniform sampler2D inputImageTexture2;" + - "uniform lowp float excludeSize;" + - "uniform lowp vec2 excludePoint;" + - "uniform lowp float excludeBlurSize;" + - "uniform highp float angle;" + - "uniform highp float aspectRatio;" + - "void main() {" + - "lowp vec4 sharpImageColor = texture2D(sourceImage, texCoord);" + - "lowp vec4 blurredImageColor = texture2D(inputImageTexture2, texCoord);" + - "highp vec2 texCoordToUse = vec2(texCoord.x, (texCoord.y * aspectRatio + 0.5 - 0.5 * aspectRatio));" + - "highp float distanceFromCenter = abs((texCoordToUse.x - excludePoint.x) * aspectRatio * cos(angle) + (texCoordToUse.y - excludePoint.y) * sin(angle));" + - "gl_FragColor = mix(sharpImageColor, blurredImageColor, smoothstep(excludeSize - excludeBlurSize, excludeSize, distanceFromCenter));" + - "}"; - - private static final String blurVertexShaderCode = - "attribute vec4 position;" + - "attribute vec4 inputTexCoord;" + - "uniform highp float texelWidthOffset;" + - "uniform highp float texelHeightOffset;" + - "varying vec2 blurCoordinates[9];" + - "void main() {" + - "gl_Position = position;" + - "vec2 singleStepOffset = vec2(texelWidthOffset, texelHeightOffset);" + - "blurCoordinates[0] = inputTexCoord.xy;" + - "blurCoordinates[1] = inputTexCoord.xy + singleStepOffset * 1.458430;" + - "blurCoordinates[2] = inputTexCoord.xy - singleStepOffset * 1.458430;" + - "blurCoordinates[3] = inputTexCoord.xy + singleStepOffset * 3.403985;" + - "blurCoordinates[4] = inputTexCoord.xy - singleStepOffset * 3.403985;" + - "blurCoordinates[5] = inputTexCoord.xy + singleStepOffset * 5.351806;" + - "blurCoordinates[6] = inputTexCoord.xy - singleStepOffset * 5.351806;" + - "blurCoordinates[7] = inputTexCoord.xy + singleStepOffset * 7.302940;" + - "blurCoordinates[8] = inputTexCoord.xy - singleStepOffset * 7.302940;" + - "}"; - - private static final String blurFragmentShaderCode = - "uniform sampler2D sourceImage;" + - "varying highp vec2 blurCoordinates[9];" + - "void main() {" + - "lowp vec4 sum = vec4(0.0);" + - "sum += texture2D(sourceImage, blurCoordinates[0]) * 0.133571;" + - "sum += texture2D(sourceImage, blurCoordinates[1]) * 0.233308;" + - "sum += texture2D(sourceImage, blurCoordinates[2]) * 0.233308;" + - "sum += texture2D(sourceImage, blurCoordinates[3]) * 0.135928;" + - "sum += texture2D(sourceImage, blurCoordinates[4]) * 0.135928;" + - "sum += texture2D(sourceImage, blurCoordinates[5]) * 0.051383;" + - "sum += texture2D(sourceImage, blurCoordinates[6]) * 0.051383;" + - "sum += texture2D(sourceImage, blurCoordinates[7]) * 0.012595;" + - "sum += texture2D(sourceImage, blurCoordinates[8]) * 0.012595;" + - "gl_FragColor = sum;" + - "}"; - - private static final String rgbToHsvFragmentShaderCode = - "precision highp float;" + - "varying vec2 texCoord;" + - "uniform sampler2D sourceImage;" + - "vec3 rgb_to_hsv(vec3 c) {" + - "vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);" + - "vec4 p = c.g < c.b ? vec4(c.bg, K.wz) : vec4(c.gb, K.xy);" + - "vec4 q = c.r < p.x ? vec4(p.xyw, c.r) : vec4(c.r, p.yzx);" + - "float d = q.x - min(q.w, q.y);" + - "float e = 1.0e-10;" + - "return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);" + - "}" + - "void main() {" + - "vec4 texel = texture2D(sourceImage, texCoord);" + - "gl_FragColor = vec4(rgb_to_hsv(texel.rgb), texel.a);" + - "}"; - - private static final String enhanceFragmentShaderCode = - "precision highp float;" + - "varying vec2 texCoord;" + - "uniform sampler2D sourceImage;" + - "uniform sampler2D inputImageTexture2;" + - "uniform float intensity;" + - "float enhance(float value) {" + - "const vec2 offset = vec2(0.001953125, 0.03125);" + - "value = value + offset.x;" + - "vec2 coord = (clamp(texCoord, 0.125, 1.0 - 0.125001) - 0.125) * 4.0;" + - "vec2 frac = fract(coord);" + - "coord = floor(coord);" + - "float p00 = float(coord.y * 4.0 + coord.x) * 0.0625 + offset.y;" + - "float p01 = float(coord.y * 4.0 + coord.x + 1.0) * 0.0625 + offset.y;" + - "float p10 = float((coord.y + 1.0) * 4.0 + coord.x) * 0.0625 + offset.y;" + - "float p11 = float((coord.y + 1.0) * 4.0 + coord.x + 1.0) * 0.0625 + offset.y;" + - "vec3 c00 = texture2D(inputImageTexture2, vec2(value, p00)).rgb;" + - "vec3 c01 = texture2D(inputImageTexture2, vec2(value, p01)).rgb;" + - "vec3 c10 = texture2D(inputImageTexture2, vec2(value, p10)).rgb;" + - "vec3 c11 = texture2D(inputImageTexture2, vec2(value, p11)).rgb;" + - "float c1 = ((c00.r - c00.g) / (c00.b - c00.g));" + - "float c2 = ((c01.r - c01.g) / (c01.b - c01.g));" + - "float c3 = ((c10.r - c10.g) / (c10.b - c10.g));" + - "float c4 = ((c11.r - c11.g) / (c11.b - c11.g));" + - "float c1_2 = mix(c1, c2, frac.x);" + - "float c3_4 = mix(c3, c4, frac.x);" + - "return mix(c1_2, c3_4, frac.y);" + - "}" + - "vec3 hsv_to_rgb(vec3 c) {" + - "vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);" + - "vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);" + - "return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);" + - "}" + - "void main() {" + - "vec4 texel = texture2D(sourceImage, texCoord);" + - "vec4 hsv = texel;" + - "hsv.y = min(1.0, hsv.y * 1.2);" + - "hsv.z = min(1.0, enhance(hsv.z) * 1.1);" + - "gl_FragColor = vec4(hsv_to_rgb(mix(texel.xyz, hsv.xyz, intensity)), texel.w);" + - "}"; - - private static final String simpleVertexShaderCode = - "attribute vec4 position;" + - "attribute vec2 inputTexCoord;" + - "varying vec2 texCoord;" + - "void main() {" + - "gl_Position = position;" + - "texCoord = inputTexCoord;" + - "}"; - - private static final String simpleFragmentShaderCode = - "varying highp vec2 texCoord;" + - "uniform sampler2D sourceImage;" + - "void main() {" + - "gl_FragColor = texture2D(sourceImage, texCoord);" + - "}"; - - private static final String sharpenVertexShaderCode = - "attribute vec4 position;" + - "attribute vec2 inputTexCoord;" + - "varying vec2 texCoord;" + - - "uniform highp float inputWidth;" + - "uniform highp float inputHeight;" + - "varying vec2 leftTexCoord;" + - "varying vec2 rightTexCoord;" + - "varying vec2 topTexCoord;" + - "varying vec2 bottomTexCoord;" + - - "void main() {" + - "gl_Position = position;" + - "texCoord = inputTexCoord;" + - "highp vec2 widthStep = vec2(1.0 / inputWidth, 0.0);" + - "highp vec2 heightStep = vec2(0.0, 1.0 / inputHeight);" + - "leftTexCoord = inputTexCoord - widthStep;" + - "rightTexCoord = inputTexCoord + widthStep;" + - "topTexCoord = inputTexCoord + heightStep;" + - "bottomTexCoord = inputTexCoord - heightStep;" + - "}"; - - private static final String sharpenFragmentShaderCode = - "precision highp float;" + - "varying vec2 texCoord;" + - "varying vec2 leftTexCoord;" + - "varying vec2 rightTexCoord;" + - "varying vec2 topTexCoord;" + - "varying vec2 bottomTexCoord;" + - "uniform sampler2D sourceImage;" + - "uniform float sharpen;" + - - "void main() {" + - "vec4 result = texture2D(sourceImage, texCoord);" + - - "vec3 leftTextureColor = texture2D(sourceImage, leftTexCoord).rgb;" + - "vec3 rightTextureColor = texture2D(sourceImage, rightTexCoord).rgb;" + - "vec3 topTextureColor = texture2D(sourceImage, topTexCoord).rgb;" + - "vec3 bottomTextureColor = texture2D(sourceImage, bottomTexCoord).rgb;" + - "result.rgb = result.rgb * (1.0 + 4.0 * sharpen) - (leftTextureColor + rightTextureColor + topTextureColor + bottomTextureColor) * sharpen;" + - - "gl_FragColor = result;" + - "}"; - - private static final String toolsFragmentShaderCode = - "varying highp vec2 texCoord;" + - "uniform sampler2D sourceImage;" + - "uniform highp float width;" + - "uniform highp float height;" + - "uniform sampler2D curvesImage;" + - "uniform lowp float skipTone;" + - "uniform lowp float shadows;" + - "const mediump vec3 hsLuminanceWeighting = vec3(0.3, 0.3, 0.3);" + - "uniform lowp float highlights;" + - "uniform lowp float contrast;" + - "uniform lowp float fadeAmount;" + - "const mediump vec3 satLuminanceWeighting = vec3(0.2126, 0.7152, 0.0722);" + - "uniform lowp float saturation;" + - "uniform lowp float shadowsTintIntensity;" + - "uniform lowp float highlightsTintIntensity;" + - "uniform lowp vec3 shadowsTintColor;" + - "uniform lowp vec3 highlightsTintColor;" + - "uniform lowp float exposure;" + - "uniform lowp float warmth;" + - "uniform lowp float grain;" + - "const lowp float permTexUnit = 1.0 / 256.0;" + - "const lowp float permTexUnitHalf = 0.5 / 256.0;" + - "const lowp float grainsize = 2.3;" + - "uniform lowp float vignette;" + - "highp float getLuma(highp vec3 rgbP) {" + - "return (0.299 * rgbP.r) + (0.587 * rgbP.g) + (0.114 * rgbP.b);" + - "}" + - "lowp vec3 rgbToHsv(lowp vec3 c) {" + - "highp vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);" + - "highp vec4 p = c.g < c.b ? vec4(c.bg, K.wz) : vec4(c.gb, K.xy);" + - "highp vec4 q = c.r < p.x ? vec4(p.xyw, c.r) : vec4(c.r, p.yzx);" + - "highp float d = q.x - min(q.w, q.y);" + - "highp float e = 1.0e-10;" + - "return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);" + - "}" + - "lowp vec3 hsvToRgb(lowp vec3 c) {" + - "highp vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);" + - "highp vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);" + - "return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);" + - "}" + - "highp vec3 rgbToHsl(highp vec3 color) {" + - "highp vec3 hsl;" + - "highp float fmin = min(min(color.r, color.g), color.b);" + - "highp float fmax = max(max(color.r, color.g), color.b);" + - "highp float delta = fmax - fmin;" + - "hsl.z = (fmax + fmin) / 2.0;" + - "if (delta == 0.0) {" + - "hsl.x = 0.0;" + - "hsl.y = 0.0;" + - "} else {" + - "if (hsl.z < 0.5) {" + - "hsl.y = delta / (fmax + fmin);" + - "} else {" + - "hsl.y = delta / (2.0 - fmax - fmin);" + - "}" + - "highp float deltaR = (((fmax - color.r) / 6.0) + (delta / 2.0)) / delta;" + - "highp float deltaG = (((fmax - color.g) / 6.0) + (delta / 2.0)) / delta;" + - "highp float deltaB = (((fmax - color.b) / 6.0) + (delta / 2.0)) / delta;" + - "if (color.r == fmax) {" + - "hsl.x = deltaB - deltaG;" + - "} else if (color.g == fmax) {" + - "hsl.x = (1.0 / 3.0) + deltaR - deltaB;" + - "} else if (color.b == fmax) {" + - "hsl.x = (2.0 / 3.0) + deltaG - deltaR;" + - "}" + - "if (hsl.x < 0.0) {" + - "hsl.x += 1.0;" + - "} else if (hsl.x > 1.0) {" + - "hsl.x -= 1.0;" + - "}" + - "}" + - "return hsl;" + - "}" + - "highp float hueToRgb(highp float f1, highp float f2, highp float hue) {" + - "if (hue < 0.0) {" + - "hue += 1.0;" + - "} else if (hue > 1.0) {" + - "hue -= 1.0;" + - "}" + - "highp float res;" + - "if ((6.0 * hue) < 1.0) {" + - "res = f1 + (f2 - f1) * 6.0 * hue;" + - "} else if ((2.0 * hue) < 1.0) {" + - "res = f2;" + - "} else if ((3.0 * hue) < 2.0) {" + - "res = f1 + (f2 - f1) * ((2.0 / 3.0) - hue) * 6.0;" + - "} else {" + - "res = f1;" + - "} return res;" + - "}" + - "highp vec3 hslToRgb(highp vec3 hsl) {" + - "if (hsl.y == 0.0) {" + - "return vec3(hsl.z);" + - "} else {" + - "highp float f2;" + - "if (hsl.z < 0.5) {" + - "f2 = hsl.z * (1.0 + hsl.y);" + - "} else {" + - "f2 = (hsl.z + hsl.y) - (hsl.y * hsl.z);" + - "}" + - "highp float f1 = 2.0 * hsl.z - f2;" + - "return vec3(hueToRgb(f1, f2, hsl.x + (1.0/3.0)), hueToRgb(f1, f2, hsl.x), hueToRgb(f1, f2, hsl.x - (1.0/3.0)));" + - "}" + - "}" + - "highp vec3 rgbToYuv(highp vec3 inP) {" + - "highp float luma = getLuma(inP);" + - "return vec3(luma, (1.0 / 1.772) * (inP.b - luma), (1.0 / 1.402) * (inP.r - luma));" + - "}" + - "lowp vec3 yuvToRgb(highp vec3 inP) {" + - "return vec3(1.402 * inP.b + inP.r, (inP.r - (0.299 * 1.402 / 0.587) * inP.b - (0.114 * 1.772 / 0.587) * inP.g), 1.772 * inP.g + inP.r);" + - "}" + - "lowp float easeInOutSigmoid(lowp float value, lowp float strength) {" + - "if (value > 0.5) {" + - "return 1.0 - pow(2.0 - 2.0 * value, 1.0 / (1.0 - strength)) * 0.5;" + - "} else {" + - "return pow(2.0 * value, 1.0 / (1.0 - strength)) * 0.5;" + - "}" + - "}" + - "lowp vec3 applyLuminanceCurve(lowp vec3 pixel) {" + - "highp float index = floor(clamp(pixel.z / (1.0 / 200.0), 0.0, 199.0));" + - "pixel.y = mix(0.0, pixel.y, smoothstep(0.0, 0.1, pixel.z) * (1.0 - smoothstep(0.8, 1.0, pixel.z)));" + - "pixel.z = texture2D(curvesImage, vec2(1.0 / 200.0 * index, 0)).a;" + - "return pixel;" + - "}" + - "lowp vec3 applyRGBCurve(lowp vec3 pixel) {" + - "highp float index = floor(clamp(pixel.r / (1.0 / 200.0), 0.0, 199.0));" + - "pixel.r = texture2D(curvesImage, vec2(1.0 / 200.0 * index, 0)).r;" + - "index = floor(clamp(pixel.g / (1.0 / 200.0), 0.0, 199.0));" + - "pixel.g = clamp(texture2D(curvesImage, vec2(1.0 / 200.0 * index, 0)).g, 0.0, 1.0);" + - "index = floor(clamp(pixel.b / (1.0 / 200.0), 0.0, 199.0));" + - "pixel.b = clamp(texture2D(curvesImage, vec2(1.0 / 200.0 * index, 0)).b, 0.0, 1.0);" + - "return pixel;" + - "}" + - "highp vec3 fadeAdjust(highp vec3 color, highp float fadeVal) {" + - "return (color * (1.0 - fadeVal)) + ((color + (vec3(-0.9772) * pow(vec3(color), vec3(3.0)) + vec3(1.708) * pow(vec3(color), vec3(2.0)) + vec3(-0.1603) * vec3(color) + vec3(0.2878) - color * vec3(0.9))) * fadeVal);" + - "}" + - "lowp vec3 tintRaiseShadowsCurve(lowp vec3 color) {" + - "return vec3(-0.003671) * pow(color, vec3(3.0)) + vec3(0.3842) * pow(color, vec3(2.0)) + vec3(0.3764) * color + vec3(0.2515);" + - "}" + - "lowp vec3 tintShadows(lowp vec3 texel, lowp vec3 tintColor, lowp float tintAmount) {" + - "return clamp(mix(texel, mix(texel, tintRaiseShadowsCurve(texel), tintColor), tintAmount), 0.0, 1.0);" + - "} " + - "lowp vec3 tintHighlights(lowp vec3 texel, lowp vec3 tintColor, lowp float tintAmount) {" + - "return clamp(mix(texel, mix(texel, vec3(1.0) - tintRaiseShadowsCurve(vec3(1.0) - texel), (vec3(1.0) - tintColor)), tintAmount), 0.0, 1.0);" + - "}" + - "highp vec4 rnm(in highp vec2 tc) {" + - "highp float noise = sin(dot(tc, vec2(12.9898, 78.233))) * 43758.5453;" + - "return vec4(fract(noise), fract(noise * 1.2154), fract(noise * 1.3453), fract(noise * 1.3647)) * 2.0 - 1.0;" + - "}" + - "highp float fade(in highp float t) {" + - "return t * t * t * (t * (t * 6.0 - 15.0) + 10.0);" + - "}" + - "highp float pnoise3D(in highp vec3 p) {" + - "highp vec3 pi = permTexUnit * floor(p) + permTexUnitHalf;" + - "highp vec3 pf = fract(p);" + - "highp float perm = rnm(pi.xy).a;" + - "highp float n000 = dot(rnm(vec2(perm, pi.z)).rgb * 4.0 - 1.0, pf);" + - "highp float n001 = dot(rnm(vec2(perm, pi.z + permTexUnit)).rgb * 4.0 - 1.0, pf - vec3(0.0, 0.0, 1.0));" + - "perm = rnm(pi.xy + vec2(0.0, permTexUnit)).a;" + - "highp float n010 = dot(rnm(vec2(perm, pi.z)).rgb * 4.0 - 1.0, pf - vec3(0.0, 1.0, 0.0));" + - "highp float n011 = dot(rnm(vec2(perm, pi.z + permTexUnit)).rgb * 4.0 - 1.0, pf - vec3(0.0, 1.0, 1.0));" + - "perm = rnm(pi.xy + vec2(permTexUnit, 0.0)).a;" + - "highp float n100 = dot(rnm(vec2(perm, pi.z)).rgb * 4.0 - 1.0, pf - vec3(1.0, 0.0, 0.0));" + - "highp float n101 = dot(rnm(vec2(perm, pi.z + permTexUnit)).rgb * 4.0 - 1.0, pf - vec3(1.0, 0.0, 1.0));" + - "perm = rnm(pi.xy + vec2(permTexUnit, permTexUnit)).a;" + - "highp float n110 = dot(rnm(vec2(perm, pi.z)).rgb * 4.0 - 1.0, pf - vec3(1.0, 1.0, 0.0));" + - "highp float n111 = dot(rnm(vec2(perm, pi.z + permTexUnit)).rgb * 4.0 - 1.0, pf - vec3(1.0, 1.0, 1.0));" + - "highp vec4 n_x = mix(vec4(n000, n001, n010, n011), vec4(n100, n101, n110, n111), fade(pf.x));" + - "highp vec2 n_xy = mix(n_x.xy, n_x.zw, fade(pf.y));" + - "return mix(n_xy.x, n_xy.y, fade(pf.z));" + - "}" + - "lowp vec2 coordRot(in lowp vec2 tc, in lowp float angle) {" + - "return vec2(((tc.x * 2.0 - 1.0) * cos(angle) - (tc.y * 2.0 - 1.0) * sin(angle)) * 0.5 + 0.5, ((tc.y * 2.0 - 1.0) * cos(angle) + (tc.x * 2.0 - 1.0) * sin(angle)) * 0.5 + 0.5);" + - "}" + - "void main() {" + - "lowp vec4 source = texture2D(sourceImage, texCoord);" + - "lowp vec4 result = source;" + - "const lowp float toolEpsilon = 0.005;" + - "if (skipTone < toolEpsilon) {" + - "result = vec4(applyRGBCurve(hslToRgb(applyLuminanceCurve(rgbToHsl(result.rgb)))), result.a);" + - "}" + - "mediump float hsLuminance = dot(result.rgb, hsLuminanceWeighting);" + - "mediump float shadow = clamp((pow(hsLuminance, 1.0 / shadows) + (-0.76) * pow(hsLuminance, 2.0 / shadows)) - hsLuminance, 0.0, 1.0);" + - "mediump float highlight = clamp((1.0 - (pow(1.0 - hsLuminance, 1.0 / (2.0 - highlights)) + (-0.8) * pow(1.0 - hsLuminance, 2.0 / (2.0 - highlights)))) - hsLuminance, -1.0, 0.0);" + - "lowp vec3 hsresult = vec3(0.0, 0.0, 0.0) + ((hsLuminance + shadow + highlight) - 0.0) * ((result.rgb - vec3(0.0, 0.0, 0.0)) / (hsLuminance - 0.0));" + - "mediump float contrastedLuminance = ((hsLuminance - 0.5) * 1.5) + 0.5;" + - "mediump float whiteInterp = contrastedLuminance * contrastedLuminance * contrastedLuminance;" + - "mediump float whiteTarget = clamp(highlights, 1.0, 2.0) - 1.0;" + - "hsresult = mix(hsresult, vec3(1.0), whiteInterp * whiteTarget);" + - "mediump float invContrastedLuminance = 1.0 - contrastedLuminance;" + - "mediump float blackInterp = invContrastedLuminance * invContrastedLuminance * invContrastedLuminance;" + - "mediump float blackTarget = 1.0 - clamp(shadows, 0.0, 1.0);" + - "hsresult = mix(hsresult, vec3(0.0), blackInterp * blackTarget);" + - "result = vec4(hsresult.rgb, result.a);" + - "result = vec4(clamp(((result.rgb - vec3(0.5)) * contrast + vec3(0.5)), 0.0, 1.0), result.a);" + - "if (abs(fadeAmount) > toolEpsilon) {" + - "result.rgb = fadeAdjust(result.rgb, fadeAmount);" + - "}" + - "lowp float satLuminance = dot(result.rgb, satLuminanceWeighting);" + - "lowp vec3 greyScaleColor = vec3(satLuminance);" + - "result = vec4(clamp(mix(greyScaleColor, result.rgb, saturation), 0.0, 1.0), result.a);" + - "if (abs(shadowsTintIntensity) > toolEpsilon) {" + - "result.rgb = tintShadows(result.rgb, shadowsTintColor, shadowsTintIntensity * 2.0);" + - "}" + - "if (abs(highlightsTintIntensity) > toolEpsilon) {" + - "result.rgb = tintHighlights(result.rgb, highlightsTintColor, highlightsTintIntensity * 2.0);" + - "}" + - "if (abs(exposure) > toolEpsilon) {" + - "mediump float mag = exposure * 1.045;" + - "mediump float exppower = 1.0 + abs(mag);" + - "if (mag < 0.0) {" + - "exppower = 1.0 / exppower;" + - "}" + - "result.r = 1.0 - pow((1.0 - result.r), exppower);" + - "result.g = 1.0 - pow((1.0 - result.g), exppower);" + - "result.b = 1.0 - pow((1.0 - result.b), exppower);" + - "}" + - "if (abs(warmth) > toolEpsilon) {" + - "highp vec3 yuvVec;" + - "if (warmth > 0.0 ) {" + - "yuvVec = vec3(0.1765, -0.1255, 0.0902);" + - "} else {" + - "yuvVec = -vec3(0.0588, 0.1569, -0.1255);" + - "}" + - "highp vec3 yuvColor = rgbToYuv(result.rgb);" + - "highp float luma = yuvColor.r;" + - "highp float curveScale = sin(luma * 3.14159);" + - "yuvColor += 0.375 * warmth * curveScale * yuvVec;" + - "result.rgb = yuvToRgb(yuvColor);" + - "}" + - "if (abs(grain) > toolEpsilon) {" + - "highp vec3 rotOffset = vec3(1.425, 3.892, 5.835);" + - "highp vec2 rotCoordsR = coordRot(texCoord, rotOffset.x);" + - "highp vec3 noise = vec3(pnoise3D(vec3(rotCoordsR * vec2(width / grainsize, height / grainsize),0.0)));" + - "lowp vec3 lumcoeff = vec3(0.299,0.587,0.114);" + - "lowp float luminance = dot(result.rgb, lumcoeff);" + - "lowp float lum = smoothstep(0.2, 0.0, luminance);" + - "lum += luminance;" + - "noise = mix(noise,vec3(0.0),pow(lum,4.0));" + - "result.rgb = result.rgb + noise * grain;" + - "}" + - "if (abs(vignette) > toolEpsilon) {" + - "const lowp float midpoint = 0.7;" + - "const lowp float fuzziness = 0.62;" + - "lowp float radDist = length(texCoord - 0.5) / sqrt(0.5);" + - "lowp float mag = easeInOutSigmoid(radDist * midpoint, fuzziness) * vignette * 0.645;" + - "result.rgb = mix(pow(result.rgb, vec3(1.0 / (1.0 - mag))), vec3(0.0), mag * mag);" + - "}" + - "gl_FragColor = result;" + - "}"; - - public EGLThread(SurfaceTexture surface, Bitmap bitmap) { - super("EGLThread"); - surfaceTexture = surface; - currentBitmap = bitmap; - } - - private int loadShader(int type, String shaderCode) { - int shader = GLES20.glCreateShader(type); - GLES20.glShaderSource(shader, shaderCode); - GLES20.glCompileShader(shader); - int[] compileStatus = new int[1]; - GLES20.glGetShaderiv(shader, GLES20.GL_COMPILE_STATUS, compileStatus, 0); - if (compileStatus[0] == 0) { - if (BuildVars.LOGS_ENABLED) { - FileLog.e(GLES20.glGetShaderInfoLog(shader)); - } - GLES20.glDeleteShader(shader); - shader = 0; - } - return shader; - } - - private boolean initGL() { - egl10 = (EGL10) EGLContext.getEGL(); - - eglDisplay = egl10.eglGetDisplay(EGL10.EGL_DEFAULT_DISPLAY); - if (eglDisplay == EGL10.EGL_NO_DISPLAY) { - if (BuildVars.LOGS_ENABLED) { - FileLog.e("eglGetDisplay failed " + GLUtils.getEGLErrorString(egl10.eglGetError())); - } - finish(); - return false; - } - - int[] version = new int[2]; - if (!egl10.eglInitialize(eglDisplay, version)) { - if (BuildVars.LOGS_ENABLED) { - FileLog.e("eglInitialize failed " + GLUtils.getEGLErrorString(egl10.eglGetError())); - } - finish(); - return false; - } - - int[] configsCount = new int[1]; - EGLConfig[] configs = new EGLConfig[1]; - int[] configSpec = new int[] { - EGL10.EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, - EGL10.EGL_RED_SIZE, 8, - EGL10.EGL_GREEN_SIZE, 8, - EGL10.EGL_BLUE_SIZE, 8, - EGL10.EGL_ALPHA_SIZE, 8, - EGL10.EGL_DEPTH_SIZE, 0, - EGL10.EGL_STENCIL_SIZE, 0, - EGL10.EGL_NONE - }; - if (!egl10.eglChooseConfig(eglDisplay, configSpec, configs, 1, configsCount)) { - if (BuildVars.LOGS_ENABLED) { - FileLog.e("eglChooseConfig failed " + GLUtils.getEGLErrorString(egl10.eglGetError())); - } - finish(); - return false; - } else if (configsCount[0] > 0) { - eglConfig = configs[0]; - } else { - if (BuildVars.LOGS_ENABLED) { - FileLog.e("eglConfig not initialized"); - } - finish(); - return false; - } - - int[] attrib_list = { EGL_CONTEXT_CLIENT_VERSION, 2, EGL10.EGL_NONE }; - eglContext = egl10.eglCreateContext(eglDisplay, eglConfig, EGL10.EGL_NO_CONTEXT, attrib_list); - if (eglContext == null) { - if (BuildVars.LOGS_ENABLED) { - FileLog.e("eglCreateContext failed " + GLUtils.getEGLErrorString(egl10.eglGetError())); - } - finish(); - return false; - } - - if (surfaceTexture instanceof SurfaceTexture) { - eglSurface = egl10.eglCreateWindowSurface(eglDisplay, eglConfig, surfaceTexture, null); - } else { - finish(); - return false; - } - - if (eglSurface == null || eglSurface == EGL10.EGL_NO_SURFACE) { - if (BuildVars.LOGS_ENABLED) { - FileLog.e("createWindowSurface failed " + GLUtils.getEGLErrorString(egl10.eglGetError())); - } - finish(); - return false; - } - if (!egl10.eglMakeCurrent(eglDisplay, eglSurface, eglSurface, eglContext)) { - if (BuildVars.LOGS_ENABLED) { - FileLog.e("eglMakeCurrent failed " + GLUtils.getEGLErrorString(egl10.eglGetError())); - } - finish(); - return false; - } - gl = eglContext.getGL(); - - - float[] squareCoordinates = { - -1.0f, 1.0f, - 1.0f, 1.0f, - -1.0f, -1.0f, - 1.0f, -1.0f}; - - ByteBuffer bb = ByteBuffer.allocateDirect(squareCoordinates.length * 4); - bb.order(ByteOrder.nativeOrder()); - vertexBuffer = bb.asFloatBuffer(); - vertexBuffer.put(squareCoordinates); - vertexBuffer.position(0); - - float[] squareCoordinates2 = { - -1.0f, -1.0f, - 1.0f, -1.0f, - -1.0f, 1.0f, - 1.0f, 1.0f}; - - bb = ByteBuffer.allocateDirect(squareCoordinates2.length * 4); - bb.order(ByteOrder.nativeOrder()); - vertexInvertBuffer = bb.asFloatBuffer(); - vertexInvertBuffer.put(squareCoordinates2); - vertexInvertBuffer.position(0); - - float[] textureCoordinates = { - 0.0f, 0.0f, - 1.0f, 0.0f, - 0.0f, 1.0f, - 1.0f, 1.0f, - }; - - bb = ByteBuffer.allocateDirect(textureCoordinates.length * 4); - bb.order(ByteOrder.nativeOrder()); - textureBuffer = bb.asFloatBuffer(); - textureBuffer.put(textureCoordinates); - textureBuffer.position(0); - - GLES20.glGenTextures(1, curveTextures, 0); - GLES20.glGenTextures(2, enhanceTextures, 0); - - int vertexShader = loadShader(GLES20.GL_VERTEX_SHADER, simpleVertexShaderCode); - int fragmentShader = loadShader(GLES20.GL_FRAGMENT_SHADER, toolsFragmentShaderCode); - - if (vertexShader != 0 && fragmentShader != 0) { - toolsShaderProgram = GLES20.glCreateProgram(); - GLES20.glAttachShader(toolsShaderProgram, vertexShader); - GLES20.glAttachShader(toolsShaderProgram, fragmentShader); - GLES20.glBindAttribLocation(toolsShaderProgram, 0, "position"); - GLES20.glBindAttribLocation(toolsShaderProgram, 1, "inputTexCoord"); - - GLES20.glLinkProgram(toolsShaderProgram); - int[] linkStatus = new int[1]; - GLES20.glGetProgramiv(toolsShaderProgram, GLES20.GL_LINK_STATUS, linkStatus, 0); - if (linkStatus[0] == 0) { - /*String infoLog = GLES20.glGetProgramInfoLog(toolsShaderProgram); - FileLog.e("link error = " + infoLog);*/ - GLES20.glDeleteProgram(toolsShaderProgram); - toolsShaderProgram = 0; - } else { - positionHandle = GLES20.glGetAttribLocation(toolsShaderProgram, "position"); - inputTexCoordHandle = GLES20.glGetAttribLocation(toolsShaderProgram, "inputTexCoord"); - sourceImageHandle = GLES20.glGetUniformLocation(toolsShaderProgram, "sourceImage"); - shadowsHandle = GLES20.glGetUniformLocation(toolsShaderProgram, "shadows"); - highlightsHandle = GLES20.glGetUniformLocation(toolsShaderProgram, "highlights"); - exposureHandle = GLES20.glGetUniformLocation(toolsShaderProgram, "exposure"); - contrastHandle = GLES20.glGetUniformLocation(toolsShaderProgram, "contrast"); - saturationHandle = GLES20.glGetUniformLocation(toolsShaderProgram, "saturation"); - warmthHandle = GLES20.glGetUniformLocation(toolsShaderProgram, "warmth"); - vignetteHandle = GLES20.glGetUniformLocation(toolsShaderProgram, "vignette"); - grainHandle = GLES20.glGetUniformLocation(toolsShaderProgram, "grain"); - widthHandle = GLES20.glGetUniformLocation(toolsShaderProgram, "width"); - heightHandle = GLES20.glGetUniformLocation(toolsShaderProgram, "height"); - curvesImageHandle = GLES20.glGetUniformLocation(toolsShaderProgram, "curvesImage"); - skipToneHandle = GLES20.glGetUniformLocation(toolsShaderProgram, "skipTone"); - fadeAmountHandle = GLES20.glGetUniformLocation(toolsShaderProgram, "fadeAmount"); - shadowsTintIntensityHandle = GLES20.glGetUniformLocation(toolsShaderProgram, "shadowsTintIntensity"); - highlightsTintIntensityHandle = GLES20.glGetUniformLocation(toolsShaderProgram, "highlightsTintIntensity"); - shadowsTintColorHandle = GLES20.glGetUniformLocation(toolsShaderProgram, "shadowsTintColor"); - highlightsTintColorHandle = GLES20.glGetUniformLocation(toolsShaderProgram, "highlightsTintColor"); - } - } else { - finish(); - return false; - } - - vertexShader = loadShader(GLES20.GL_VERTEX_SHADER, sharpenVertexShaderCode); - fragmentShader = loadShader(GLES20.GL_FRAGMENT_SHADER, sharpenFragmentShaderCode); - - if (vertexShader != 0 && fragmentShader != 0) { - sharpenShaderProgram = GLES20.glCreateProgram(); - GLES20.glAttachShader(sharpenShaderProgram, vertexShader); - GLES20.glAttachShader(sharpenShaderProgram, fragmentShader); - GLES20.glBindAttribLocation(sharpenShaderProgram, 0, "position"); - GLES20.glBindAttribLocation(sharpenShaderProgram, 1, "inputTexCoord"); - - GLES20.glLinkProgram(sharpenShaderProgram); - int[] linkStatus = new int[1]; - GLES20.glGetProgramiv(sharpenShaderProgram, GLES20.GL_LINK_STATUS, linkStatus, 0); - if (linkStatus[0] == 0) { - GLES20.glDeleteProgram(sharpenShaderProgram); - sharpenShaderProgram = 0; - } else { - sharpenPositionHandle = GLES20.glGetAttribLocation(sharpenShaderProgram, "position"); - sharpenInputTexCoordHandle = GLES20.glGetAttribLocation(sharpenShaderProgram, "inputTexCoord"); - sharpenSourceImageHandle = GLES20.glGetUniformLocation(sharpenShaderProgram, "sourceImage"); - sharpenWidthHandle = GLES20.glGetUniformLocation(sharpenShaderProgram, "inputWidth"); - sharpenHeightHandle = GLES20.glGetUniformLocation(sharpenShaderProgram, "inputHeight"); - sharpenHandle = GLES20.glGetUniformLocation(sharpenShaderProgram, "sharpen"); - } - } else { - finish(); - return false; - } - - vertexShader = loadShader(GLES20.GL_VERTEX_SHADER, blurVertexShaderCode); - fragmentShader = loadShader(GLES20.GL_FRAGMENT_SHADER, blurFragmentShaderCode); - - if (vertexShader != 0 && fragmentShader != 0) { - blurShaderProgram = GLES20.glCreateProgram(); - GLES20.glAttachShader(blurShaderProgram, vertexShader); - GLES20.glAttachShader(blurShaderProgram, fragmentShader); - GLES20.glBindAttribLocation(blurShaderProgram, 0, "position"); - GLES20.glBindAttribLocation(blurShaderProgram, 1, "inputTexCoord"); - - GLES20.glLinkProgram(blurShaderProgram); - int[] linkStatus = new int[1]; - GLES20.glGetProgramiv(blurShaderProgram, GLES20.GL_LINK_STATUS, linkStatus, 0); - if (linkStatus[0] == 0) { - GLES20.glDeleteProgram(blurShaderProgram); - blurShaderProgram = 0; - } else { - blurPositionHandle = GLES20.glGetAttribLocation(blurShaderProgram, "position"); - blurInputTexCoordHandle = GLES20.glGetAttribLocation(blurShaderProgram, "inputTexCoord"); - blurSourceImageHandle = GLES20.glGetUniformLocation(blurShaderProgram, "sourceImage"); - blurWidthHandle = GLES20.glGetUniformLocation(blurShaderProgram, "texelWidthOffset"); - blurHeightHandle = GLES20.glGetUniformLocation(blurShaderProgram, "texelHeightOffset"); - } - } else { - finish(); - return false; - } - - vertexShader = loadShader(GLES20.GL_VERTEX_SHADER, simpleVertexShaderCode); - fragmentShader = loadShader(GLES20.GL_FRAGMENT_SHADER, linearBlurFragmentShaderCode); - - if (vertexShader != 0 && fragmentShader != 0) { - linearBlurShaderProgram = GLES20.glCreateProgram(); - GLES20.glAttachShader(linearBlurShaderProgram, vertexShader); - GLES20.glAttachShader(linearBlurShaderProgram, fragmentShader); - GLES20.glBindAttribLocation(linearBlurShaderProgram, 0, "position"); - GLES20.glBindAttribLocation(linearBlurShaderProgram, 1, "inputTexCoord"); - - GLES20.glLinkProgram(linearBlurShaderProgram); - int[] linkStatus = new int[1]; - GLES20.glGetProgramiv(linearBlurShaderProgram, GLES20.GL_LINK_STATUS, linkStatus, 0); - if (linkStatus[0] == 0) { - GLES20.glDeleteProgram(linearBlurShaderProgram); - linearBlurShaderProgram = 0; - } else { - linearBlurPositionHandle = GLES20.glGetAttribLocation(linearBlurShaderProgram, "position"); - linearBlurInputTexCoordHandle = GLES20.glGetAttribLocation(linearBlurShaderProgram, "inputTexCoord"); - linearBlurSourceImageHandle = GLES20.glGetUniformLocation(linearBlurShaderProgram, "sourceImage"); - linearBlurSourceImage2Handle = GLES20.glGetUniformLocation(linearBlurShaderProgram, "inputImageTexture2"); - linearBlurExcludeSizeHandle = GLES20.glGetUniformLocation(linearBlurShaderProgram, "excludeSize"); - linearBlurExcludePointHandle = GLES20.glGetUniformLocation(linearBlurShaderProgram, "excludePoint"); - linearBlurExcludeBlurSizeHandle = GLES20.glGetUniformLocation(linearBlurShaderProgram, "excludeBlurSize"); - linearBlurAngleHandle = GLES20.glGetUniformLocation(linearBlurShaderProgram, "angle"); - linearBlurAspectRatioHandle = GLES20.glGetUniformLocation(linearBlurShaderProgram, "aspectRatio"); - } - } else { - finish(); - return false; - } - - vertexShader = loadShader(GLES20.GL_VERTEX_SHADER, simpleVertexShaderCode); - fragmentShader = loadShader(GLES20.GL_FRAGMENT_SHADER, radialBlurFragmentShaderCode); - - if (vertexShader != 0 && fragmentShader != 0) { - radialBlurShaderProgram = GLES20.glCreateProgram(); - GLES20.glAttachShader(radialBlurShaderProgram, vertexShader); - GLES20.glAttachShader(radialBlurShaderProgram, fragmentShader); - GLES20.glBindAttribLocation(radialBlurShaderProgram, 0, "position"); - GLES20.glBindAttribLocation(radialBlurShaderProgram, 1, "inputTexCoord"); - - GLES20.glLinkProgram(radialBlurShaderProgram); - int[] linkStatus = new int[1]; - GLES20.glGetProgramiv(radialBlurShaderProgram, GLES20.GL_LINK_STATUS, linkStatus, 0); - if (linkStatus[0] == 0) { - GLES20.glDeleteProgram(radialBlurShaderProgram); - radialBlurShaderProgram = 0; - } else { - radialBlurPositionHandle = GLES20.glGetAttribLocation(radialBlurShaderProgram, "position"); - radialBlurInputTexCoordHandle = GLES20.glGetAttribLocation(radialBlurShaderProgram, "inputTexCoord"); - radialBlurSourceImageHandle = GLES20.glGetUniformLocation(radialBlurShaderProgram, "sourceImage"); - radialBlurSourceImage2Handle = GLES20.glGetUniformLocation(radialBlurShaderProgram, "inputImageTexture2"); - radialBlurExcludeSizeHandle = GLES20.glGetUniformLocation(radialBlurShaderProgram, "excludeSize"); - radialBlurExcludePointHandle = GLES20.glGetUniformLocation(radialBlurShaderProgram, "excludePoint"); - radialBlurExcludeBlurSizeHandle = GLES20.glGetUniformLocation(radialBlurShaderProgram, "excludeBlurSize"); - radialBlurAspectRatioHandle = GLES20.glGetUniformLocation(radialBlurShaderProgram, "aspectRatio"); - } - } else { - finish(); - return false; - } - - vertexShader = loadShader(GLES20.GL_VERTEX_SHADER, simpleVertexShaderCode); - fragmentShader = loadShader(GLES20.GL_FRAGMENT_SHADER, rgbToHsvFragmentShaderCode); - if (vertexShader != 0 && fragmentShader != 0) { - rgbToHsvShaderProgram = GLES20.glCreateProgram(); - GLES20.glAttachShader(rgbToHsvShaderProgram, vertexShader); - GLES20.glAttachShader(rgbToHsvShaderProgram, fragmentShader); - GLES20.glBindAttribLocation(rgbToHsvShaderProgram, 0, "position"); - GLES20.glBindAttribLocation(rgbToHsvShaderProgram, 1, "inputTexCoord"); - - GLES20.glLinkProgram(rgbToHsvShaderProgram); - int[] linkStatus = new int[1]; - GLES20.glGetProgramiv(rgbToHsvShaderProgram, GLES20.GL_LINK_STATUS, linkStatus, 0); - if (linkStatus[0] == 0) { - GLES20.glDeleteProgram(rgbToHsvShaderProgram); - rgbToHsvShaderProgram = 0; - } else { - rgbToHsvPositionHandle = GLES20.glGetAttribLocation(rgbToHsvShaderProgram, "position"); - rgbToHsvInputTexCoordHandle = GLES20.glGetAttribLocation(rgbToHsvShaderProgram, "inputTexCoord"); - rgbToHsvSourceImageHandle = GLES20.glGetUniformLocation(rgbToHsvShaderProgram, "sourceImage"); - } - } else { - finish(); - return false; - } - - vertexShader = loadShader(GLES20.GL_VERTEX_SHADER, simpleVertexShaderCode); - fragmentShader = loadShader(GLES20.GL_FRAGMENT_SHADER, enhanceFragmentShaderCode); - if (vertexShader != 0 && fragmentShader != 0) { - enhanceShaderProgram = GLES20.glCreateProgram(); - GLES20.glAttachShader(enhanceShaderProgram, vertexShader); - GLES20.glAttachShader(enhanceShaderProgram, fragmentShader); - GLES20.glBindAttribLocation(enhanceShaderProgram, 0, "position"); - GLES20.glBindAttribLocation(enhanceShaderProgram, 1, "inputTexCoord"); - - GLES20.glLinkProgram(enhanceShaderProgram); - int[] linkStatus = new int[1]; - GLES20.glGetProgramiv(enhanceShaderProgram, GLES20.GL_LINK_STATUS, linkStatus, 0); - if (linkStatus[0] == 0) { - GLES20.glDeleteProgram(enhanceShaderProgram); - enhanceShaderProgram = 0; - } else { - enhancePositionHandle = GLES20.glGetAttribLocation(enhanceShaderProgram, "position"); - enhanceInputTexCoordHandle = GLES20.glGetAttribLocation(enhanceShaderProgram, "inputTexCoord"); - enhanceSourceImageHandle = GLES20.glGetUniformLocation(enhanceShaderProgram, "sourceImage"); - enhanceIntensityHandle = GLES20.glGetUniformLocation(enhanceShaderProgram, "intensity"); - enhanceInputImageTexture2Handle = GLES20.glGetUniformLocation(enhanceShaderProgram, "inputImageTexture2"); - } - } else { - finish(); - return false; - } - - vertexShader = loadShader(GLES20.GL_VERTEX_SHADER, simpleVertexShaderCode); - fragmentShader = loadShader(GLES20.GL_FRAGMENT_SHADER, simpleFragmentShaderCode); - if (vertexShader != 0 && fragmentShader != 0) { - simpleShaderProgram = GLES20.glCreateProgram(); - GLES20.glAttachShader(simpleShaderProgram, vertexShader); - GLES20.glAttachShader(simpleShaderProgram, fragmentShader); - GLES20.glBindAttribLocation(simpleShaderProgram, 0, "position"); - GLES20.glBindAttribLocation(simpleShaderProgram, 1, "inputTexCoord"); - - GLES20.glLinkProgram(simpleShaderProgram); - int[] linkStatus = new int[1]; - GLES20.glGetProgramiv(simpleShaderProgram, GLES20.GL_LINK_STATUS, linkStatus, 0); - if (linkStatus[0] == 0) { - GLES20.glDeleteProgram(simpleShaderProgram); - simpleShaderProgram = 0; - } else { - simplePositionHandle = GLES20.glGetAttribLocation(simpleShaderProgram, "position"); - simpleInputTexCoordHandle = GLES20.glGetAttribLocation(simpleShaderProgram, "inputTexCoord"); - simpleSourceImageHandle = GLES20.glGetUniformLocation(simpleShaderProgram, "sourceImage"); - } - } else { - finish(); - return false; - } - - if (currentBitmap != null && !currentBitmap.isRecycled()) { - loadTexture(currentBitmap); - } - - return true; - } - - public void finish() { - if (eglSurface != null) { - egl10.eglMakeCurrent(eglDisplay, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_CONTEXT); - egl10.eglDestroySurface(eglDisplay, eglSurface); - eglSurface = null; - } - if (eglContext != null) { - egl10.eglDestroyContext(eglDisplay, eglContext); - eglContext = null; - } - if (eglDisplay != null) { - egl10.eglTerminate(eglDisplay); - eglDisplay = null; - } - } - - private void drawEnhancePass() { - if (!hsvGenerated) { - GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, renderFrameBuffer[0]); - GLES20.glFramebufferTexture2D(GLES20.GL_FRAMEBUFFER, GLES20.GL_COLOR_ATTACHMENT0, GLES20.GL_TEXTURE_2D, renderTexture[0], 0); - GLES20.glClear(0); - - GLES20.glUseProgram(rgbToHsvShaderProgram); - GLES20.glActiveTexture(GLES20.GL_TEXTURE0); - GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, renderTexture[1]); - GLES20.glUniform1i(rgbToHsvSourceImageHandle, 0); - GLES20.glEnableVertexAttribArray(rgbToHsvInputTexCoordHandle); - GLES20.glVertexAttribPointer(rgbToHsvInputTexCoordHandle, 2, GLES20.GL_FLOAT, false, 8, textureBuffer); - GLES20.glEnableVertexAttribArray(rgbToHsvPositionHandle); - GLES20.glVertexAttribPointer(rgbToHsvPositionHandle, 2, GLES20.GL_FLOAT, false, 8, vertexBuffer); - GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4); - - ByteBuffer hsvBuffer = ByteBuffer.allocateDirect(renderBufferWidth * renderBufferHeight * 4); - GLES20.glReadPixels(0, 0, renderBufferWidth, renderBufferHeight, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, hsvBuffer); - - GLES20.glBindTexture(GL10.GL_TEXTURE_2D, enhanceTextures[0]); - GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR); - GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR); - GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE); - GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE); - GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, renderBufferWidth, renderBufferHeight, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, hsvBuffer); - - ByteBuffer buffer = null; - try { - buffer = ByteBuffer.allocateDirect(PGPhotoEnhanceSegments * PGPhotoEnhanceSegments * PGPhotoEnhanceHistogramBins * 4); - Utilities.calcCDT(hsvBuffer, renderBufferWidth, renderBufferHeight, buffer); - } catch (Exception e) { - FileLog.e(e); - } - - GLES20.glBindTexture(GL10.GL_TEXTURE_2D, enhanceTextures[1]); - GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR); - GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR); - GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE); - GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE); - GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, 256, 16, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, buffer); - - hsvGenerated = true; - } - - GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, renderFrameBuffer[1]); - GLES20.glFramebufferTexture2D(GLES20.GL_FRAMEBUFFER, GLES20.GL_COLOR_ATTACHMENT0, GLES20.GL_TEXTURE_2D, renderTexture[1], 0); - GLES20.glClear(0); - - GLES20.glUseProgram(enhanceShaderProgram); - GLES20.glActiveTexture(GLES20.GL_TEXTURE0); - GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, enhanceTextures[0]); - GLES20.glUniform1i(enhanceSourceImageHandle, 0); - GLES20.glActiveTexture(GLES20.GL_TEXTURE1); - GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, enhanceTextures[1]); - GLES20.glUniform1i(enhanceInputImageTexture2Handle, 1); - if (showOriginal) { - GLES20.glUniform1f(enhanceIntensityHandle, 0); - } else { - GLES20.glUniform1f(enhanceIntensityHandle, getEnhanceValue()); - } - - GLES20.glEnableVertexAttribArray(enhanceInputTexCoordHandle); - GLES20.glVertexAttribPointer(enhanceInputTexCoordHandle, 2, GLES20.GL_FLOAT, false, 8, textureBuffer); - GLES20.glEnableVertexAttribArray(enhancePositionHandle); - GLES20.glVertexAttribPointer(enhancePositionHandle, 2, GLES20.GL_FLOAT, false, 8, vertexBuffer); - GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4); - } - - private void drawSharpenPass() { - GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, renderFrameBuffer[0]); - GLES20.glFramebufferTexture2D(GLES20.GL_FRAMEBUFFER, GLES20.GL_COLOR_ATTACHMENT0, GLES20.GL_TEXTURE_2D, renderTexture[0], 0); - GLES20.glClear(0); - - GLES20.glUseProgram(sharpenShaderProgram); - GLES20.glActiveTexture(GLES20.GL_TEXTURE0); - GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, renderTexture[1]); - GLES20.glUniform1i(sharpenSourceImageHandle, 0); - if (showOriginal) { - GLES20.glUniform1f(sharpenHandle, 0); - } else { - GLES20.glUniform1f(sharpenHandle, getSharpenValue()); - } - GLES20.glUniform1f(sharpenWidthHandle, renderBufferWidth); - GLES20.glUniform1f(sharpenHeightHandle, renderBufferHeight); - GLES20.glEnableVertexAttribArray(sharpenInputTexCoordHandle); - GLES20.glVertexAttribPointer(sharpenInputTexCoordHandle, 2, GLES20.GL_FLOAT, false, 8, textureBuffer); - GLES20.glEnableVertexAttribArray(sharpenPositionHandle); - GLES20.glVertexAttribPointer(sharpenPositionHandle, 2, GLES20.GL_FLOAT, false, 8, vertexInvertBuffer); - GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4); - } - - private void drawCustomParamsPass() { - GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, renderFrameBuffer[1]); - GLES20.glFramebufferTexture2D(GLES20.GL_FRAMEBUFFER, GLES20.GL_COLOR_ATTACHMENT0, GLES20.GL_TEXTURE_2D, renderTexture[1], 0); - GLES20.glClear(0); - - GLES20.glUseProgram(toolsShaderProgram); - GLES20.glActiveTexture(GLES20.GL_TEXTURE0); - GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, renderTexture[0]); - GLES20.glUniform1i(sourceImageHandle, 0); - if (showOriginal) { - GLES20.glUniform1f(shadowsHandle, 1); - GLES20.glUniform1f(highlightsHandle, 1); - GLES20.glUniform1f(exposureHandle, 0); - GLES20.glUniform1f(contrastHandle, 1); - GLES20.glUniform1f(saturationHandle, 1); - GLES20.glUniform1f(warmthHandle, 0); - GLES20.glUniform1f(vignetteHandle, 0); - GLES20.glUniform1f(grainHandle, 0); - GLES20.glUniform1f(fadeAmountHandle, 0); - GLES20.glUniform3f(highlightsTintColorHandle, 0, 0, 0); - GLES20.glUniform1f(highlightsTintIntensityHandle, 0); - GLES20.glUniform3f(shadowsTintColorHandle, 0, 0, 0); - GLES20.glUniform1f(shadowsTintIntensityHandle, 0); - GLES20.glUniform1f(skipToneHandle, 1); - } else { - GLES20.glUniform1f(shadowsHandle, getShadowsValue()); - GLES20.glUniform1f(highlightsHandle, getHighlightsValue()); - GLES20.glUniform1f(exposureHandle, getExposureValue()); - GLES20.glUniform1f(contrastHandle, getContrastValue()); - GLES20.glUniform1f(saturationHandle, getSaturationValue()); - GLES20.glUniform1f(warmthHandle, getWarmthValue()); - GLES20.glUniform1f(vignetteHandle, getVignetteValue()); - GLES20.glUniform1f(grainHandle, getGrainValue()); - GLES20.glUniform1f(fadeAmountHandle, getFadeValue()); - GLES20.glUniform3f(highlightsTintColorHandle, (tintHighlightsColor >> 16 & 0xff) / 255.0f, (tintHighlightsColor >> 8 & 0xff) / 255.0f, (tintHighlightsColor & 0xff) / 255.0f); - GLES20.glUniform1f(highlightsTintIntensityHandle, getTintHighlightsIntensityValue()); - GLES20.glUniform3f(shadowsTintColorHandle, (tintShadowsColor >> 16 & 0xff) / 255.0f, (tintShadowsColor >> 8 & 0xff) / 255.0f, (tintShadowsColor & 0xff) / 255.0f); - GLES20.glUniform1f(shadowsTintIntensityHandle, getTintShadowsIntensityValue()); - boolean skipTone = curvesToolValue.shouldBeSkipped(); - GLES20.glUniform1f(skipToneHandle, skipTone ? 1.0f : 0.0f); - if (!skipTone) { - curvesToolValue.fillBuffer(); - GLES20.glActiveTexture(GLES20.GL_TEXTURE1); - GLES20.glBindTexture(GL10.GL_TEXTURE_2D, curveTextures[0]); - GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR); - GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR); - GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE); - GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE); - GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, 200, 1, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, curvesToolValue.curveBuffer); - GLES20.glUniform1i(curvesImageHandle, 1); - } - } - - GLES20.glUniform1f(widthHandle, renderBufferWidth); - GLES20.glUniform1f(heightHandle, renderBufferHeight); - GLES20.glEnableVertexAttribArray(inputTexCoordHandle); - GLES20.glVertexAttribPointer(inputTexCoordHandle, 2, GLES20.GL_FLOAT, false, 8, textureBuffer); - GLES20.glEnableVertexAttribArray(positionHandle); - GLES20.glVertexAttribPointer(positionHandle, 2, GLES20.GL_FLOAT, false, 8, vertexInvertBuffer); - GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4); - } - - private boolean drawBlurPass() { - if (showOriginal || blurType == 0) { - return false; - } - if (needUpdateBlurTexture) { - GLES20.glUseProgram(blurShaderProgram); - GLES20.glUniform1i(blurSourceImageHandle, 0); - GLES20.glEnableVertexAttribArray(blurInputTexCoordHandle); - GLES20.glVertexAttribPointer(blurInputTexCoordHandle, 2, GLES20.GL_FLOAT, false, 8, textureBuffer); - GLES20.glEnableVertexAttribArray(blurPositionHandle); - GLES20.glVertexAttribPointer(blurPositionHandle, 2, GLES20.GL_FLOAT, false, 8, vertexInvertBuffer); - - GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, renderFrameBuffer[0]); - GLES20.glFramebufferTexture2D(GLES20.GL_FRAMEBUFFER, GLES20.GL_COLOR_ATTACHMENT0, GLES20.GL_TEXTURE_2D, renderTexture[0], 0); - GLES20.glClear(0); - GLES20.glActiveTexture(GLES20.GL_TEXTURE0); - GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, renderTexture[1]); - GLES20.glUniform1f(blurWidthHandle, 0.0f); - GLES20.glUniform1f(blurHeightHandle, 1.0f / renderBufferHeight); - GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4); - - GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, renderFrameBuffer[2]); - GLES20.glFramebufferTexture2D(GLES20.GL_FRAMEBUFFER, GLES20.GL_COLOR_ATTACHMENT0, GLES20.GL_TEXTURE_2D, renderTexture[2], 0); - GLES20.glClear(0); - GLES20.glActiveTexture(GLES20.GL_TEXTURE0); - GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, renderTexture[0]); - GLES20.glUniform1f(blurWidthHandle, 1.0f / renderBufferWidth); - GLES20.glUniform1f(blurHeightHandle, 0.0f); - GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4); - needUpdateBlurTexture = false; - } - - GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, renderFrameBuffer[0]); - GLES20.glFramebufferTexture2D(GLES20.GL_FRAMEBUFFER, GLES20.GL_COLOR_ATTACHMENT0, GLES20.GL_TEXTURE_2D, renderTexture[0], 0); - GLES20.glClear(0); - if (blurType == 1) { - GLES20.glUseProgram(radialBlurShaderProgram); - GLES20.glUniform1i(radialBlurSourceImageHandle, 0); - GLES20.glUniform1i(radialBlurSourceImage2Handle, 1); - GLES20.glUniform1f(radialBlurExcludeSizeHandle, blurExcludeSize); - GLES20.glUniform1f(radialBlurExcludeBlurSizeHandle, blurExcludeBlurSize); - GLES20.glUniform2f(radialBlurExcludePointHandle, blurExcludePoint.x, blurExcludePoint.y); - GLES20.glUniform1f(radialBlurAspectRatioHandle, (float) renderBufferHeight / (float) renderBufferWidth); - GLES20.glEnableVertexAttribArray(radialBlurInputTexCoordHandle); - GLES20.glVertexAttribPointer(radialBlurInputTexCoordHandle, 2, GLES20.GL_FLOAT, false, 8, textureBuffer); - GLES20.glEnableVertexAttribArray(radialBlurPositionHandle); - GLES20.glVertexAttribPointer(radialBlurPositionHandle, 2, GLES20.GL_FLOAT, false, 8, vertexInvertBuffer); - } else if (blurType == 2) { - GLES20.glUseProgram(linearBlurShaderProgram); - GLES20.glUniform1i(linearBlurSourceImageHandle, 0); - GLES20.glUniform1i(linearBlurSourceImage2Handle, 1); - GLES20.glUniform1f(linearBlurExcludeSizeHandle, blurExcludeSize); - GLES20.glUniform1f(linearBlurExcludeBlurSizeHandle, blurExcludeBlurSize); - GLES20.glUniform1f(linearBlurAngleHandle, blurAngle); - GLES20.glUniform2f(linearBlurExcludePointHandle, blurExcludePoint.x, blurExcludePoint.y); - GLES20.glUniform1f(linearBlurAspectRatioHandle, (float) renderBufferHeight / (float) renderBufferWidth); - GLES20.glEnableVertexAttribArray(linearBlurInputTexCoordHandle); - GLES20.glVertexAttribPointer(linearBlurInputTexCoordHandle, 2, GLES20.GL_FLOAT, false, 8, textureBuffer); - GLES20.glEnableVertexAttribArray(linearBlurPositionHandle); - GLES20.glVertexAttribPointer(linearBlurPositionHandle, 2, GLES20.GL_FLOAT, false, 8, vertexInvertBuffer); - } - - GLES20.glActiveTexture(GLES20.GL_TEXTURE0); - GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, renderTexture[1]); - GLES20.glActiveTexture(GLES20.GL_TEXTURE1); - GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, renderTexture[2]); - GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4); - - return true; - } - - private Runnable drawRunnable = new Runnable() { - @Override - public void run() { - if (!initied) { - return; - } - - if (!eglContext.equals(egl10.eglGetCurrentContext()) || !eglSurface.equals(egl10.eglGetCurrentSurface(EGL10.EGL_DRAW))) { - if (!egl10.eglMakeCurrent(eglDisplay, eglSurface, eglSurface, eglContext)) { - if (BuildVars.LOGS_ENABLED) { - FileLog.e("eglMakeCurrent failed " + GLUtils.getEGLErrorString(egl10.eglGetError())); - } - return; - } - } - - GLES20.glViewport(0, 0, renderBufferWidth, renderBufferHeight); - drawEnhancePass(); - drawSharpenPass(); - drawCustomParamsPass(); - blured = drawBlurPass(); - - //onscreen draw - GLES20.glViewport(0, 0, surfaceWidth, surfaceHeight); - GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, 0); - GLES20.glClear(0); - - GLES20.glUseProgram(simpleShaderProgram); - GLES20.glActiveTexture(GLES20.GL_TEXTURE0); - GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, renderTexture[blured ? 0 : 1]); - GLES20.glUniform1i(simpleSourceImageHandle, 0); - GLES20.glEnableVertexAttribArray(simpleInputTexCoordHandle); - GLES20.glVertexAttribPointer(simpleInputTexCoordHandle, 2, GLES20.GL_FLOAT, false, 8, textureBuffer); - GLES20.glEnableVertexAttribArray(simplePositionHandle); - GLES20.glVertexAttribPointer(simplePositionHandle, 2, GLES20.GL_FLOAT, false, 8, vertexBuffer); - GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4); - egl10.eglSwapBuffers(eglDisplay, eglSurface); - } - }; - - private Bitmap getRenderBufferBitmap() { - ByteBuffer buffer = ByteBuffer.allocateDirect(renderBufferWidth * renderBufferHeight * 4); - GLES20.glReadPixels(0, 0, renderBufferWidth, renderBufferHeight, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, buffer); - Bitmap bitmap = Bitmap.createBitmap(renderBufferWidth, renderBufferHeight, Bitmap.Config.ARGB_8888); - bitmap.copyPixelsFromBuffer(buffer); - return bitmap; - } - - public Bitmap getTexture() { - if (!initied) { - return null; - } - final CountDownLatch countDownLatch = new CountDownLatch(1); - final Bitmap[] object = new Bitmap[1]; - try { - postRunnable(() -> { - GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, renderFrameBuffer[1]); - GLES20.glFramebufferTexture2D(GLES20.GL_FRAMEBUFFER, GLES20.GL_COLOR_ATTACHMENT0, GLES20.GL_TEXTURE_2D, renderTexture[blured ? 0 : 1], 0); - GLES20.glClear(0); - object[0] = getRenderBufferBitmap(); - countDownLatch.countDown(); - GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, 0); - GLES20.glClear(0); - }); - countDownLatch.await(); - } catch (Exception e) { - FileLog.e(e); - } - return object[0]; - } - - private Bitmap createBitmap(Bitmap bitmap, int w, int h, float scale) { - Matrix matrix = new Matrix(); - matrix.setScale(scale, scale); - matrix.postRotate(orientation); - return Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true); - } - - private void loadTexture(Bitmap bitmap) { - renderBufferWidth = bitmap.getWidth(); - renderBufferHeight = bitmap.getHeight(); - float maxSize = AndroidUtilities.getPhotoSize(); - if (renderBufferWidth > maxSize || renderBufferHeight > maxSize || orientation % 360 != 0) { - float scale = 1; - if (renderBufferWidth > maxSize || renderBufferHeight > maxSize) { - float scaleX = maxSize / bitmap.getWidth(); - float scaleY = maxSize / bitmap.getHeight(); - if (scaleX < scaleY) { - renderBufferWidth = (int) maxSize; - renderBufferHeight = (int) (bitmap.getHeight() * scaleX); - scale = scaleX; - } else { - renderBufferHeight = (int) maxSize; - renderBufferWidth = (int) (bitmap.getWidth() * scaleY); - scale = scaleY; - } - } - - if (orientation % 360 == 90 || orientation % 360 == 270) { - int temp = renderBufferWidth; - renderBufferWidth = renderBufferHeight; - renderBufferHeight = temp; - } - - currentBitmap = createBitmap(bitmap, renderBufferWidth, renderBufferHeight, scale); - } - GLES20.glGenFramebuffers(3, renderFrameBuffer, 0); - GLES20.glGenTextures(3, renderTexture, 0); - - GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, renderTexture[0]); - GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR); - GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR); - GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE); - GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE); - GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, renderBufferWidth, renderBufferHeight, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, null); - - GLES20.glBindTexture(GL10.GL_TEXTURE_2D, renderTexture[1]); - GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR); - GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR); - GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE); - GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE); - GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, currentBitmap, 0); - - GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, renderTexture[2]); - GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR); - GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR); - GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE); - GLES20.glTexParameteri(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE); - GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, renderBufferWidth, renderBufferHeight, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, null); - } - - public void shutdown() { - postRunnable(() -> { - finish(); - currentBitmap = null; - Looper looper = Looper.myLooper(); - if (looper != null) { - looper.quit(); - } - }); - } - - public void setSurfaceTextureSize(int width, int height) { - surfaceWidth = width; - surfaceHeight = height; - } - - @Override - public void run() { - initied = initGL(); - super.run(); - } - - public void requestRender(final boolean updateBlur) { - requestRender(updateBlur, false); - } - - public void requestRender(final boolean updateBlur, final boolean force) { - postRunnable(() -> { - if (!needUpdateBlurTexture) { - needUpdateBlurTexture = updateBlur; - } - long newTime = System.currentTimeMillis(); - if (force || Math.abs(lastRenderCallTime - newTime) > 30) { - lastRenderCallTime = newTime; - drawRunnable.run(); - //cancelRunnable(drawRunnable); - //postRunnable(drawRunnable, 30); - } - }); - } - } - - public PhotoFilterView(Context context, Bitmap bitmap, int rotation, MediaController.SavedFilterState state) { + public PhotoFilterView(Context context, VideoEditTextureView videoTextureView, Bitmap bitmap, int rotation, MediaController.SavedFilterState state, PaintingOverlay overlay) { super(context); + paintingOverlay = overlay; + + rowsCount = 0; + enhanceTool = rowsCount++; + exposureTool = rowsCount++; + contrastTool = rowsCount++; + saturationTool = rowsCount++; + warmthTool = rowsCount++; + fadeTool = rowsCount++; + highlightsTool = rowsCount++; + shadowsTool = rowsCount++; + vignetteTool = rowsCount++; + if (videoTextureView == null) { + grainTool = rowsCount++; + sharpenTool = rowsCount++; + } else { + grainTool = -1; + sharpenTool = -1; + } + tintShadowsTool = rowsCount++; + tintHighlightsTool = rowsCount++; + if (state != null) { enhanceValue = state.enhanceValue; exposureValue = state.exposureValue; @@ -1672,46 +319,56 @@ public class PhotoFilterView extends FrameLayout { bitmapToEdit = bitmap; orientation = rotation; - textureView = new TextureView(context); - addView(textureView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.TOP | Gravity.LEFT)); - textureView.setVisibility(INVISIBLE); - textureView.setSurfaceTextureListener(new TextureView.SurfaceTextureListener() { - @Override - public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) { - if (eglThread == null && surface != null) { - eglThread = new EGLThread(surface, bitmapToEdit); - eglThread.setSurfaceTextureSize(width, height); - eglThread.requestRender(true, true); + if (videoTextureView != null) { + textureView = videoTextureView; + videoTextureView.setDelegate(thread -> { + eglThread = thread; + eglThread.setFilterGLThreadDelegate(PhotoFilterView.this); + }); + } else { + ownsTextureView = true; + textureView = new TextureView(context); + addView(textureView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.TOP | Gravity.LEFT)); + textureView.setVisibility(INVISIBLE); + textureView.setSurfaceTextureListener(new TextureView.SurfaceTextureListener() { + @Override + public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) { + if (eglThread == null && surface != null) { + eglThread = new FilterGLThread(surface, bitmapToEdit, orientation); + eglThread.setFilterGLThreadDelegate(PhotoFilterView.this); + eglThread.setSurfaceTextureSize(width, height); + eglThread.requestRender(true, true, false); + } } - } - @Override - public void onSurfaceTextureSizeChanged(SurfaceTexture surface, final int width, final int height) { - if (eglThread != null) { - eglThread.setSurfaceTextureSize(width, height); - eglThread.requestRender(false, true); - eglThread.postRunnable(() -> { - if (eglThread != null) { - eglThread.requestRender(false, true); - } - }); + @Override + public void onSurfaceTextureSizeChanged(SurfaceTexture surface, final int width, final int height) { + if (eglThread != null) { + eglThread.setSurfaceTextureSize(width, height); + eglThread.requestRender(false, true, false); + eglThread.postRunnable(() -> { + if (eglThread != null) { + eglThread.requestRender(false, true, false); + } + }); + } } - } - @Override - public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) { - if (eglThread != null) { - eglThread.shutdown(); - eglThread = null; + @Override + public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) { + if (eglThread != null) { + eglThread.shutdown(); + eglThread = null; + } + return true; } - return true; - } - @Override - public void onSurfaceTextureUpdated(SurfaceTexture surface) { + @Override + public void onSurfaceTextureUpdated(SurfaceTexture surface) { - } - }); + } + }); + } blurControl = new PhotoFilterBlurControl(context); blurControl.setVisibility(INVISIBLE); @@ -1791,6 +448,9 @@ public class PhotoFilterView extends FrameLayout { curveItem.setColorFilter(null); switchMode(); }); + if (videoTextureView != null) { + blurItem.setVisibility(GONE); + } curveItem = new ImageView(context); curveItem.setScaleType(ImageView.ScaleType.CENTER); @@ -1921,7 +581,9 @@ public class PhotoFilterView extends FrameLayout { updateSelectedBlurType(); if (Build.VERSION.SDK_INT >= 21) { - ((LayoutParams) textureView.getLayoutParams()).topMargin = AndroidUtilities.statusBarHeight; + if (ownsTextureView) { + ((LayoutParams) textureView.getLayoutParams()).topMargin = AndroidUtilities.statusBarHeight; + } ((LayoutParams) curvesControl.getLayoutParams()).topMargin = AndroidUtilities.statusBarHeight; } } @@ -2000,7 +662,7 @@ public class PhotoFilterView extends FrameLayout { state.blurExcludePoint = blurExcludePoint; state.blurExcludeBlurSize = blurExcludeBlurSize; state.blurAngle = blurAngle; - return state; + return lastState = state; } public boolean hasChanges() { @@ -2027,9 +689,14 @@ public class PhotoFilterView extends FrameLayout { public void onTouch(MotionEvent event) { if (event.getActionMasked() == MotionEvent.ACTION_DOWN || event.getActionMasked() == MotionEvent.ACTION_POINTER_DOWN) { - LayoutParams layoutParams = (LayoutParams) textureView.getLayoutParams(); - if (layoutParams != null && event.getX() >= layoutParams.leftMargin && event.getY() >= layoutParams.topMargin && event.getX() <= layoutParams.leftMargin + layoutParams.width && event.getY() <= layoutParams.topMargin + layoutParams.height) { - setShowOriginal(true); + if (textureView instanceof VideoEditTextureView) { + if (((VideoEditTextureView) textureView).containsPoint(event.getX(), event.getY())) { + setShowOriginal(true); + } + } else { + if (event.getX() >= textureView.getX() && event.getY() >= textureView.getY() && event.getX() <= textureView.getX() + textureView.getWidth() && event.getY() <= textureView.getY() + textureView.getHeight()) { + setShowOriginal(true); + } } } else if (event.getActionMasked() == MotionEvent.ACTION_UP || event.getActionMasked() == MotionEvent.ACTION_POINTER_UP) { setShowOriginal(false); @@ -2079,15 +746,26 @@ public class PhotoFilterView extends FrameLayout { } public void shutdown() { - if (eglThread != null) { - eglThread.shutdown(); - eglThread = null; + if (ownsTextureView) { + if (eglThread != null) { + eglThread.shutdown(); + eglThread = null; + } + textureView.setVisibility(GONE); + } else if (textureView instanceof VideoEditTextureView) { + VideoEditTextureView videoEditTextureView = (VideoEditTextureView) textureView; + if (lastState == null) { + videoEditTextureView.setDelegate(null); + } else { + eglThread.setFilterGLThreadDelegate(FilterShaders.getFilterShadersDelegate(lastState)); + } } - textureView.setVisibility(GONE); } public void init() { - textureView.setVisibility(VISIBLE); + if (ownsTextureView) { + textureView.setVisibility(VISIBLE); + } } public Bitmap getBitmap() { @@ -2095,21 +773,22 @@ public class PhotoFilterView extends FrameLayout { } private void fixLayout(int viewWidth, int viewHeight) { - if (bitmapToEdit == null) { - return; - } - viewWidth -= AndroidUtilities.dp(28); viewHeight -= AndroidUtilities.dp(14 + 140 + 60) + (Build.VERSION.SDK_INT >= 21 ? AndroidUtilities.statusBarHeight : 0); float bitmapW; float bitmapH; - if (orientation % 360 == 90 || orientation % 360 == 270) { - bitmapW = bitmapToEdit.getHeight(); - bitmapH = bitmapToEdit.getWidth(); + if (bitmapToEdit != null) { + if (orientation % 360 == 90 || orientation % 360 == 270) { + bitmapW = bitmapToEdit.getHeight(); + bitmapH = bitmapToEdit.getWidth(); + } else { + bitmapW = bitmapToEdit.getWidth(); + bitmapH = bitmapToEdit.getHeight(); + } } else { - bitmapW = bitmapToEdit.getWidth(); - bitmapH = bitmapToEdit.getHeight(); + bitmapW = textureView.getWidth(); + bitmapH = textureView.getHeight(); } float scaleX = viewWidth / bitmapW; float scaleY = viewHeight / bitmapH; @@ -2124,15 +803,19 @@ public class PhotoFilterView extends FrameLayout { int bitmapX = (int) Math.ceil((viewWidth - bitmapW) / 2 + AndroidUtilities.dp(14)); int bitmapY = (int) Math.ceil((viewHeight - bitmapH) / 2 + AndroidUtilities.dp(14) + (Build.VERSION.SDK_INT >= 21 ? AndroidUtilities.statusBarHeight : 0)); - LayoutParams layoutParams = (LayoutParams) textureView.getLayoutParams(); - layoutParams.leftMargin = bitmapX; - layoutParams.topMargin = bitmapY; - layoutParams.width = (int) bitmapW; - layoutParams.height = (int) bitmapH; - curvesControl.setActualArea(bitmapX, bitmapY - (Build.VERSION.SDK_INT >= 21 ? AndroidUtilities.statusBarHeight : 0), layoutParams.width, layoutParams.height); + int width = (int) bitmapW; + int height = (int) bitmapH; + if (ownsTextureView) { + LayoutParams layoutParams = (LayoutParams) textureView.getLayoutParams(); + layoutParams.leftMargin = bitmapX; + layoutParams.topMargin = bitmapY; + layoutParams.width = width; + layoutParams.height = height; + } + curvesControl.setActualArea(bitmapX, bitmapY - (Build.VERSION.SDK_INT >= 21 ? AndroidUtilities.statusBarHeight : 0), width, height); - blurControl.setActualAreaSize(layoutParams.width, layoutParams.height); - layoutParams = (LayoutParams) blurControl.getLayoutParams(); + blurControl.setActualAreaSize(width, height); + LayoutParams layoutParams = (LayoutParams) blurControl.getLayoutParams(); layoutParams.height = viewHeight + AndroidUtilities.dp(38); layoutParams = (LayoutParams) curvesControl.getLayoutParams(); @@ -2151,63 +834,90 @@ public class PhotoFilterView extends FrameLayout { } } + @Override + protected boolean drawChild(Canvas canvas, View child, long drawingTime) { + boolean result = super.drawChild(canvas, child, drawingTime); + if (paintingOverlay != null && child == textureView) { + canvas.save(); + canvas.translate(textureView.getLeft(), textureView.getTop()); + float scale = textureView.getMeasuredWidth() / (float) paintingOverlay.getMeasuredWidth(); + canvas.scale(scale, scale); + paintingOverlay.draw(canvas); + canvas.restore(); + } + return result; + } + @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { fixLayout(MeasureSpec.getSize(widthMeasureSpec), MeasureSpec.getSize(heightMeasureSpec)); super.onMeasure(widthMeasureSpec, heightMeasureSpec); } - private float getShadowsValue() { + @Override + public float getShadowsValue() { return (shadowsValue * 0.55f + 100.0f) / 100.0f; } - private float getHighlightsValue() { + @Override + public float getHighlightsValue() { return (highlightsValue * 0.75f + 100.0f) / 100.0f; } - private float getEnhanceValue() { + @Override + public float getEnhanceValue() { return (enhanceValue / 100.0f); } - private float getExposureValue() { + @Override + public float getExposureValue() { return (exposureValue / 100.0f); } - private float getContrastValue() { + @Override + public float getContrastValue() { return (contrastValue / 100.0f) * 0.3f + 1; } - private float getWarmthValue() { + @Override + public float getWarmthValue() { return warmthValue / 100.0f; } - private float getVignetteValue() { + @Override + public float getVignetteValue() { return vignetteValue / 100.0f; } - private float getSharpenValue() { + @Override + public float getSharpenValue() { return 0.11f + sharpenValue / 100.0f * 0.6f; } - private float getGrainValue() { + @Override + public float getGrainValue() { return grainValue / 100.0f * 0.04f; } - private float getFadeValue() { + @Override + public float getFadeValue() { return fadeValue / 100.0f; } - private float getTintHighlightsIntensityValue() { + @Override + public float getTintHighlightsIntensityValue() { float tintHighlightsIntensity = 50.0f; return tintHighlightsColor == 0 ? 0 : tintHighlightsIntensity / 100.0f; } - private float getTintShadowsIntensityValue() { + @Override + public float getTintShadowsIntensityValue() { float tintShadowsIntensity = 50.0f; return tintShadowsColor == 0 ? 0 : tintShadowsIntensity / 100.0f; } - private float getSaturationValue() { + @Override + public float getSaturationValue() { float parameterValue = (saturationValue / 100.0f); if (parameterValue > 0) { parameterValue *= 1.05f; @@ -2215,10 +925,69 @@ public class PhotoFilterView extends FrameLayout { return parameterValue + 1; } + @Override + public int getTintHighlightsColor() { + return tintHighlightsColor; + } + + @Override + public int getTintShadowsColor() { + return tintShadowsColor; + } + + @Override + public int getBlurType() { + return blurType; + } + + @Override + public float getBlurExcludeSize() { + return blurExcludeSize; + } + + @Override + public float getBlurExcludeBlurSize() { + return blurExcludeBlurSize; + } + + @Override + public float getBlurAngle() { + return blurAngle; + } + + @Override + public Point getBlurExcludePoint() { + return blurExcludePoint; + } + + @Override + public boolean shouldShowOriginal() { + return showOriginal; + } + + @Override + public boolean shouldDrawCurvesPass() { + return !curvesToolValue.shouldBeSkipped(); + } + + @Override + public ByteBuffer fillAndGetCurveBuffer() { + curvesToolValue.fillBuffer(); + return curvesToolValue.curveBuffer; + } + public FrameLayout getToolsView() { return toolsView; } + public View getCurveControl() { + return curvesControl; + } + + public View getBlurControl() { + return blurControl; + } + public TextView getDoneTextView() { return doneTextView; } @@ -2237,7 +1006,7 @@ public class PhotoFilterView extends FrameLayout { @Override public int getItemCount() { - return 13; + return rowsCount; } @Override diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/PhotoPaintView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/PhotoPaintView.java index dcb8e3533..4d988f919 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/PhotoPaintView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/PhotoPaintView.java @@ -10,6 +10,7 @@ import android.graphics.*; import android.graphics.Rect; import android.os.Build; import android.os.Looper; +import android.text.TextUtils; import android.util.SparseArray; import android.util.TypedValue; import android.view.Gravity; @@ -31,17 +32,19 @@ import org.telegram.messenger.AndroidUtilities; import org.telegram.messenger.Bitmaps; import org.telegram.messenger.BuildVars; import org.telegram.messenger.DispatchQueue; +import org.telegram.messenger.FileLoader; import org.telegram.messenger.FileLog; import org.telegram.messenger.LocaleController; +import org.telegram.messenger.MessageObject; import org.telegram.messenger.R; import org.telegram.messenger.Utilities; +import org.telegram.messenger.VideoEditedInfo; import org.telegram.tgnet.TLRPC; import org.telegram.ui.ActionBar.ActionBar; import org.telegram.ui.ActionBar.ActionBarPopupWindow; import org.telegram.ui.ActionBar.AlertDialog; import org.telegram.ui.ActionBar.Theme; import org.telegram.ui.Components.Paint.PhotoFace; -import org.telegram.ui.Components.Paint.Views.EditTextOutline; import org.telegram.ui.Components.Paint.Views.EntitiesContainerView; import org.telegram.ui.Components.Paint.Views.EntityView; import org.telegram.ui.Components.Paint.Views.StickerView; @@ -54,13 +57,14 @@ import org.telegram.ui.Components.Paint.Swatch; import org.telegram.ui.Components.Paint.Views.ColorPicker; import org.telegram.ui.PhotoViewer; +import java.math.BigInteger; import java.util.ArrayList; @SuppressLint("NewApi") public class PhotoPaintView extends FrameLayout implements EntityView.EntityViewDelegate { private Bitmap bitmapToEdit; - private int orientation; + private Bitmap facesBitmap; private UndoStore undoStore; int currentBrush; @@ -92,8 +96,7 @@ public class PhotoPaintView extends FrameLayout implements EntityView.EntityView private float editedTextScale; private String initialText; - private boolean pickingSticker; - private StickerMasksView stickersView; + private BigInteger lcm; private ActionBarPopupWindow popupWindow; private ActionBarPopupWindow.ActionBarPopupWindowLayout popupLayout; @@ -101,33 +104,48 @@ public class PhotoPaintView extends FrameLayout implements EntityView.EntityView private Size paintingSize; - private boolean selectedStroke = true; + private float baseScale; + + private int selectedTextType = 2; private Animator colorPickerAnimator; private DispatchQueue queue; private ArrayList faces; + private boolean ignoreLayout; + + private Swatch brushSwatch; + private final static int gallery_menu_done = 1; - public PhotoPaintView(Context context, Bitmap bitmap, int rotation) { + private int originalBitmapRotation; + + public PhotoPaintView(Context context, Bitmap bitmap, Bitmap originalBitmap, int originalRotation, ArrayList entities, Runnable onInit) { super(context); queue = new DispatchQueue("Paint"); + originalBitmapRotation = originalRotation; + bitmapToEdit = bitmap; - orientation = rotation; + facesBitmap = originalBitmap; undoStore = new UndoStore(); undoStore.setDelegate(() -> colorPicker.setUndoEnabled(undoStore.canUndo())); curtainView = new FrameLayout(context); - curtainView.setBackgroundColor(0xff000000); + curtainView.setBackgroundColor(0x22000000); curtainView.setVisibility(INVISIBLE); - addView(curtainView); + addView(curtainView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); - renderView = new RenderView(context, new Painting(getPaintingSize()), bitmap, orientation); + renderView = new RenderView(context, new Painting(getPaintingSize()), bitmap); renderView.setDelegate(new RenderView.RenderViewDelegate() { + @Override + public void onFirstDraw() { + onInit.run(); + } + @Override public void onBeganDrawing() { if (currentEntityView != null) { @@ -171,8 +189,6 @@ public class PhotoPaintView extends FrameLayout implements EntityView.EntityView selectEntity(null); } }); - entitiesView.setPivotX(0); - entitiesView.setPivotY(0); addView(entitiesView); dimView = new FrameLayout(context); @@ -281,23 +297,73 @@ public class PhotoPaintView extends FrameLayout implements EntityView.EntityView textButton.setImageResource(R.drawable.photo_paint_text); textButton.setBackgroundDrawable(Theme.createSelectorDrawable(Theme.ACTION_BAR_WHITE_SELECTOR_COLOR)); toolsView.addView(textButton, LayoutHelper.createFrame(54, LayoutHelper.MATCH_PARENT, Gravity.CENTER, 56, 0, 0, 0)); - textButton.setOnClickListener(v -> createText()); + textButton.setOnClickListener(v -> createText(true)); colorPicker.setUndoEnabled(false); setCurrentSwatch(colorPicker.getSwatch(), false); updateSettingsButton(); + + if (entities != null && !entities.isEmpty()) { + for (int a = 0, N = entities.size(); a < N; a++) { + VideoEditedInfo.MediaEntity entity = entities.get(a); + EntityView view; + if (entity.type == 0) { + StickerView stickerView = createSticker(entity.parentObject, entity.document, false); + if ((entity.subType & 2) != 0) { + stickerView.mirror(); + } + view = stickerView; + ViewGroup.LayoutParams layoutParams = view.getLayoutParams(); + layoutParams.width = entity.viewWidth; + layoutParams.height = entity.viewHeight; + } else if (entity.type == 1) { + TextPaintView textPaintView = createText(false); + int type; + if ((entity.subType & 1) != 0) { + type = 0; + } else if ((entity.subType & 4) != 0) { + type = 2; + } else { + type = 1; + } + textPaintView.setType(type); + textPaintView.setText(entity.text); + Swatch swatch = textPaintView.getSwatch(); + swatch.color = entity.color; + textPaintView.setSwatch(swatch); + view = textPaintView; + } else { + continue; + } + view.setX(entity.x * paintingSize.width - entity.viewWidth * (1 - entity.scale) / 2); + view.setY(entity.y * paintingSize.height - entity.viewHeight * (1 - entity.scale) / 2); + view.setPosition(new Point(view.getX() + entity.viewWidth / 2, view.getY() + entity.viewHeight / 2)); + view.setScaleX(entity.scale); + view.setScaleY(entity.scale); + view.setRotation((float) (-entity.rotation / Math.PI * 180)); + } + } + entitiesView.setVisibility(INVISIBLE); } - @Override - public boolean onTouchEvent(MotionEvent event) { + public void onResume() { + renderView.redraw(); + } + + public boolean onTouch(MotionEvent ev) { if (currentEntityView != null) { if (editingText) { closeTextEnter(true); - } - else { + } else { selectEntity(null); } } + + float x = renderView.getMeasuredWidth() / 2 + (ev.getX() - renderView.getTranslationX() - getMeasuredWidth() / 2) / renderView.getScaleX(); + float y = renderView.getMeasuredHeight() / 2 + (ev.getY() - renderView.getTranslationY() - getMeasuredHeight() / 2 + AndroidUtilities.dp(32)) / renderView.getScaleY(); + MotionEvent event = MotionEvent.obtain(0, 0, ev.getActionMasked(), x, y, 0); + renderView.onTouch(event); + event.recycle(); return true; } @@ -305,8 +371,8 @@ public class PhotoPaintView extends FrameLayout implements EntityView.EntityView if (paintingSize != null) { return paintingSize; } - float width = isSidewardOrientation() ? bitmapToEdit.getHeight() : bitmapToEdit.getWidth(); - float height = isSidewardOrientation() ? bitmapToEdit.getWidth() : bitmapToEdit.getHeight(); + float width = bitmapToEdit.getWidth(); + float height = bitmapToEdit.getHeight(); Size size = new Size(width, height); size.width = 1280; @@ -319,10 +385,6 @@ public class PhotoPaintView extends FrameLayout implements EntityView.EntityView return size; } - private boolean isSidewardOrientation() { - return orientation % 360 == 90 || orientation % 360 == 270; - } - private void updateSettingsButton() { int resource = R.drawable.photo_paint_brush; if (currentEntityView != null) { @@ -334,6 +396,10 @@ public class PhotoPaintView extends FrameLayout implements EntityView.EntityView paintButton.setImageResource(R.drawable.photo_paint); paintButton.setColorFilter(null); } else { + if (brushSwatch != null) { + setCurrentSwatch(brushSwatch, true); + brushSwatch = null; + } paintButton.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_dialogFloatingButton), PorterDuff.Mode.MULTIPLY)); paintButton.setImageResource(R.drawable.photo_paint); } @@ -351,8 +417,11 @@ public class PhotoPaintView extends FrameLayout implements EntityView.EntityView } public void init() { + entitiesView.setVisibility(VISIBLE); renderView.setVisibility(View.VISIBLE); - detectFaces(); + if (facesBitmap != null) { + detectFaces(); + } } public void shutdown() { @@ -385,39 +454,106 @@ public class PhotoPaintView extends FrameLayout implements EntityView.EntityView } private boolean hasChanges() { - return undoStore.canUndo() || entitiesView.entitiesCount() > 0; + return undoStore.canUndo(); } - public Bitmap getBitmap() { + public Bitmap getBitmap(ArrayList entities, Bitmap[] thumbBitmap) { Bitmap bitmap = renderView.getResultBitmap(); + lcm = BigInteger.ONE; if (bitmap != null && entitiesView.entitiesCount() > 0) { - android.graphics.Canvas canvas = new android.graphics.Canvas(bitmap); - - for (int i = 0; i < entitiesView.getChildCount(); i++) { + Canvas canvas = null; + int count = entitiesView.getChildCount(); + for (int i = 0; i < count; i++) { View v = entitiesView.getChildAt(i); - canvas.save(); - if (v instanceof EntityView) { - EntityView entity = (EntityView) v; - - canvas.translate(entity.getPosition().x, entity.getPosition().y); - canvas.scale(v.getScaleX(), v.getScaleY()); - canvas.rotate(v.getRotation()); - canvas.translate(-entity.getWidth() / 2, -entity.getHeight() / 2); - - if (v instanceof TextPaintView) { - Bitmap b = Bitmaps.createBitmap(v.getWidth(), v.getHeight(), Bitmap.Config.ARGB_8888); - Canvas c = new Canvas(b); - v.draw(c); - canvas.drawBitmap(b, null, new Rect(0, 0, b.getWidth(), b.getHeight()), null); - try { - c.setBitmap(null); - } catch (Exception e) { - FileLog.e(e); + if (!(v instanceof EntityView)) { + continue; + } + EntityView entity = (EntityView) v; + Point position = entity.getPosition(); + if (entities != null) { + VideoEditedInfo.MediaEntity mediaEntity = new VideoEditedInfo.MediaEntity(); + if (entity instanceof TextPaintView) { + mediaEntity.type = 1; + TextPaintView textPaintView = (TextPaintView) entity; + mediaEntity.text = textPaintView.getText(); + int type = textPaintView.getType(); + if (type == 0) { + mediaEntity.subType |= 1; + } else if (type == 2) { + mediaEntity.subType |= 4; + } + mediaEntity.color = textPaintView.getSwatch().color; + mediaEntity.fontSize = textPaintView.getTextSize(); + } else if (entity instanceof StickerView) { + mediaEntity.type = 0; + StickerView stickerView = (StickerView) entity; + Size size = stickerView.getBaseSize(); + mediaEntity.width = size.width; + mediaEntity.height = size.height; + mediaEntity.document = stickerView.getSticker(); + mediaEntity.parentObject = stickerView.getParentObject(); + TLRPC.Document document = stickerView.getSticker(); + mediaEntity.text = FileLoader.getPathToAttach(document, true).getAbsolutePath(); + if (MessageObject.isAnimatedStickerDocument(document, true)) { + mediaEntity.subType |= 1; + long duration = stickerView.getDuration(); + if (duration != 0) { + BigInteger x = BigInteger.valueOf(duration); + lcm = lcm.multiply(x).divide(lcm.gcd(x)); + } + } + if (stickerView.isMirrored()) { + mediaEntity.subType |= 2; } - b.recycle(); } else { - v.draw(canvas); + continue; } + entities.add(mediaEntity); + float scaleX = v.getScaleX(); + float scaleY = v.getScaleY(); + float x = v.getX(); + float y = v.getY(); + mediaEntity.viewWidth = v.getWidth(); + mediaEntity.viewHeight = v.getHeight(); + mediaEntity.width = v.getWidth() * scaleX / (float) entitiesView.getMeasuredWidth(); + mediaEntity.height = v.getHeight() * scaleY / (float) entitiesView.getMeasuredHeight(); + mediaEntity.x = (x + v.getWidth() * (1 - scaleX) / 2) / entitiesView.getMeasuredWidth(); + mediaEntity.y = (y + v.getHeight() * (1 - scaleY) / 2) / entitiesView.getMeasuredHeight(); + mediaEntity.rotation = (float) (-v.getRotation() * (Math.PI / 180)); + + mediaEntity.textViewX = (x + v.getWidth() / 2) / (float) entitiesView.getMeasuredWidth(); + mediaEntity.textViewY = (y + v.getHeight() / 2) / (float) entitiesView.getMeasuredHeight(); + mediaEntity.textViewWidth = mediaEntity.viewWidth / (float) entitiesView.getMeasuredWidth(); + mediaEntity.textViewHeight = mediaEntity.viewHeight / (float) entitiesView.getMeasuredHeight(); + mediaEntity.scale = scaleX; + + if (thumbBitmap[0] == null) { + thumbBitmap[0] = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), bitmap.getConfig()); + canvas = new Canvas(thumbBitmap[0]); + canvas.drawBitmap(bitmap, 0, 0, null); + } + } + if (canvas == null) { + canvas = new Canvas(bitmap); + } + canvas.save(); + canvas.translate(position.x, position.y); + canvas.scale(v.getScaleX(), v.getScaleY()); + canvas.rotate(v.getRotation()); + canvas.translate(-entity.getWidth() / 2, -entity.getHeight() / 2); + if (v instanceof TextPaintView) { + Bitmap b = Bitmaps.createBitmap(v.getWidth(), v.getHeight(), Bitmap.Config.ARGB_8888); + Canvas c = new Canvas(b); + v.draw(c); + canvas.drawBitmap(b, null, new Rect(0, 0, b.getWidth(), b.getHeight()), null); + try { + c.setBitmap(null); + } catch (Exception e) { + FileLog.e(e); + } + b.recycle(); + } else { + v.draw(canvas); } canvas.restore(); } @@ -425,13 +561,14 @@ public class PhotoPaintView extends FrameLayout implements EntityView.EntityView return bitmap; } + public long getLcm() { + return lcm.longValue(); + } + public void maybeShowDismissalAlert(PhotoViewer photoViewer, Activity parentActivity, final Runnable okRunnable) { if (editingText) { closeTextEnter(false); return; - } else if (pickingSticker) { - closeStickersView(); - return; } if (hasChanges()) { @@ -454,6 +591,9 @@ public class PhotoPaintView extends FrameLayout implements EntityView.EntityView renderView.setBrushSize(swatch.brushWeight); if (updateInterface) { + if (brushSwatch == null && paintButton.getColorFilter() != null) { + brushSwatch = colorPicker.getSwatch(); + } colorPicker.setSwatch(swatch); } @@ -466,9 +606,9 @@ public class PhotoPaintView extends FrameLayout implements EntityView.EntityView Animator animator; if (visible) { dimView.setVisibility(VISIBLE); - animator = ObjectAnimator.ofFloat(dimView, "alpha", 0.0f, 1.0f); + animator = ObjectAnimator.ofFloat(dimView, View.ALPHA, 0.0f, 1.0f); } else { - animator = ObjectAnimator.ofFloat(dimView, "alpha", 1.0f, 0.0f); + animator = ObjectAnimator.ofFloat(dimView, View.ALPHA, 1.0f, 0.0f); } animator.addListener(new AnimatorListenerAdapter() { @Override @@ -497,9 +637,9 @@ public class PhotoPaintView extends FrameLayout implements EntityView.EntityView if (visible) { textDimView.setVisibility(VISIBLE); - animator = ObjectAnimator.ofFloat(textDimView, "alpha", 0.0f, 1.0f); + animator = ObjectAnimator.ofFloat(textDimView, View.ALPHA, 0.0f, 1.0f); } else { - animator = ObjectAnimator.ofFloat(textDimView, "alpha", 1.0f, 0.0f); + animator = ObjectAnimator.ofFloat(textDimView, View.ALPHA, 1.0f, 0.0f); } animator.addListener(new AnimatorListenerAdapter() { @Override @@ -518,6 +658,7 @@ public class PhotoPaintView extends FrameLayout implements EntityView.EntityView @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + ignoreLayout = true; int width = MeasureSpec.getSize(widthMeasureSpec); int height = MeasureSpec.getSize(heightMeasureSpec); @@ -528,8 +669,8 @@ public class PhotoPaintView extends FrameLayout implements EntityView.EntityView int fullHeight = AndroidUtilities.displaySize.y - ActionBar.getCurrentActionBarHeight(); int maxHeight = fullHeight - AndroidUtilities.dp(48); if (bitmapToEdit != null) { - bitmapW = isSidewardOrientation() ? bitmapToEdit.getHeight() : bitmapToEdit.getWidth(); - bitmapH = isSidewardOrientation() ? bitmapToEdit.getWidth() : bitmapToEdit.getHeight(); + bitmapW = bitmapToEdit.getWidth(); + bitmapH = bitmapToEdit.getHeight(); } else { bitmapW = width; bitmapH = height - ActionBar.getCurrentActionBarHeight() - AndroidUtilities.dp(48); @@ -543,14 +684,20 @@ public class PhotoPaintView extends FrameLayout implements EntityView.EntityView } renderView.measure(MeasureSpec.makeMeasureSpec((int) renderWidth, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec((int) renderHeight, MeasureSpec.EXACTLY)); + + baseScale = renderWidth / paintingSize.width; + entitiesView.setScaleX(baseScale); + entitiesView.setScaleY(baseScale); entitiesView.measure(MeasureSpec.makeMeasureSpec((int) paintingSize.width, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec((int) paintingSize.height, MeasureSpec.EXACTLY)); dimView.measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(maxHeight, MeasureSpec.AT_MOST)); - selectionContainerView.measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(maxHeight, MeasureSpec.EXACTLY)); + if (currentEntityView != null) { + currentEntityView.updateSelectionView(); + } + selectionContainerView.measure(MeasureSpec.makeMeasureSpec((int) renderWidth, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec((int) renderHeight, MeasureSpec.EXACTLY)); colorPicker.measure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(maxHeight, MeasureSpec.EXACTLY)); toolsView.measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(48), MeasureSpec.EXACTLY)); - if (stickersView != null) { - stickersView.measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(AndroidUtilities.displaySize.y, MeasureSpec.EXACTLY)); - } + curtainView.measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(maxHeight, MeasureSpec.EXACTLY)); + ignoreLayout = false; } @Override @@ -562,46 +709,28 @@ public class PhotoPaintView extends FrameLayout implements EntityView.EntityView int actionBarHeight = ActionBar.getCurrentActionBarHeight(); int actionBarHeight2 = ActionBar.getCurrentActionBarHeight() + status; - float bitmapW; - float bitmapH; int maxHeight = AndroidUtilities.displaySize.y - actionBarHeight - AndroidUtilities.dp(48); - if (bitmapToEdit != null) { - bitmapW = isSidewardOrientation() ? bitmapToEdit.getHeight() : bitmapToEdit.getWidth(); - bitmapH = isSidewardOrientation() ? bitmapToEdit.getWidth() : bitmapToEdit.getHeight(); - } else { - bitmapW = width; - bitmapH = height - actionBarHeight - AndroidUtilities.dp(48); - } - - float renderWidth = width; - float renderHeight = (float) Math.floor(renderWidth * bitmapH / bitmapW); - if (renderHeight > maxHeight) { - renderHeight = maxHeight; - renderWidth = (float) Math.floor(renderHeight * bitmapW / bitmapH); - } int x = (int) Math.ceil((width - renderView.getMeasuredWidth()) / 2); int y = actionBarHeight2 + (height - actionBarHeight2 - AndroidUtilities.dp(48) - renderView.getMeasuredHeight()) / 2 - ActionBar.getCurrentActionBarHeight() + AndroidUtilities.dp(8); renderView.layout(x, y, x + renderView.getMeasuredWidth(), y + renderView.getMeasuredHeight()); - - float scale = renderWidth / paintingSize.width; - entitiesView.setScaleX(scale); - entitiesView.setScaleY(scale); - entitiesView.layout(x, y, x + entitiesView.getMeasuredWidth(), y + entitiesView.getMeasuredHeight()); + int x2 = x + (renderView.getMeasuredWidth() - entitiesView.getMeasuredWidth()) / 2; + int y2 = y + (renderView.getMeasuredHeight() - entitiesView.getMeasuredHeight()) / 2; + entitiesView.layout(x2, y2, x2 + entitiesView.getMeasuredWidth(), y2 + entitiesView.getMeasuredHeight()); dimView.layout(0, status, dimView.getMeasuredWidth(), status + dimView.getMeasuredHeight()); - selectionContainerView.layout(0, status, selectionContainerView.getMeasuredWidth(), status + selectionContainerView.getMeasuredHeight()); + selectionContainerView.layout(x, y, x + selectionContainerView.getMeasuredWidth(), y + selectionContainerView.getMeasuredHeight()); colorPicker.layout(0, actionBarHeight2, colorPicker.getMeasuredWidth(), actionBarHeight2 + colorPicker.getMeasuredHeight()); toolsView.layout(0, height - toolsView.getMeasuredHeight(), toolsView.getMeasuredWidth(), height); - curtainView.layout(0, 0, width, maxHeight); - if (stickersView != null) { - stickersView.layout(0, status, stickersView.getMeasuredWidth(), status + stickersView.getMeasuredHeight()); - } + curtainView.layout(0, y, curtainView.getMeasuredWidth(), y + curtainView.getMeasuredHeight()); + } - if (currentEntityView != null) { - currentEntityView.updateSelectionView(); //TODO this is bug - currentEntityView.setOffset(entitiesView.getLeft() - selectionContainerView.getLeft(), entitiesView.getTop() - selectionContainerView.getTop()); + @Override + public void requestLayout() { + if (ignoreLayout) { + return; } + super.requestLayout(); } @Override @@ -634,7 +763,6 @@ public class PhotoPaintView extends FrameLayout implements EntityView.EntityView } else { final float minimalDistance = 100.0f; Point position = centerPositionForEntity(); - while (true) { boolean occupied = false; for (int index = 0; index < entitiesView.getChildCount(); index++) { @@ -649,12 +777,12 @@ public class PhotoPaintView extends FrameLayout implements EntityView.EntityView } } - if (!occupied) + if (!occupied) { break; - else + } else { position = new Point(position.x + offset, position.y + offset); + } } - return position; } } @@ -682,13 +810,35 @@ public class PhotoPaintView extends FrameLayout implements EntityView.EntityView return result; } + public void setTransform(float scale, float trX, float trY) { + for (int a = 0; a < 3; a++) { + View view; + if (a == 0) { + view = entitiesView; + view.setScaleX(baseScale * scale); + view.setScaleY(baseScale * scale); + } else { + if (a == 1) { + view = selectionContainerView; + } else { + view = renderView; + } + view.setScaleX(scale); + view.setScaleY(scale); + } + view.setTranslationX(trX); + view.setTranslationY(trY); + } + } + private boolean selectEntity(EntityView entityView) { boolean changed = false; if (currentEntityView != null) { if (currentEntityView == entityView) { - if (!editingText) + if (!editingText) { showMenuForEntity(currentEntityView); + } return true; } else { currentEntityView.deselect(); @@ -696,7 +846,14 @@ public class PhotoPaintView extends FrameLayout implements EntityView.EntityView changed = true; } + EntityView oldEntity = currentEntityView; currentEntityView = entityView; + if (oldEntity instanceof TextPaintView) { + TextPaintView textPaintView = (TextPaintView) oldEntity; + if (TextUtils.isEmpty(textPaintView.getText())) { + removeEntity(oldEntity); + } + } if (currentEntityView != null) { currentEntityView.select(selectionContainerView); @@ -728,8 +885,9 @@ public class PhotoPaintView extends FrameLayout implements EntityView.EntityView } private void duplicateSelectedEntity() { - if (currentEntityView == null) + if (currentEntityView == null) { return; + } EntityView entityView = null; Point position = startPositionRelativeToEntity(currentEntityView); @@ -754,49 +912,15 @@ public class PhotoPaintView extends FrameLayout implements EntityView.EntityView } private void openStickersView() { - if (stickersView != null && stickersView.getVisibility() == VISIBLE) { - return; - } - pickingSticker = true; - - if (stickersView == null) { - stickersView = new StickerMasksView(getContext()); - stickersView.setListener(new StickerMasksView.Listener() { - @Override - public void onStickerSelected(Object parentObject, TLRPC.Document sticker) { - closeStickersView(); - createSticker(parentObject, sticker); - } - - @Override - public void onTypeChanged() { - - } - }); - addView(stickersView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.LEFT | Gravity.TOP)); - } - - stickersView.setVisibility(VISIBLE); - Animator a = ObjectAnimator.ofFloat(stickersView, "alpha", 0.0f, 1.0f); - a.setDuration(200); - a.start(); + StickerMasksAlert stickerMasksAlert = new StickerMasksAlert(getContext(), facesBitmap == null); + stickerMasksAlert.setDelegate((parentObject, sticker) -> createSticker(parentObject, sticker, true)); + stickerMasksAlert.setOnDismissListener(dialog -> onOpenCloseStickersAlert(false)); + stickerMasksAlert.show(); + onOpenCloseStickersAlert(true); } - private void closeStickersView() { - if (stickersView == null || stickersView.getVisibility() != VISIBLE) { - return; - } - pickingSticker = false; + protected void onOpenCloseStickersAlert(boolean open) { - Animator a = ObjectAnimator.ofFloat(stickersView, "alpha", 1.0f, 0.0f); - a.setDuration(200); - a.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animator) { - stickersView.setVisibility(GONE); - } - }); - a.start(); } private Size baseStickerSize() { @@ -808,13 +932,16 @@ public class PhotoPaintView extends FrameLayout implements EntityView.EntityView undoStore.registerUndo(entityView.getUUID(), () -> removeEntity(entityView)); } - private void createSticker(Object parentObject, TLRPC.Document sticker) { + private StickerView createSticker(Object parentObject, TLRPC.Document sticker, boolean select) { StickerPosition position = calculateStickerPosition(sticker); StickerView view = new StickerView(getContext(), position.position, position.angle, position.scale, baseStickerSize(), sticker, parentObject); view.setDelegate(this); entitiesView.addView(view); - registerRemovalUndo(view); - selectEntity(view); + if (select) { + registerRemovalUndo(view); + selectEntity(view); + } + return view; } private void mirrorSticker() { @@ -827,20 +954,29 @@ public class PhotoPaintView extends FrameLayout implements EntityView.EntityView return (int) (getPaintingSize().width / 9); } - private void createText() { + private TextPaintView createText(boolean select) { Swatch currentSwatch = colorPicker.getSwatch(); - Swatch whiteSwatch = new Swatch(Color.WHITE, 1.0f, currentSwatch.brushWeight); - Swatch blackSwatch = new Swatch(Color.BLACK, 0.85f, currentSwatch.brushWeight); - setCurrentSwatch(selectedStroke ? blackSwatch : whiteSwatch, true); + Swatch swatch; + if (selectedTextType == 0) { + swatch = new Swatch(Color.BLACK, 0.85f, currentSwatch.brushWeight); + } else if (selectedTextType == 1) { + swatch = new Swatch(Color.WHITE, 1.0f, currentSwatch.brushWeight); + } else { + swatch = new Swatch(Color.WHITE, 1.0f, currentSwatch.brushWeight); + } - TextPaintView view = new TextPaintView(getContext(), startPositionRelativeToEntity(null), baseFontSize(), "", colorPicker.getSwatch(), selectedStroke); + TextPaintView view = new TextPaintView(getContext(), startPositionRelativeToEntity(null), baseFontSize(), "", swatch, selectedTextType); view.setDelegate(this); view.setMaxWidth((int) (getPaintingSize().width - 20)); entitiesView.addView(view, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT)); - registerRemovalUndo(view); - selectEntity(view); - editSelectedTextEntity(); + if (select) { + registerRemovalUndo(view); + selectEntity(view); + editSelectedTextEntity(); + } + setCurrentSwatch(swatch, true); + return view; } private void editSelectedTextEntity() { @@ -914,18 +1050,18 @@ public class PhotoPaintView extends FrameLayout implements EntityView.EntityView renderView.setBrush(brushes[currentBrush = brush]); } - private void setStroke(boolean stroke) { - selectedStroke = stroke; + private void setType(int type) { + selectedTextType = type; if (currentEntityView instanceof TextPaintView) { Swatch currentSwatch = colorPicker.getSwatch(); - if (stroke && currentSwatch.color == Color.WHITE) { + if (type == 0 && currentSwatch.color == Color.WHITE) { Swatch blackSwatch = new Swatch(Color.BLACK, 0.85f, currentSwatch.brushWeight); setCurrentSwatch(blackSwatch, true); - } else if (!stroke && currentSwatch.color == Color.BLACK) { + } else if ((type == 1 || type == 2) && currentSwatch.color == Color.BLACK) { Swatch blackSwatch = new Swatch(Color.WHITE, 1.0f, currentSwatch.brushWeight); setCurrentSwatch(blackSwatch, true); } - ((TextPaintView) currentEntityView).setStroke(stroke); + ((TextPaintView) currentEntityView).setType(type); } } @@ -1053,40 +1189,40 @@ public class PhotoPaintView extends FrameLayout implements EntityView.EntityView }, this, Gravity.RIGHT | Gravity.BOTTOM, 0, AndroidUtilities.dp(48)); } - private FrameLayout buttonForText(final boolean stroke, String text, boolean selected) { - FrameLayout button = new FrameLayout(getContext()) { + private LinearLayout buttonForText(int type, String text, int icon, boolean selected) { + LinearLayout button = new LinearLayout(getContext()) { @Override public boolean onInterceptTouchEvent(MotionEvent ev) { return true; } }; + button.setOrientation(LinearLayout.HORIZONTAL); button.setBackgroundDrawable(Theme.getSelectorDrawable(false)); button.setOnClickListener(v -> { - setStroke(stroke); + setType(type); if (popupWindow != null && popupWindow.isShowing()) { popupWindow.dismiss(true); } }); - EditTextOutline textView = new EditTextOutline(getContext()); - textView.setBackgroundColor(Color.TRANSPARENT); - textView.setEnabled(false); - textView.setStrokeWidth(AndroidUtilities.dp(3)); - textView.setTextColor(stroke ? Color.WHITE : Color.BLACK); - textView.setStrokeColor(stroke ? Color.BLACK : Color.TRANSPARENT); - textView.setPadding(AndroidUtilities.dp(2), 0, AndroidUtilities.dp(2), 0); - textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 18); - textView.setTypeface(null, Typeface.BOLD); - textView.setTag(stroke); + ImageView imageView = new ImageView(getContext()); + imageView.setScaleType(ImageView.ScaleType.CENTER); + imageView.setImageResource(icon); + imageView.setColorFilter(Theme.getColor(Theme.key_actionBarDefaultSubmenuItem)); + button.addView(imageView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT | Gravity.CENTER_VERTICAL, 16, 0, 16, 0)); + + TextView textView = new TextView(getContext()); + textView.setTextColor(Theme.getColor(Theme.key_actionBarDefaultSubmenuItem)); + textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); textView.setText(text); - button.addView(textView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT | Gravity.CENTER_VERTICAL, 46, 0, 16, 0)); + button.addView(textView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT | Gravity.CENTER_VERTICAL, 0, 0, 16, 0)); if (selected) { ImageView check = new ImageView(getContext()); - check.setImageResource(R.drawable.ic_ab_done); + check.setImageResource(R.drawable.msg_text_check); check.setScaleType(ImageView.ScaleType.CENTER); - check.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_dialogFloatingButton), PorterDuff.Mode.MULTIPLY)); + check.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_radioBackgroundChecked), PorterDuff.Mode.MULTIPLY)); button.addView(check, LayoutHelper.createFrame(50, LayoutHelper.MATCH_PARENT)); } @@ -1095,21 +1231,21 @@ public class PhotoPaintView extends FrameLayout implements EntityView.EntityView private void showTextSettings() { showPopup(() -> { - View outline = buttonForText(true, LocaleController.getString("PaintOutlined", R.string.PaintOutlined), selectedStroke); - popupLayout.addView(outline); - - LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) outline.getLayoutParams(); - layoutParams.width = LayoutHelper.MATCH_PARENT; - layoutParams.height = AndroidUtilities.dp(48); - outline.setLayoutParams(layoutParams); - - View regular = buttonForText(false, LocaleController.getString("PaintRegular", R.string.PaintRegular), !selectedStroke); - popupLayout.addView(regular); - - layoutParams = (LinearLayout.LayoutParams) regular.getLayoutParams(); - layoutParams.width = LayoutHelper.MATCH_PARENT; - layoutParams.height = AndroidUtilities.dp(48); - regular.setLayoutParams(layoutParams); + for (int a = 0; a < 3; a++) { + String text; + int icon; + if (a == 0) { + text = LocaleController.getString("PaintOutlined", R.string.PaintOutlined); + icon = R.drawable.msg_text_outlined; + } else if (a == 1) { + text = LocaleController.getString("PaintRegular", R.string.PaintRegular); + icon = R.drawable.msg_text_regular; + } else { + text = LocaleController.getString("PaintFramed", R.string.PaintFramed); + icon = R.drawable.msg_text_framed; + } + popupLayout.addView(buttonForText(a, text, icon, selectedTextType == a), LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48)); + } }, this, Gravity.RIGHT | Gravity.BOTTOM, 0, AndroidUtilities.dp(48)); } @@ -1166,7 +1302,7 @@ public class PhotoPaintView extends FrameLayout implements EntityView.EntityView } private int getFrameRotation() { - switch (orientation) { + switch (originalBitmapRotation) { case 90: { return Frame.ROTATION_90; } @@ -1185,6 +1321,10 @@ public class PhotoPaintView extends FrameLayout implements EntityView.EntityView } } + private boolean isSidewardOrientation() { + return originalBitmapRotation % 360 == 90 || originalBitmapRotation % 360 == 270; + } + private void detectFaces() { queue.postRunnable(() -> { FaceDetector faceDetector = null; @@ -1200,7 +1340,7 @@ public class PhotoPaintView extends FrameLayout implements EntityView.EntityView return; } - Frame frame = new Frame.Builder().setBitmap(bitmapToEdit).setRotation(getFrameRotation()).build(); + Frame frame = new Frame.Builder().setBitmap(facesBitmap).setRotation(getFrameRotation()).build(); SparseArray faces; try { faces = faceDetector.detect(frame); @@ -1213,7 +1353,7 @@ public class PhotoPaintView extends FrameLayout implements EntityView.EntityView for (int i = 0; i < faces.size(); i++) { int key = faces.keyAt(i); Face f = faces.get(key); - PhotoFace face = new PhotoFace(f, bitmapToEdit, targetSize, isSidewardOrientation()); + PhotoFace face = new PhotoFace(f, facesBitmap, targetSize, isSidewardOrientation()); if (face.isSufficient()) { result.add(face); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ProfileGalleryView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ProfileGalleryView.java index f2bb2cade..f1ade92e9 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ProfileGalleryView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ProfileGalleryView.java @@ -9,7 +9,6 @@ import android.graphics.Color; import android.graphics.Paint; import android.graphics.PointF; import android.util.SparseArray; -import android.view.GestureDetector; import android.view.MotionEvent; import android.view.View; import android.view.ViewConfiguration; @@ -55,7 +54,7 @@ public class ProfileGalleryView extends CircularViewPager implements Notificatio private final SparseArray radialProgresses = new SparseArray<>(); - private class Item { + private static class Item { private BackupImageView imageView; } @@ -133,12 +132,13 @@ public class ProfileGalleryView extends CircularViewPager implements Notificatio } else if (action == MotionEvent.ACTION_MOVE) { final float dx = ev.getX() - downPoint.x; final float dy = ev.getY() - downPoint.y; - if (Math.abs(dy) >= touchSlop || Math.abs(dx) >= touchSlop) { + boolean move = Math.abs(dy) >= touchSlop || Math.abs(dx) >= touchSlop; + if (move) { isDownReleased = true; callback.onRelease(); } if (isSwipingViewPager && isScrollingListView) { - if (Math.abs(dy) >= touchSlop || Math.abs(dx) >= touchSlop) { + if (move) { if (Math.abs(dy) > Math.abs(dx)) { isSwipingViewPager = false; final MotionEvent cancelEvent = MotionEvent.obtain(ev); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/RLottieDrawable.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/RLottieDrawable.java index 0cf7b2bd6..dc0526463 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/RLottieDrawable.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/RLottieDrawable.java @@ -24,6 +24,7 @@ import android.view.View; import org.telegram.messenger.AndroidUtilities; import org.telegram.messenger.ApplicationLoader; +import org.telegram.messenger.DispatchQueuePool; import org.telegram.messenger.FileLog; import org.telegram.messenger.R; @@ -33,32 +34,34 @@ import java.io.InputStream; import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.HashMap; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; +import java.util.concurrent.CountDownLatch; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; public class RLottieDrawable extends BitmapDrawable implements Animatable { - private static native long create(String src, int w, int h, int[] params, boolean precache, int[] colorReplacement, boolean limitFps); + public static native long create(String src, int w, int h, int[] params, boolean precache, int[] colorReplacement, boolean limitFps); private static native long createWithJson(String json, String name, int[] params, int[] colorReplacement); - private static native void destroy(long ptr); + public static native void destroy(long ptr); private static native void setLayerColor(long ptr, String layer, int color); private static native void replaceColors(long ptr, int[] colorReplacement); - private static native int getFrame(long ptr, int frame, Bitmap bitmap, int w, int h, int stride); + public static native int getFrame(long ptr, int frame, Bitmap bitmap, int w, int h, int stride); private static native void createCache(long ptr, int w, int h); private int width; private int height; private final int[] metaData = new int[3]; private int timeBetweenFrames; + private int customEndFrame = -1; + private boolean playInDirectionOfCustomEndFrame; private int[] newReplaceColors; private int[] pendingReplaceColors; private HashMap newColorUpdates = new HashMap<>(); private volatile HashMap pendingColorUpdates = new HashMap<>(); private HashMap vibrationPattern; + private WeakReference frameReadyCallback; private WeakReference onFinishCallback; private int finishFrame; @@ -78,6 +81,9 @@ public class RLottieDrawable extends BitmapDrawable implements Animatable { private volatile Bitmap renderingBitmap; private volatile Bitmap nextRenderingBitmap; private volatile Bitmap backgroundBitmap; + private boolean waitingForNextTask; + + private CountDownLatch frameWaitSync; private boolean destroyWhenDone; private boolean decodeSingleFrame; @@ -107,7 +113,7 @@ public class RLottieDrawable extends BitmapDrawable implements Animatable { private static ThreadLocal bufferLocal = new ThreadLocal<>(); private ArrayList> parentViews = new ArrayList<>(); - private static ExecutorService loadFrameRunnableQueue = Executors.newCachedThreadPool(); + private static DispatchQueuePool loadFrameRunnableQueue = new DispatchQueuePool(4); private static ThreadPoolExecutor lottieCacheGenerateQueue; private Runnable uiRunnableNoFrame = new Runnable() { @@ -189,6 +195,7 @@ public class RLottieDrawable extends BitmapDrawable implements Animatable { recycleResources(); return; } + waitingForNextTask = true; if (!hasParentView()) { stop(); } @@ -222,6 +229,9 @@ public class RLottieDrawable extends BitmapDrawable implements Animatable { return; } if (nativePtr == 0 || isDice == 2 && secondNativePtr == 0) { + if (frameWaitSync != null) { + frameWaitSync.countDown(); + } uiHandler.post(uiRunnableNoFrame); return; } @@ -262,6 +272,9 @@ public class RLottieDrawable extends BitmapDrawable implements Animatable { int result = getFrame(ptrToUse, currentFrame, backgroundBitmap, width, height, backgroundBitmap.getRowBytes()); if (result == -1) { uiHandler.post(uiRunnableNoFrame); + if (frameWaitSync != null) { + frameWaitSync.countDown(); + } return; } if (metaData[2] != 0) { @@ -288,23 +301,41 @@ public class RLottieDrawable extends BitmapDrawable implements Animatable { autoRepeatPlayCount++; } } else { - if (currentFrame + framesPerUpdates < metaData[0]) { - if (autoRepeat == 3) { + if (customEndFrame > 0 && playInDirectionOfCustomEndFrame) { + if (currentFrame > customEndFrame) { + if (currentFrame - framesPerUpdates > customEndFrame) { + currentFrame -= framesPerUpdates; + nextFrameIsLast = false; + } else { + nextFrameIsLast = true; + } + } else { + if (currentFrame + framesPerUpdates < customEndFrame) { + currentFrame += framesPerUpdates; + nextFrameIsLast = false; + } else { + nextFrameIsLast = true; + } + } + } else { + if (currentFrame + framesPerUpdates < (customEndFrame > 0 ? customEndFrame : metaData[0])) { + if (autoRepeat == 3) { + nextFrameIsLast = true; + autoRepeatPlayCount++; + } else { + currentFrame += framesPerUpdates; + nextFrameIsLast = false; + } + } else if (autoRepeat == 1) { + currentFrame = 0; + nextFrameIsLast = false; + } else if (autoRepeat == 2) { + currentFrame = 0; nextFrameIsLast = true; autoRepeatPlayCount++; } else { - currentFrame += framesPerUpdates; - nextFrameIsLast = false; + nextFrameIsLast = true; } - } else if (autoRepeat == 1) { - currentFrame = 0; - nextFrameIsLast = false; - } else if (autoRepeat == 2) { - currentFrame = 0; - nextFrameIsLast = true; - autoRepeatPlayCount++; - } else { - nextFrameIsLast = true; } } } catch (Exception e) { @@ -312,6 +343,9 @@ public class RLottieDrawable extends BitmapDrawable implements Animatable { } } uiHandler.post(uiRunnable); + if (frameWaitSync != null) { + frameWaitSync.countDown(); + } } }; @@ -472,6 +506,25 @@ public class RLottieDrawable extends BitmapDrawable implements Animatable { return new String(readBuffer, 0, totalRead); } + public int getCurrentFrame() { + return currentFrame; + } + + public long getDuration() { + return (long) (metaData[0] / (float) metaData[1] * 1000); + } + + public void setPlayInDirectionOfCustomEndFrame(boolean value) { + playInDirectionOfCustomEndFrame = value; + } + + public void setCustomEndFrame(int frame) { + if (customEndFrame > metaData[0]) { + return; + } + customEndFrame = frame; + } + public void addParentView(View view) { if (view == null) { return; @@ -679,13 +732,15 @@ public class RLottieDrawable extends BitmapDrawable implements Animatable { isRunning = false; } - public void setProgress(float progress) { - if (progress < 0.0f) { - progress = 0.0f; - } else if (progress > 1.0f) { - progress = 1.0f; + public void setCurrentFrame(int frame) { + setCurrentFrame(frame, true); + } + + public void setCurrentFrame(int frame, boolean async) { + if (frame < 0 || frame > metaData[0]) { + return; } - currentFrame = (int) (metaData[0] * progress); + currentFrame = frame; nextFrameIsLast = false; singleFrameDecoded = false; if (invalidateOnProgressSet) { @@ -694,12 +749,45 @@ public class RLottieDrawable extends BitmapDrawable implements Animatable { doNotRemoveInvalidOnFrameReady = true; } } - if (!scheduleNextGetFrame()) { + if (!async) { + if (waitingForNextTask && nextRenderingBitmap != null) { + backgroundBitmap = nextRenderingBitmap; + nextRenderingBitmap = null; + loadFrameTask = null; + waitingForNextTask = false; + } + if (loadFrameTask == null) { + frameWaitSync = new CountDownLatch(1); + } + } + if (scheduleNextGetFrame()) { + if (!async) { + try { + frameWaitSync.await(); + } catch (Exception e) { + FileLog.e(e); + } + frameWaitSync = null; + } + } else { forceFrameRedraw = true; } invalidateSelf(); } + public void setProgress(float progress) { + setProgress(progress, true); + } + + public void setProgress(float progress, boolean async) { + if (progress < 0.0f) { + progress = 0.0f; + } else if (progress > 1.0f) { + progress = 1.0f; + } + setCurrentFrame((int) (metaData[0] * progress), async); + } + public void setCurrentParentView(View view) { currentParentView = view; } @@ -744,12 +832,15 @@ public class RLottieDrawable extends BitmapDrawable implements Animatable { private void setCurrentFrame(long now, long timeDiff, long timeCheck, boolean force) { backgroundBitmap = renderingBitmap; renderingBitmap = nextRenderingBitmap; - if (isDice == 2 && onFinishCallback != null && currentFrame - 1 >= finishFrame) { - Runnable runnable = onFinishCallback.get(); - if (runnable != null) { - runnable.run(); + nextRenderingBitmap = null; + if (isDice == 2) { + if (onFinishCallback != null && currentFrame - 1 >= finishFrame) { + Runnable runnable = onFinishCallback.get(); + if (runnable != null) { + runnable.run(); + } + onFinishCallback = null; } - onFinishCallback = null; } if (nextFrameIsLast) { stop(); @@ -761,7 +852,7 @@ public class RLottieDrawable extends BitmapDrawable implements Animatable { isInvalid = false; } singleFrameDecoded = true; - nextRenderingBitmap = null; + waitingForNextTask = false; if (AndroidUtilities.screenRefreshRate <= 60) { lastFrameTime = now; } else { @@ -771,6 +862,14 @@ public class RLottieDrawable extends BitmapDrawable implements Animatable { singleFrameDecoded = false; forceFrameRedraw = false; } + if (isDice == 0) { + if (onFinishCallback != null && currentFrame >= finishFrame) { + Runnable runnable = onFinishCallback.get(); + if (runnable != null) { + runnable.run(); + } + } + } scheduleNextGetFrame(); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/RecyclerAnimationScrollHelper.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/RecyclerAnimationScrollHelper.java index 15fe361b5..792a9856b 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/RecyclerAnimationScrollHelper.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/RecyclerAnimationScrollHelper.java @@ -9,9 +9,11 @@ import android.view.View; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import org.telegram.messenger.BuildVars; import org.telegram.ui.Cells.ChatMessageCell; import java.util.ArrayList; +import java.util.HashMap; public class RecyclerAnimationScrollHelper { @@ -30,6 +32,7 @@ public class RecyclerAnimationScrollHelper { private AnimationCallback animationCallback; public SparseArray positionToOldView = new SparseArray<>(); + private HashMap oldStableIds = new HashMap<>(); public RecyclerAnimationScrollHelper(RecyclerListView recyclerView, LinearLayoutManager layoutManager) { this.recyclerView = recyclerView; @@ -45,7 +48,9 @@ public class RecyclerAnimationScrollHelper { } public void scrollToPosition(int position, int offset, final boolean bottom, boolean smooth) { - if (recyclerView.animationRunning) return; + if (recyclerView.scrollAnimationRunning || (recyclerView.getItemAnimator() != null && recyclerView.getItemAnimator().isRunning())) { + return; + } if (!smooth || scrollDirection == SCROLL_DIRECTION_UNSET) { layoutManager.scrollToPositionWithOffset(position, offset, bottom); return; @@ -60,36 +65,35 @@ public class RecyclerAnimationScrollHelper { boolean scrollDown = scrollDirection == SCROLL_DIRECTION_DOWN; recyclerView.setScrollEnabled(false); - int h = 0; - int t = 0; + final ArrayList oldViews = new ArrayList<>(); positionToOldView.clear(); - final ArrayList oldHolders = new ArrayList<>(); - recyclerView.getRecycledViewPool().clear(); + + RecyclerView.Adapter adapter = recyclerView.getAdapter(); + oldStableIds.clear(); for (int i = 0; i < n; i++) { View child = recyclerView.getChildAt(0); oldViews.add(child); - RecyclerView.ViewHolder holder = recyclerView.getChildViewHolder(child); - if (holder != null) { - oldHolders.add(holder); + int childPosition = layoutManager.getPosition(child); + positionToOldView.put(childPosition, child); + if (adapter != null && adapter.hasStableIds()) { + if (child instanceof ChatMessageCell) { + oldStableIds.put((long) ((ChatMessageCell) child).getMessageObject().stableId, child); + } else { + oldStableIds.put(adapter.getItemId(childPosition), child); + } } - positionToOldView.put(layoutManager.getPosition(child), child); - - int bot = child.getBottom(); - int top = child.getTop(); - if (bot > h) h = bot; - if (top < t) t = top; - if (child instanceof ChatMessageCell) { ((ChatMessageCell) child).setAnimationRunning(true, true); } - recyclerView.removeView(child); + layoutManager.removeAndRecycleView(child, recyclerView.mRecycler); + } - final int finalHeight = scrollDown ? h : recyclerView.getHeight() - t; + recyclerView.mRecycler.clear(); + recyclerView.getRecycledViewPool().clear(); - RecyclerView.Adapter adapter = recyclerView.getAdapter(); AnimatableAdapter animatableAdapter = null; if (adapter instanceof AnimatableAdapter) { animatableAdapter = (AnimatableAdapter) adapter; @@ -103,6 +107,9 @@ public class RecyclerAnimationScrollHelper { recyclerView.setVerticalScrollBarEnabled(false); if (animationCallback != null) animationCallback.onStartAnimation(); + recyclerView.scrollAnimationRunning = true; + if (finalAnimatableAdapter != null) finalAnimatableAdapter.onAnimationStart(); + recyclerView.addOnLayoutChangeListener(new View.OnLayoutChangeListener() { @Override public void onLayoutChange(View v, int l, int t, int r, int b, int ol, int ot, int or, int ob) { @@ -112,6 +119,7 @@ public class RecyclerAnimationScrollHelper { int n = recyclerView.getChildCount(); int top = 0; int bottom = 0; + int scrollDiff = 0; for (int i = 0; i < n; i++) { View child = recyclerView.getChildAt(i); incomingViews.add(child); @@ -123,9 +131,37 @@ public class RecyclerAnimationScrollHelper { if (child instanceof ChatMessageCell) { ((ChatMessageCell) child).setAnimationRunning(true, false); } + + if (adapter != null && adapter.hasStableIds()) { + long stableId = adapter.getItemId(recyclerView.getChildAdapterPosition(child)); + if (oldStableIds.containsKey(stableId)) { + View view = oldStableIds.get(stableId); + if (view != null) { + if (child instanceof ChatMessageCell) { + ((ChatMessageCell) child).setAnimationRunning(false, false); + } + oldViews.remove(view); + int dif = child.getTop() - view.getTop(); + if (dif != 0) { + scrollDiff = dif; + } + } + } + } } + oldStableIds.clear(); + + int oldH = 0; + int oldT = 0; + for (View view : oldViews) { + int bot = view.getBottom(); + int topl = view.getTop(); + if (bot > oldH) oldH = bot; + if (topl < oldT) oldT = topl; + + if (view.getParent() == null) { recyclerView.addView(view); } @@ -134,10 +170,15 @@ public class RecyclerAnimationScrollHelper { } } - recyclerView.animationRunning = true; - if (finalAnimatableAdapter != null) finalAnimatableAdapter.onAnimationStart(); + final int scrollLength ; + if (oldViews.isEmpty()) { + scrollLength = Math.abs(scrollDiff); + } else { + int finalHeight = scrollDown ? oldH : recyclerView.getHeight() - oldT; + scrollLength = finalHeight + (scrollDown ? -top : bottom - recyclerView.getHeight()); + } + - final int scrollLength = finalHeight + (scrollDown ? -top : bottom - recyclerView.getHeight()); if (animator != null) { animator.removeAllListeners(); @@ -177,7 +218,10 @@ public class RecyclerAnimationScrollHelper { animator.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { - recyclerView.animationRunning = false; + if (animator == null) { + return; + } + recyclerView.scrollAnimationRunning = false; for (View view : oldViews) { if (view instanceof ChatMessageCell) { @@ -189,6 +233,20 @@ public class RecyclerAnimationScrollHelper { recyclerView.setVerticalScrollBarEnabled(true); + if (BuildVars.DEBUG_VERSION) { + if (recyclerView.mChildHelper.getChildCount() != recyclerView.getChildCount()) { + throw new RuntimeException("views count in child helper must be quals views count in recycler view"); + } + + if (recyclerView.mChildHelper.getHiddenChildCount() != 0) { + throw new RuntimeException("hidden child count must be 0"); + } + + if (recyclerView.getCachedChildCount() != 0) { + throw new RuntimeException("cached child count must be 0"); + } + } + int n = recyclerView.getChildCount(); for (int i = 0; i < n; i++) { View child = recyclerView.getChildAt(i); @@ -215,6 +273,9 @@ public class RecyclerAnimationScrollHelper { recyclerView.removeOnLayoutChangeListener(this); long duration = (long) (((scrollLength / (float) recyclerView.getMeasuredHeight()) + 1f) * 200L); + if (duration < 80) { + duration = 80; + } duration = Math.min(duration, 1300); @@ -232,7 +293,7 @@ public class RecyclerAnimationScrollHelper { private void clear() { recyclerView.setVerticalScrollBarEnabled(true); - recyclerView.animationRunning = false; + recyclerView.scrollAnimationRunning = false; RecyclerView.Adapter adapter = recyclerView.getAdapter(); if (adapter instanceof AnimatableAdapter) ((AnimatableAdapter) adapter).onAnimationEnd(); @@ -292,6 +353,16 @@ public class RecyclerAnimationScrollHelper { } } + @Override + public void notifyItemInserted(int position) { + if (!animationRunning) { + super.notifyItemInserted(position); + } else { + rangeInserted.add(position); + rangeInserted.add(1); + } + } + @Override public void notifyItemRangeInserted(int positionStart, int itemCount) { if (!animationRunning) { @@ -302,6 +373,16 @@ public class RecyclerAnimationScrollHelper { } } + @Override + public void notifyItemRemoved(int position) { + if (!animationRunning) { + super.notifyItemRemoved(position); + } else { + rangeRemoved.add(position); + rangeRemoved.add(1); + } + } + @Override public void notifyItemRangeRemoved(int positionStart, int itemCount) { if (!animationRunning) { @@ -312,6 +393,13 @@ public class RecyclerAnimationScrollHelper { } } + @Override + public void notifyItemChanged(int position) { + if (!animationRunning) { + super.notifyItemChanged(position); + } + } + @Override public void notifyItemRangeChanged(int positionStart, int itemCount) { if (!animationRunning) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/RecyclerListView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/RecyclerListView.java index 8a165c804..a12700db6 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/RecyclerListView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/RecyclerListView.java @@ -116,7 +116,7 @@ public class RecyclerListView extends RecyclerView { private static boolean gotAttributes; private boolean hiddenByEmptyView; - public boolean animationRunning; + public boolean scrollAnimationRunning; public interface OnItemClickListener { void onItemClick(View view, int position); @@ -1770,9 +1770,13 @@ public class RecyclerListView extends RecyclerView { return pinnedHeader; } + public boolean isScrollAnimationRunning() { + return scrollAnimationRunning; + } + @Override public void requestLayout() { - if (animationRunning) { + if (scrollAnimationRunning) { return; } super.requestLayout(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ScrollSlidingTabStrip.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ScrollSlidingTabStrip.java index e3d03d060..78f9f9bb2 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ScrollSlidingTabStrip.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ScrollSlidingTabStrip.java @@ -539,6 +539,12 @@ public class ScrollSlidingTabStrip extends HorizontalScrollView { invalidate(); } + public void invalidateTabs() { + for (int a = 0, N = tabsContainer.getChildCount(); a < N; a++) { + tabsContainer.getChildAt(a).invalidate(); + } + } + public void setCurrentPosition(int currentPosition) { this.currentPosition = currentPosition; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/SearchField.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/SearchField.java index e393cad9f..3f9549f75 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/SearchField.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/SearchField.java @@ -17,6 +17,9 @@ import android.widget.ImageView; import org.telegram.messenger.AndroidUtilities; import org.telegram.messenger.R; import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.ActionBar.ThemeDescription; + +import java.util.List; @SuppressWarnings("FieldCanBeLocal") public class SearchField extends FrameLayout { @@ -183,4 +186,13 @@ public class SearchField extends FrameLayout { public CloseProgressDrawable2 getProgressDrawable() { return progressDrawable; } + + public void getThemeDescriptions(List descriptions) { + descriptions.add(new ThemeDescription(searchBackground, ThemeDescription.FLAG_BACKGROUNDFILTER, null, null, null, null, Theme.key_dialogSearchBackground)); + descriptions.add(new ThemeDescription(searchIconImageView, ThemeDescription.FLAG_IMAGECOLOR, null, null, null, null, Theme.key_dialogSearchIcon)); + descriptions.add(new ThemeDescription(clearSearchImageView, ThemeDescription.FLAG_IMAGECOLOR, null, null, null, null, Theme.key_dialogSearchIcon)); + descriptions.add(new ThemeDescription(searchEditText, ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_dialogSearchText)); + descriptions.add(new ThemeDescription(searchEditText, ThemeDescription.FLAG_HINTTEXTCOLOR, null, null, null, null, Theme.key_dialogSearchHint)); + descriptions.add(new ThemeDescription(searchEditText, ThemeDescription.FLAG_CURSORCOLOR, null, null, null, null, Theme.key_featuredStickers_addedIcon)); + } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/SeekBarWaveform.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/SeekBarWaveform.java index 487ed544f..0269c3fde 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/SeekBarWaveform.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/SeekBarWaveform.java @@ -156,7 +156,7 @@ public class SeekBarWaveform { float barCounter = 0; int nextBarNum = 0; - paintInner.setColor(messageObject != null && !messageObject.isOutOwner() && messageObject.isContentUnread() ? outerColor : (selected ? selectedColor : innerColor)); + paintInner.setColor(messageObject != null && !messageObject.isOutOwner() && messageObject.isContentUnread() && thumbX == 0 ? outerColor : (selected ? selectedColor : innerColor)); paintOuter.setColor(outerColor); int y = (height - AndroidUtilities.dp(14)) / 2; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ShareAlert.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ShareAlert.java index 2ff889df9..80bcf8ca5 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ShareAlert.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ShareAlert.java @@ -310,7 +310,7 @@ public class ShareAlert extends BottomSheet implements NotificationCenter.Notifi ignoreLayout = false; } int availableHeight = totalHeight - getPaddingTop(); - int keyboardSize = SharedConfig.smoothKeyboard ? 0 : getKeyboardHeight(); + int keyboardSize = SharedConfig.smoothKeyboard ? 0 : measureKeyboardHeight(); if (!AndroidUtilities.isInMultiwindow && keyboardSize <= AndroidUtilities.dp(20)) { availableHeight -= commentTextView.getEmojiPadding(); } @@ -334,7 +334,7 @@ public class ShareAlert extends BottomSheet implements NotificationCenter.Notifi setMeasuredDimension(widthSize, heightSize); widthSize -= backgroundPaddingLeft * 2; - int keyboardSize = SharedConfig.smoothKeyboard ? 0 : getKeyboardHeight(); + int keyboardSize = SharedConfig.smoothKeyboard ? 0 : measureKeyboardHeight(); if (keyboardSize <= AndroidUtilities.dp(20)) { if (!AndroidUtilities.isInMultiwindow) { heightSize -= commentTextView.getEmojiPadding(); @@ -383,7 +383,7 @@ public class ShareAlert extends BottomSheet implements NotificationCenter.Notifi protected void onLayout(boolean changed, int l, int t, int r, int b) { final int count = getChildCount(); - int keyboardSize = SharedConfig.smoothKeyboard ? 0 : getKeyboardHeight(); + int keyboardSize = SharedConfig.smoothKeyboard ? 0 : measureKeyboardHeight(); int paddingBottom = keyboardSize <= AndroidUtilities.dp(20) && !AndroidUtilities.isInMultiwindow && !AndroidUtilities.isTablet() ? commentTextView.getEmojiPadding() : 0; setBottomClip(paddingBottom); @@ -1028,6 +1028,7 @@ public class ShareAlert extends BottomSheet implements NotificationCenter.Notifi dialogs.add(dialog); dialogsMap.put(dialog.id, dialog); } + ArrayList archivedDialogs = new ArrayList<>(); ArrayList allDialogs = MessagesController.getInstance(currentAccount).getAllDialogs(); for (int a = 0; a < allDialogs.size(); a++) { TLRPC.Dialog dialog = allDialogs.get(a); @@ -1041,17 +1042,26 @@ public class ShareAlert extends BottomSheet implements NotificationCenter.Notifi int high_id = (int) (dialog.id >> 32); if (lower_id != 0 && high_id != 1) { if (lower_id > 0) { - dialogs.add(dialog); + if (dialog.folder_id == 1) { + archivedDialogs.add(dialog); + } else { + dialogs.add(dialog); + } dialogsMap.put(dialog.id, dialog); } else { TLRPC.Chat chat = MessagesController.getInstance(currentAccount).getChat(-lower_id); if (!(chat == null || ChatObject.isNotInChat(chat) || ChatObject.isChannel(chat) && !chat.creator && (chat.admin_rights == null || !chat.admin_rights.post_messages) && !chat.megagroup)) { - dialogs.add(dialog); + if (dialog.folder_id == 1) { + archivedDialogs.add(dialog); + } else { + dialogs.add(dialog); + } dialogsMap.put(dialog.id, dialog); } } } } + dialogs.addAll(archivedDialogs); notifyDataSetChanged(); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/SharedMediaLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/SharedMediaLayout.java index a2b7cff88..9b429d339 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/SharedMediaLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/SharedMediaLayout.java @@ -1891,6 +1891,14 @@ public class SharedMediaLayout extends FrameLayout implements NotificationCenter } } + public void setVisibleHeight(int height) { + height = Math.max(height, AndroidUtilities.dp(120)); + for (int a = 0; a < mediaPages.length; a++) { + mediaPages[a].emptyView.setTranslationY(-(getMeasuredHeight() - height) / 2); + mediaPages[a].progressView.setTranslationY(-(getMeasuredHeight() - height) / 2); + } + } + private AnimatorSet actionModeAnimation; private void showActionMode(boolean show) { if (isActionModeShowed == show) { @@ -2833,7 +2841,7 @@ public class SharedMediaLayout extends FrameLayout implements NotificationCenter link = ((SharedLinkCell) view).getLink(0); } if (link != null) { - Browser.openUrl(profileActivity.getParentActivity(), link); + openUrl(link); } } catch (Exception e) { FileLog.e(e); @@ -2842,6 +2850,14 @@ public class SharedMediaLayout extends FrameLayout implements NotificationCenter } } + private void openUrl(String link) { + if (AndroidUtilities.shouldShowUrlInAlert(link)) { + AlertsCreator.showOpenUrlAlert(profileActivity, link, true, true); + } else { + Browser.openUrl(profileActivity.getParentActivity(), link); + } + } + private void openWebView(TLRPC.WebPage webPage) { EmbedBottomSheet.show(profileActivity.getParentActivity(), webPage.site_name, webPage.description, webPage.url, webPage.embed_url, webPage.embed_width, webPage.embed_height); } @@ -2896,23 +2912,27 @@ public class SharedMediaLayout extends FrameLayout implements NotificationCenter } @Override - public void onLinkLongPress(final String urlFinal) { - BottomSheet.Builder builder = new BottomSheet.Builder(profileActivity.getParentActivity()); - builder.setTitle(urlFinal); - builder.setItems(new CharSequence[]{LocaleController.getString("Open", R.string.Open), LocaleController.getString("Copy", R.string.Copy)}, (dialog, which) -> { - if (which == 0) { - Browser.openUrl(profileActivity.getParentActivity(), urlFinal, true); - } else if (which == 1) { - String url = urlFinal; - if (url.startsWith("mailto:")) { - url = url.substring(7); - } else if (url.startsWith("tel:")) { - url = url.substring(4); + public void onLinkPress(String urlFinal, boolean longPress) { + if (longPress) { + BottomSheet.Builder builder = new BottomSheet.Builder(profileActivity.getParentActivity()); + builder.setTitle(urlFinal); + builder.setItems(new CharSequence[]{LocaleController.getString("Open", R.string.Open), LocaleController.getString("Copy", R.string.Copy)}, (dialog, which) -> { + if (which == 0) { + openUrl(urlFinal); + } else if (which == 1) { + String url = urlFinal; + if (url.startsWith("mailto:")) { + url = url.substring(7); + } else if (url.startsWith("tel:")) { + url = url.substring(4); + } + AndroidUtilities.addToClipboard(url); } - AndroidUtilities.addToClipboard(url); - } - }); - profileActivity.showDialog(builder.create()); + }); + profileActivity.showDialog(builder.create()); + } else { + openUrl(urlFinal); + } } }; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/SideMenultItemAnimator.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/SideMenultItemAnimator.java index a3798dc4e..d1658cf6b 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/SideMenultItemAnimator.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/SideMenultItemAnimator.java @@ -156,7 +156,7 @@ public class SideMenultItemAnimator extends SimpleItemAnimator { } @Override - public boolean animateRemove(final RecyclerView.ViewHolder holder) { + public boolean animateRemove(final RecyclerView.ViewHolder holder, ItemHolderInfo info) { resetAnimation(holder); mPendingRemovals.add(holder); return true; @@ -221,7 +221,7 @@ public class SideMenultItemAnimator extends SimpleItemAnimator { } @Override - public boolean animateMove(final RecyclerView.ViewHolder holder, int fromX, int fromY, int toX, int toY) { + public boolean animateMove(final RecyclerView.ViewHolder holder, ItemHolderInfo info, int fromX, int fromY, int toX, int toY) { final View view = holder.itemView; fromX += (int) holder.itemView.getTranslationX(); fromY += (int) holder.itemView.getTranslationY(); @@ -282,9 +282,9 @@ public class SideMenultItemAnimator extends SimpleItemAnimator { } @Override - public boolean animateChange(RecyclerView.ViewHolder oldHolder, RecyclerView.ViewHolder newHolder, int fromX, int fromY, int toX, int toY) { + public boolean animateChange(RecyclerView.ViewHolder oldHolder, RecyclerView.ViewHolder newHolder,ItemHolderInfo info, int fromX, int fromY, int toX, int toY) { if (oldHolder == newHolder) { - return animateMove(oldHolder, fromX, fromY, toX, toY); + return animateMove(oldHolder, null, fromX, fromY, toX, toY); } final float prevTranslationX = oldHolder.itemView.getTranslationX(); final float prevTranslationY = oldHolder.itemView.getTranslationY(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/SizeNotifierFrameLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/SizeNotifierFrameLayout.java index 94c8df88d..672aa7c8c 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/SizeNotifierFrameLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/SizeNotifierFrameLayout.java @@ -29,7 +29,7 @@ public class SizeNotifierFrameLayout extends AdjustPanFrameLayout { private Rect rect = new Rect(); private Drawable backgroundDrawable; - private int keyboardHeight; + protected int keyboardHeight; private int bottomClip; private SizeNotifierFrameLayoutDelegate delegate; private boolean occupyStatusBar = true; @@ -117,7 +117,7 @@ public class SizeNotifierFrameLayout extends AdjustPanFrameLayout { notifyHeightChanged(); } - public int getKeyboardHeight() { + public int measureKeyboardHeight() { View rootView = getRootView(); getWindowVisibleDisplayFrame(rect); if (rect.bottom == 0 && rect.top == 0) { @@ -127,12 +127,16 @@ public class SizeNotifierFrameLayout extends AdjustPanFrameLayout { return keyboardHeight = Math.max(0, usableViewHeight - (rect.bottom - rect.top)); } + public int getKeyboardHeight() { + return keyboardHeight; + } + public void notifyHeightChanged() { if (parallaxEffect != null) { parallaxScale = parallaxEffect.getScale(getMeasuredWidth(), getMeasuredHeight()); } if (delegate != null) { - keyboardHeight = getKeyboardHeight(); + keyboardHeight = measureKeyboardHeight(); final boolean isWidthGreater = AndroidUtilities.displaySize.x > AndroidUtilities.displaySize.y; post(() -> { if (delegate != null) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/StickerMasksAlert.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/StickerMasksAlert.java new file mode 100644 index 000000000..04d6cc8f3 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/StickerMasksAlert.java @@ -0,0 +1,1645 @@ +package org.telegram.ui.Components; + +import android.animation.Animator; +import android.animation.AnimatorListenerAdapter; +import android.animation.AnimatorSet; +import android.animation.ObjectAnimator; +import android.content.Context; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.PorterDuff; +import android.graphics.PorterDuffColorFilter; +import android.graphics.RectF; +import android.graphics.drawable.Drawable; +import android.graphics.drawable.RippleDrawable; +import android.os.Build; +import android.os.SystemClock; +import android.text.Editable; +import android.text.TextUtils; +import android.text.TextWatcher; +import android.util.LongSparseArray; +import android.util.SparseArray; +import android.util.SparseIntArray; +import android.util.TypedValue; +import android.view.Gravity; +import android.view.MotionEvent; +import android.view.View; +import android.view.ViewGroup; +import android.view.inputmethod.EditorInfo; +import android.widget.FrameLayout; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; + +import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.Emoji; +import org.telegram.messenger.LocaleController; +import org.telegram.messenger.MediaDataController; +import org.telegram.messenger.NotificationCenter; +import org.telegram.messenger.R; +import org.telegram.messenger.UserConfig; +import org.telegram.tgnet.ConnectionsManager; +import org.telegram.tgnet.TLObject; +import org.telegram.tgnet.TLRPC; +import org.telegram.ui.ActionBar.BottomSheet; +import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.Cells.EmptyCell; +import org.telegram.ui.Cells.StickerEmojiCell; +import org.telegram.ui.Cells.StickerSetNameCell; +import org.telegram.ui.ContentPreviewViewer; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; + +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.LinearSmoothScroller; +import androidx.recyclerview.widget.RecyclerView; + +@SuppressWarnings("unchecked") +public class StickerMasksAlert extends BottomSheet implements NotificationCenter.NotificationCenterDelegate { + + private Drawable shadowDrawable; + + private int scrollOffsetY; + + private StickerMasksAlertDelegate delegate; + + private FrameLayout bottomTabContainer; + private View shadowLine; + private AnimatorSet bottomTabContainerAnimation; + + private StickersGridAdapter stickersGridAdapter; + private StickersSearchGridAdapter stickersSearchGridAdapter; + private RecyclerListView.OnItemClickListener stickersOnItemClickListener; + private ScrollSlidingTabStrip stickersTab; + private RecyclerListView gridView; + private GridLayoutManager stickersLayoutManager; + private SearchField stickersSearchField; + + private String[] lastSearchKeyboardLanguage; + + private Drawable[] stickerIcons; + + private int searchFieldHeight; + + private int currentAccount = UserConfig.selectedAccount; + + private ArrayList[] stickerSets = new ArrayList[]{new ArrayList<>(), new ArrayList<>()}; + private ArrayList[] recentStickers = new ArrayList[]{new ArrayList<>(), new ArrayList<>()}; + + private ArrayList favouriteStickers = new ArrayList<>(); + + private int stickersTabOffset; + private int recentTabBum = -2; + private int favTabBum = -2; + + private int lastNotifyWidth; + private int lastNotifyHeight; + private int lastNotifyHeight2; + + private ImageView stickersButton; + private ImageView masksButton; + + private int currentType; + + public interface StickerMasksAlertDelegate { + void onStickerSelected(Object parentObject, TLRPC.Document sticker); + } + + private ContentPreviewViewer.ContentPreviewViewerDelegate contentPreviewViewerDelegate = new ContentPreviewViewer.ContentPreviewViewerDelegate() { + @Override + public void sendSticker(TLRPC.Document sticker, Object parent, boolean notify, int scheduleDate) { + delegate.onStickerSelected(parent, sticker); + } + + @Override + public boolean needSend() { + return false; + } + + @Override + public boolean canSchedule() { + return false; + } + + @Override + public boolean isInScheduleMode() { + return false; + } + + @Override + public void openSet(TLRPC.InputStickerSet set, boolean clearsInputField) { + + } + + @Override + public long getDialogId() { + return 0; + } + + @Override + public boolean needMenu() { + return false; + } + }; + + private class SearchField extends FrameLayout { + + private ImageView clearSearchImageView; + private CloseProgressDrawable2 progressDrawable; + private EditTextBoldCursor searchEditText; + private View shadowView; + private AnimatorSet shadowAnimator; + + public SearchField(Context context, int type) { + super(context); + + shadowView = new View(context); + shadowView.setAlpha(0.0f); + shadowView.setTag(1); + shadowView.setBackgroundColor(0x12000000); + addView(shadowView, new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, AndroidUtilities.getShadowHeight(), Gravity.BOTTOM | Gravity.LEFT)); + + View backgroundView = new View(context); + backgroundView.setBackgroundColor(0xff252525); + addView(backgroundView, new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, searchFieldHeight)); + + View searchBackground = new View(context); + searchBackground.setBackgroundDrawable(Theme.createRoundRectDrawable(AndroidUtilities.dp(18), 0xff363636)); + addView(searchBackground, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 36, Gravity.LEFT | Gravity.TOP, 14, 14, 14, 0)); + + ImageView searchIconImageView = new ImageView(context); + searchIconImageView.setScaleType(ImageView.ScaleType.CENTER); + searchIconImageView.setImageResource(R.drawable.smiles_inputsearch); + searchIconImageView.setColorFilter(new PorterDuffColorFilter(0xff777777, PorterDuff.Mode.MULTIPLY)); + addView(searchIconImageView, LayoutHelper.createFrame(36, 36, Gravity.LEFT | Gravity.TOP, 16, 14, 0, 0)); + + clearSearchImageView = new ImageView(context); + clearSearchImageView.setScaleType(ImageView.ScaleType.CENTER); + clearSearchImageView.setImageDrawable(progressDrawable = new CloseProgressDrawable2()); + progressDrawable.setSide(AndroidUtilities.dp(7)); + clearSearchImageView.setScaleX(0.1f); + clearSearchImageView.setScaleY(0.1f); + clearSearchImageView.setAlpha(0.0f); + clearSearchImageView.setColorFilter(new PorterDuffColorFilter(0xff777777, PorterDuff.Mode.MULTIPLY)); + addView(clearSearchImageView, LayoutHelper.createFrame(36, 36, Gravity.RIGHT | Gravity.TOP, 14, 14, 14, 0)); + clearSearchImageView.setOnClickListener(v -> { + searchEditText.setText(""); + AndroidUtilities.showKeyboard(searchEditText); + }); + + searchEditText = new EditTextBoldCursor(context) { + @Override + public boolean onTouchEvent(MotionEvent event) { + if (event.getAction() == MotionEvent.ACTION_DOWN) { + searchEditText.requestFocus(); + AndroidUtilities.showKeyboard(searchEditText); + } + return super.onTouchEvent(event); + } + }; + searchEditText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); + searchEditText.setHintTextColor(0xff777777); + searchEditText.setTextColor(0xffffffff); + searchEditText.setBackgroundDrawable(null); + searchEditText.setPadding(0, 0, 0, 0); + searchEditText.setMaxLines(1); + searchEditText.setLines(1); + searchEditText.setSingleLine(true); + searchEditText.setImeOptions(EditorInfo.IME_ACTION_SEARCH | EditorInfo.IME_FLAG_NO_EXTRACT_UI); + if (type == 0) { + searchEditText.setHint(LocaleController.getString("SearchStickersHint", R.string.SearchStickersHint)); + } else if (type == 1) { + searchEditText.setHint(LocaleController.getString("SearchEmojiHint", R.string.SearchEmojiHint)); + } else if (type == 2) { + searchEditText.setHint(LocaleController.getString("SearchGifsTitle", R.string.SearchGifsTitle)); + } + searchEditText.setCursorColor(0xffffffff); + searchEditText.setCursorSize(AndroidUtilities.dp(20)); + searchEditText.setCursorWidth(1.5f); + addView(searchEditText, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 40, Gravity.LEFT | Gravity.TOP, 16 + 38, 12, 16 + 30, 0)); + searchEditText.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + + } + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + + } + + @Override + public void afterTextChanged(Editable s) { + boolean show = searchEditText.length() > 0; + boolean showed = clearSearchImageView.getAlpha() != 0; + if (show != showed) { + clearSearchImageView.animate() + .alpha(show ? 1.0f : 0.0f) + .setDuration(150) + .scaleX(show ? 1.0f : 0.1f) + .scaleY(show ? 1.0f : 0.1f) + .start(); + } + stickersSearchGridAdapter.search(searchEditText.getText().toString()); + } + }); + } + + public void hideKeyboard() { + AndroidUtilities.hideKeyboard(searchEditText); + } + + private void showShadow(boolean show, boolean animated) { + if (show && shadowView.getTag() == null || !show && shadowView.getTag() != null) { + return; + } + if (shadowAnimator != null) { + shadowAnimator.cancel(); + shadowAnimator = null; + } + shadowView.setTag(show ? null : 1); + if (animated) { + shadowAnimator = new AnimatorSet(); + shadowAnimator.playTogether(ObjectAnimator.ofFloat(shadowView, View.ALPHA, show ? 1.0f : 0.0f)); + shadowAnimator.setDuration(200); + shadowAnimator.setInterpolator(CubicBezierInterpolator.EASE_OUT); + shadowAnimator.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + shadowAnimator = null; + } + }); + shadowAnimator.start(); + } else { + shadowView.setAlpha(show ? 1.0f : 0.0f); + } + } + } + + public StickerMasksAlert(Context context, boolean isVideo) { + super(context, true); + behindKeyboardColorKey = null; + behindKeyboardColor = 0xff252525; + useLightStatusBar = false; + + currentType = MediaDataController.TYPE_IMAGE; + + NotificationCenter.getGlobalInstance().addObserver(this, NotificationCenter.emojiDidLoad); + NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.stickersDidLoad); + NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.recentDocumentsDidLoad); + MediaDataController.getInstance(currentAccount).loadRecents(MediaDataController.TYPE_IMAGE, false, true, false); + MediaDataController.getInstance(currentAccount).loadRecents(MediaDataController.TYPE_MASK, false, true, false); + MediaDataController.getInstance(currentAccount).loadRecents(MediaDataController.TYPE_FAVE, false, true, false); + + shadowDrawable = context.getResources().getDrawable(R.drawable.sheet_shadow_round).mutate(); + shadowDrawable.setColorFilter(new PorterDuffColorFilter(0xff252525, PorterDuff.Mode.MULTIPLY)); + + containerView = new SizeNotifierFrameLayout(context, false) { + + private boolean ignoreLayout = false; + private RectF rect = new RectF(); + private long lastUpdateTime; + private float statusBarProgress; + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + int totalHeight = MeasureSpec.getSize(heightMeasureSpec); + if (Build.VERSION.SDK_INT >= 21 && !isFullscreen) { + ignoreLayout = true; + setPadding(backgroundPaddingLeft, AndroidUtilities.statusBarHeight, backgroundPaddingLeft, 0); + ignoreLayout = false; + } + int availableHeight = totalHeight - getPaddingTop(); + int padding; + if (measureKeyboardHeight() > AndroidUtilities.dp(20)) { + padding = 0; + statusBarProgress = 1.0f; + } else { + padding = availableHeight - (availableHeight / 5 * 3) + AndroidUtilities.dp(8); + } + if (gridView.getPaddingTop() != padding) { + ignoreLayout = true; + gridView.setPinnedSectionOffsetY(-padding); + gridView.setPadding(0, padding, 0, AndroidUtilities.dp(48)); + ignoreLayout = false; + } + super.onMeasure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(totalHeight, MeasureSpec.EXACTLY)); + } + + @Override + protected void onLayout(boolean changed, int l, int t, int r, int b) { + super.onLayout(changed, l, t, r, b); + updateLayout(false); + } + + @Override + public boolean onInterceptTouchEvent(MotionEvent ev) { + if (ev.getAction() == MotionEvent.ACTION_DOWN && scrollOffsetY != 0 && ev.getY() < scrollOffsetY + AndroidUtilities.dp(12)) { + dismiss(); + return true; + } + return super.onInterceptTouchEvent(ev); + } + + @Override + public boolean onTouchEvent(MotionEvent e) { + return !isDismissed() && super.onTouchEvent(e); + } + + @Override + public void requestLayout() { + if (ignoreLayout) { + return; + } + super.requestLayout(); + } + + @Override + protected void onDraw(Canvas canvas) { + int offset = AndroidUtilities.dp(13); + int top = scrollOffsetY - backgroundPaddingTop - offset; + if (currentSheetAnimationType == 1) { + top += gridView.getTranslationY(); + } + int y = top + AndroidUtilities.dp(20); + + int height = getMeasuredHeight() + AndroidUtilities.dp(15) + backgroundPaddingTop; + float rad = 1.0f; + + int h = AndroidUtilities.dp(12); + if (top + backgroundPaddingTop < h) { + float toMove = offset + AndroidUtilities.dp(11 - 7); + float moveProgress = Math.min(1.0f, (h - top - backgroundPaddingTop) / toMove); + float availableToMove = h - toMove; + + int diff = (int) (availableToMove * moveProgress); + top -= diff; + y -= diff; + height += diff; + rad = 1.0f - moveProgress; + } + + if (Build.VERSION.SDK_INT >= 21) { + top += AndroidUtilities.statusBarHeight; + y += AndroidUtilities.statusBarHeight; + } + + shadowDrawable.setBounds(0, top, getMeasuredWidth(), height); + shadowDrawable.draw(canvas); + + if (rad != 1.0f) { + Theme.dialogs_onlineCirclePaint.setColor(0xff252525); + rect.set(backgroundPaddingLeft, backgroundPaddingTop + top, getMeasuredWidth() - backgroundPaddingLeft, backgroundPaddingTop + top + AndroidUtilities.dp(24)); + canvas.drawRoundRect(rect, AndroidUtilities.dp(12) * rad, AndroidUtilities.dp(12) * rad, Theme.dialogs_onlineCirclePaint); + } + + long newTime = SystemClock.elapsedRealtime(); + long dt = newTime - lastUpdateTime; + if (dt > 18) { + dt = 18; + } + lastUpdateTime = newTime; + if (rad > 0) { + float alphaProgress = 1.0f; + int w = AndroidUtilities.dp(36); + rect.set((getMeasuredWidth() - w) / 2, y, (getMeasuredWidth() + w) / 2, y + AndroidUtilities.dp(4)); + int color = 0xff4b4b4b; + int alpha = Color.alpha(color); + Theme.dialogs_onlineCirclePaint.setColor(color); + Theme.dialogs_onlineCirclePaint.setAlpha((int) (alpha * alphaProgress * rad)); + canvas.drawRoundRect(rect, AndroidUtilities.dp(2), AndroidUtilities.dp(2), Theme.dialogs_onlineCirclePaint); + if (statusBarProgress > 0.0f) { + statusBarProgress -= dt / 180.0f; + if (statusBarProgress < 0.0f) { + statusBarProgress = 0.0f; + } else { + invalidate(); + } + } + } else { + if (statusBarProgress < 1.0f) { + statusBarProgress += dt / 180.0f; + if (statusBarProgress > 1.0f) { + statusBarProgress = 1.0f; + } else { + invalidate(); + } + } + } + + int color1 = 0xff252525; + int finalColor = Color.argb((int) (255 * statusBarProgress), (int) (Color.red(color1) * 0.8f), (int) (Color.green(color1) * 0.8f), (int) (Color.blue(color1) * 0.8f)); + Theme.dialogs_onlineCirclePaint.setColor(finalColor); + canvas.drawRect(backgroundPaddingLeft, 0, getMeasuredWidth() - backgroundPaddingLeft, AndroidUtilities.statusBarHeight, Theme.dialogs_onlineCirclePaint); + } + }; + containerView.setWillNotDraw(false); + containerView.setPadding(backgroundPaddingLeft, 0, backgroundPaddingLeft, 0); + + searchFieldHeight = AndroidUtilities.dp(64); + + stickerIcons = new Drawable[]{ + Theme.createEmojiIconSelectorDrawable(context, R.drawable.stickers_recent, 0xff4b4b4b, 0xff6ebaed), + Theme.createEmojiIconSelectorDrawable(context, R.drawable.stickers_favorites, 0xff4b4b4b, 0xff6ebaed), + }; + + MediaDataController.getInstance(currentAccount).checkStickers(MediaDataController.TYPE_IMAGE); + MediaDataController.getInstance(currentAccount).checkStickers(MediaDataController.TYPE_MASK); + MediaDataController.getInstance(currentAccount).checkFeaturedStickers(); + gridView = new RecyclerListView(context) { + + @Override + protected boolean allowSelectChildAtPosition(float x, float y) { + return y >= scrollOffsetY + (Build.VERSION.SDK_INT >= 21 ? AndroidUtilities.statusBarHeight : 0); + } + + @Override + public boolean onInterceptTouchEvent(MotionEvent event) { + boolean result = ContentPreviewViewer.getInstance().onInterceptTouchEvent(event, gridView, containerView.getMeasuredHeight(), contentPreviewViewerDelegate); + return super.onInterceptTouchEvent(event) || result; + } + }; + + gridView.setLayoutManager(stickersLayoutManager = new GridLayoutManager(context, 5) { + @Override + public void smoothScrollToPosition(RecyclerView recyclerView, RecyclerView.State state, int position) { + LinearSmoothScroller linearSmoothScroller = new LinearSmoothScroller(recyclerView.getContext()) { + @Override + public int calculateDyToMakeVisible(View view, int snapPreference) { + int dy = super.calculateDyToMakeVisible(view, snapPreference); + dy -= (gridView.getPaddingTop() - AndroidUtilities.dp(7)); + return dy; + } + + @Override + protected int calculateTimeForDeceleration(int dx) { + return super.calculateTimeForDeceleration(dx) * 4; + } + }; + linearSmoothScroller.setTargetPosition(position); + startSmoothScroll(linearSmoothScroller); + } + }); + stickersLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { + @Override + public int getSpanSize(int position) { + if (gridView.getAdapter() == stickersGridAdapter) { + if (position == 0) { + return stickersGridAdapter.stickersPerRow; + } + if (position != stickersGridAdapter.totalItems) { + Object object = stickersGridAdapter.cache.get(position); + if (object == null || stickersGridAdapter.cache.get(position) instanceof TLRPC.Document) { + return 1; + } + } + return stickersGridAdapter.stickersPerRow; + } else { + if (position != stickersSearchGridAdapter.totalItems) { + Object object = stickersSearchGridAdapter.cache.get(position); + if (object == null || stickersSearchGridAdapter.cache.get(position) instanceof TLRPC.Document) { + return 1; + } + } + return stickersGridAdapter.stickersPerRow; + } + } + }); + gridView.setPadding(0, AndroidUtilities.dp(4 + 48), 0, AndroidUtilities.dp(48)); + gridView.setClipToPadding(false); + gridView.setHorizontalScrollBarEnabled(false); + gridView.setVerticalScrollBarEnabled(false); + gridView.setGlowColor(0xff252525); + stickersSearchGridAdapter = new StickersSearchGridAdapter(context); + gridView.setAdapter(stickersGridAdapter = new StickersGridAdapter(context)); + gridView.setOnTouchListener((v, event) -> ContentPreviewViewer.getInstance().onTouch(event, gridView, containerView.getMeasuredHeight(), stickersOnItemClickListener, contentPreviewViewerDelegate)); + stickersOnItemClickListener = (view, position) -> { + if (!(view instanceof StickerEmojiCell)) { + return; + } + ContentPreviewViewer.getInstance().reset(); + StickerEmojiCell cell = (StickerEmojiCell) view; + delegate.onStickerSelected(cell.getParentObject(), cell.getSticker()); + dismiss(); + }; + gridView.setOnItemClickListener(stickersOnItemClickListener); + containerView.addView(gridView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); + + stickersTab = new ScrollSlidingTabStrip(context) { + @Override + public boolean onInterceptTouchEvent(MotionEvent ev) { + if (getParent() != null) { + getParent().requestDisallowInterceptTouchEvent(true); + } + return super.onInterceptTouchEvent(ev); + } + }; + + stickersSearchField = new SearchField(context, 0); + containerView.addView(stickersSearchField, new FrameLayout.LayoutParams(LayoutHelper.MATCH_PARENT, searchFieldHeight + AndroidUtilities.getShadowHeight())); + + stickersTab.setType(ScrollSlidingTabStrip.Type.TAB); + stickersTab.setUnderlineHeight(AndroidUtilities.getShadowHeight()); + stickersTab.setIndicatorColor(0xff6ebaed); + stickersTab.setUnderlineColor(0xff0B0B0B); + stickersTab.setBackgroundColor(0xff252525); + containerView.addView(stickersTab, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 48, Gravity.LEFT | Gravity.TOP)); + stickersTab.setDelegate(page -> { + int scrollToPosition; + if (page == recentTabBum) { + scrollToPosition = stickersGridAdapter.getPositionForPack("recent"); + stickersTab.onPageScrolled(recentTabBum, recentTabBum > 0 ? recentTabBum : stickersTabOffset); + } else if (page == favTabBum) { + scrollToPosition = stickersGridAdapter.getPositionForPack("fav"); + stickersTab.onPageScrolled(favTabBum, favTabBum > 0 ? favTabBum : stickersTabOffset); + } else { + int index = page - stickersTabOffset; + if (index >= stickerSets[currentType].size()) { + return; + } + if (index >= stickerSets[currentType].size()) { + index = stickerSets[currentType].size() - 1; + } + scrollToPosition = stickersGridAdapter.getPositionForPack(stickerSets[currentType].get(index)); + } + int currentPosition = stickersLayoutManager.findFirstVisibleItemPosition(); + if (currentPosition == scrollToPosition) { + return; + } + stickersLayoutManager.scrollToPositionWithOffset(scrollToPosition, -gridView.getPaddingTop() + searchFieldHeight + AndroidUtilities.dp(48)); + }); + + gridView.setOnScrollListener(new RecyclerView.OnScrollListener() { + @Override + public void onScrollStateChanged(RecyclerView recyclerView, int newState) { + if (newState == RecyclerView.SCROLL_STATE_DRAGGING) { + stickersSearchField.hideKeyboard(); + } + } + + @Override + public void onScrolled(RecyclerView recyclerView, int dx, int dy) { + updateLayout(true); + } + }); + + View topShadow = new View(context); + topShadow.setBackgroundDrawable(Theme.getThemedDrawable(context, R.drawable.greydivider_bottom, 0xffe2e5e7)); + containerView.addView(topShadow, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 6)); + + if (!isVideo) { + bottomTabContainer = new FrameLayout(context) { + @Override + public boolean onInterceptTouchEvent(MotionEvent ev) { + if (getParent() != null) { + getParent().requestDisallowInterceptTouchEvent(true); + } + return super.onInterceptTouchEvent(ev); + } + }; + + shadowLine = new View(context); + shadowLine.setBackgroundColor(0x12000000); + bottomTabContainer.addView(shadowLine, new FrameLayout.LayoutParams(LayoutHelper.MATCH_PARENT, AndroidUtilities.getShadowHeight())); + + View bottomTabContainerBackground = new View(context); + bottomTabContainerBackground.setBackgroundColor(0xff252525); + bottomTabContainer.addView(bottomTabContainerBackground, new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, AndroidUtilities.dp(48), Gravity.LEFT | Gravity.BOTTOM)); + + containerView.addView(bottomTabContainer, new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, AndroidUtilities.dp(48) + AndroidUtilities.getShadowHeight(), Gravity.LEFT | Gravity.BOTTOM)); + + LinearLayout itemsLayout = new LinearLayout(context); + itemsLayout.setOrientation(LinearLayout.HORIZONTAL); + bottomTabContainer.addView(itemsLayout, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, 48, Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM)); + + stickersButton = new ImageView(context) { + @Override + public void setSelected(boolean selected) { + super.setSelected(selected); + Drawable background = getBackground(); + if (Build.VERSION.SDK_INT >= 21 && background != null) { + int color = selected ? 0xff6ebaed : 0x1effffff; + Theme.setSelectorDrawableColor(background, Color.argb(30, Color.red(color), Color.green(color), Color.blue(color)), true); + } + } + }; + stickersButton.setScaleType(ImageView.ScaleType.CENTER); + stickersButton.setImageDrawable(Theme.createEmojiIconSelectorDrawable(context, R.drawable.smiles_tab_stickers, 0xffffffff, 0xff6ebaed)); + if (Build.VERSION.SDK_INT >= 21) { + RippleDrawable rippleDrawable = (RippleDrawable) Theme.createSelectorDrawable(0x1effffff); + Theme.setRippleDrawableForceSoftware(rippleDrawable); + stickersButton.setBackground(rippleDrawable); + } + itemsLayout.addView(stickersButton, LayoutHelper.createLinear(70, 48)); + stickersButton.setOnClickListener(v -> { + if (currentType == MediaDataController.TYPE_IMAGE) { + return; + } + currentType = MediaDataController.TYPE_IMAGE; + updateType(); + }); + + masksButton = new ImageView(context) { + @Override + public void setSelected(boolean selected) { + super.setSelected(selected); + Drawable background = getBackground(); + if (Build.VERSION.SDK_INT >= 21 && background != null) { + int color = selected ? 0xff6ebaed : 0x1effffff; + Theme.setSelectorDrawableColor(background, Color.argb(30, Color.red(color), Color.green(color), Color.blue(color)), true); + } + } + }; + masksButton.setScaleType(ImageView.ScaleType.CENTER); + masksButton.setImageDrawable(Theme.createEmojiIconSelectorDrawable(context, R.drawable.ic_masks_msk1, 0xffffffff, 0xff6ebaed)); + if (Build.VERSION.SDK_INT >= 21) { + RippleDrawable rippleDrawable = (RippleDrawable) Theme.createSelectorDrawable(0x1effffff); + Theme.setRippleDrawableForceSoftware(rippleDrawable); + masksButton.setBackground(rippleDrawable); + } + itemsLayout.addView(masksButton, LayoutHelper.createLinear(70, 48)); + masksButton.setOnClickListener(v -> { + if (currentType == MediaDataController.TYPE_MASK) { + return; + } + currentType = MediaDataController.TYPE_MASK; + updateType(); + }); + } + + checkDocuments(true); + reloadStickersAdapter(); + } + + private int getCurrentTop() { + if (gridView.getChildCount() != 0) { + View child = gridView.getChildAt(0); + RecyclerListView.Holder holder = (RecyclerListView.Holder) gridView.findContainingViewHolder(child); + if (holder != null) { + return gridView.getPaddingTop() - (holder.getAdapterPosition() == 0 && child.getTop() >= 0 ? child.getTop() : 0); + } + } + return -1000; + } + + private void updateType() { + if (gridView.getChildCount() > 0) { + View firstView = gridView.getChildAt(0); + RecyclerView.ViewHolder holder = gridView.findContainingViewHolder(firstView); + if (holder != null) { + int top; + if (holder.getAdapterPosition() != 0) { + top = -gridView.getPaddingTop(); + } else { + top = -gridView.getPaddingTop() + firstView.getTop(); + } + stickersLayoutManager.scrollToPositionWithOffset(0, top); + } + } + checkDocuments(true); + } + + @Override + protected boolean canDismissWithSwipe() { + return false; + } + + public void setDelegate(StickerMasksAlertDelegate stickerMasksAlertDelegate) { + delegate = stickerMasksAlertDelegate; + } + + private void updateLayout(boolean animated) { + if (gridView.getChildCount() <= 0) { + gridView.setTopGlowOffset(scrollOffsetY = gridView.getPaddingTop()); + containerView.invalidate(); + return; + } + View child = gridView.getChildAt(0); + RecyclerListView.Holder holder = (RecyclerListView.Holder) gridView.findContainingViewHolder(child); + int top = child.getTop(); + int newOffset = AndroidUtilities.dp(7); + if (top >= AndroidUtilities.dp(7) && holder != null && holder.getAdapterPosition() == 0) { + newOffset = top; + } + newOffset += -AndroidUtilities.dp(11); + if (scrollOffsetY != newOffset) { + gridView.setTopGlowOffset(scrollOffsetY = newOffset); + stickersTab.setTranslationY(newOffset); + stickersSearchField.setTranslationY(newOffset + AndroidUtilities.dp(48)); + containerView.invalidate(); + } + + holder = (RecyclerListView.Holder) gridView.findViewHolderForAdapterPosition(0); + if (holder == null) { + stickersSearchField.showShadow(true, animated); + } else { + stickersSearchField.showShadow(holder.itemView.getTop() < gridView.getPaddingTop(), animated); + } + + if (gridView.getAdapter() == stickersSearchGridAdapter) { + holder = (RecyclerListView.Holder) gridView.findViewHolderForAdapterPosition(stickersSearchGridAdapter.getItemCount() - 1); + if (holder != null && holder.getItemViewType() == 5) { + FrameLayout layout = (FrameLayout) holder.itemView; + int count = layout.getChildCount(); + float tr = -(layout.getTop() - searchFieldHeight - AndroidUtilities.dp(48)) / 2; + for (int a = 0; a < count; a++) { + layout.getChildAt(a).setTranslationY(tr); + } + } + } + + checkPanels(); + } + + private void showBottomTab(boolean show, boolean animated) { + if (show && bottomTabContainer.getTag() == null || !show && bottomTabContainer.getTag() != null) { + return; + } + if (bottomTabContainerAnimation != null) { + bottomTabContainerAnimation.cancel(); + bottomTabContainerAnimation = null; + } + bottomTabContainer.setTag(show ? null : 1); + if (animated) { + bottomTabContainerAnimation = new AnimatorSet(); + bottomTabContainerAnimation.playTogether( + ObjectAnimator.ofFloat(bottomTabContainer, View.TRANSLATION_Y, show ? 0 : AndroidUtilities.dp(49)), + ObjectAnimator.ofFloat(shadowLine, View.TRANSLATION_Y, show ? 0 : AndroidUtilities.dp(49))); + bottomTabContainerAnimation.setDuration(200); + bottomTabContainerAnimation.setInterpolator(CubicBezierInterpolator.EASE_OUT); + bottomTabContainerAnimation.start(); + } else { + bottomTabContainer.setTranslationY(show ? 0 : AndroidUtilities.dp(49)); + shadowLine.setTranslationY(show ? 0 : AndroidUtilities.dp(49)); + } + } + + private void updateStickerTabs() { + if (stickersTab == null) { + return; + } + + if (stickersButton != null) { + if (currentType == MediaDataController.TYPE_IMAGE) { + stickersButton.setSelected(true); + masksButton.setSelected(false); + } else { + stickersButton.setSelected(false); + masksButton.setSelected(true); + } + } + + recentTabBum = -2; + favTabBum = -2; + + stickersTabOffset = 0; + int lastPosition = stickersTab.getCurrentPosition(); + stickersTab.beginUpdate(false); + + if (currentType == MediaDataController.TYPE_IMAGE && !favouriteStickers.isEmpty()) { + favTabBum = stickersTabOffset; + stickersTabOffset++; + stickersTab.addIconTab(1, stickerIcons[1]).setContentDescription(LocaleController.getString("FavoriteStickers", R.string.FavoriteStickers)); + } + + if (!recentStickers[currentType].isEmpty()) { + recentTabBum = stickersTabOffset; + stickersTabOffset++; + stickersTab.addIconTab(0, stickerIcons[0]).setContentDescription(LocaleController.getString("RecentStickers", R.string.RecentStickers)); + } + + stickerSets[currentType].clear(); + ArrayList packs = MediaDataController.getInstance(currentAccount).getStickerSets(currentType); + for (int a = 0; a < packs.size(); a++) { + TLRPC.TL_messages_stickerSet pack = packs.get(a); + if (pack.set.archived || pack.documents == null || pack.documents.isEmpty()) { + continue; + } + stickerSets[currentType].add(pack); + } + for (int a = 0; a < stickerSets[currentType].size(); a++) { + TLRPC.TL_messages_stickerSet stickerSet = stickerSets[currentType].get(a); + TLObject thumb; + TLRPC.Document document = stickerSet.documents.get(0); + if (stickerSet.set.thumb instanceof TLRPC.TL_photoSize) { + thumb = stickerSet.set.thumb; + } else { + thumb = document; + } + stickersTab.addStickerTab(thumb, document, stickerSet).setContentDescription(stickerSet.set.title + ", " + LocaleController.getString("AccDescrStickerSet", R.string.AccDescrStickerSet)); + } + stickersTab.commitUpdate(); + stickersTab.updateTabStyles(); + if (lastPosition != 0) { + stickersTab.onPageScrolled(lastPosition, lastPosition); + } + checkPanels(); + } + + private void checkPanels() { + if (stickersTab == null) { + return; + } + int count = gridView.getChildCount(); + View child = null; + for (int a = 0; a < count; a++) { + child = gridView.getChildAt(a); + if (child.getBottom() > searchFieldHeight + AndroidUtilities.dp(48)) { + break; + } + } + if (child == null) { + return; + } + RecyclerListView.Holder holder = (RecyclerListView.Holder) gridView.findContainingViewHolder(child); + int position = holder != null ? holder.getAdapterPosition() : RecyclerView.NO_POSITION; + if (position != RecyclerView.NO_POSITION) { + int firstTab; + if (favTabBum > 0) { + firstTab = favTabBum; + } else if (recentTabBum > 0) { + firstTab = recentTabBum; + } else { + firstTab = stickersTabOffset; + } + stickersTab.onPageScrolled(stickersGridAdapter.getTabForPosition(position), firstTab); + } + } + + public void addRecentSticker(TLRPC.Document document) { + if (document == null) { + return; + } + MediaDataController.getInstance(currentAccount).addRecentSticker(currentType, null, document, (int) (System.currentTimeMillis() / 1000), false); + boolean wasEmpty = recentStickers[currentType].isEmpty(); + recentStickers[currentType] = MediaDataController.getInstance(currentAccount).getRecentStickers(currentType); + if (stickersGridAdapter != null) { + stickersGridAdapter.notifyDataSetChanged(); + } + if (wasEmpty) { + updateStickerTabs(); + } + } + + private void reloadStickersAdapter() { + if (stickersGridAdapter != null) { + stickersGridAdapter.notifyDataSetChanged(); + } + if (stickersSearchGridAdapter != null) { + stickersSearchGridAdapter.notifyDataSetChanged(); + } + if (ContentPreviewViewer.getInstance().isVisible()) { + ContentPreviewViewer.getInstance().close(); + } + ContentPreviewViewer.getInstance().reset(); + } + + @Override + public void dismissInternal() { + super.dismissInternal(); + NotificationCenter.getGlobalInstance().removeObserver(this, NotificationCenter.emojiDidLoad); + NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.stickersDidLoad); + NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.recentDocumentsDidLoad); + } + + private void checkDocuments(boolean force) { + int previousCount = recentStickers[currentType].size(); + int previousCount2 = favouriteStickers.size(); + recentStickers[currentType] = MediaDataController.getInstance(currentAccount).getRecentStickers(currentType); + favouriteStickers = MediaDataController.getInstance(currentAccount).getRecentStickers(MediaDataController.TYPE_FAVE); + if (currentType == MediaDataController.TYPE_IMAGE) { + for (int a = 0; a < favouriteStickers.size(); a++) { + TLRPC.Document favSticker = favouriteStickers.get(a); + for (int b = 0; b < recentStickers[currentType].size(); b++) { + TLRPC.Document recSticker = recentStickers[currentType].get(b); + if (recSticker.dc_id == favSticker.dc_id && recSticker.id == favSticker.id) { + recentStickers[currentType].remove(b); + break; + } + } + } + } + if (force || previousCount != recentStickers[currentType].size() || previousCount2 != favouriteStickers.size()) { + updateStickerTabs(); + } + if (stickersGridAdapter != null) { + stickersGridAdapter.notifyDataSetChanged(); + } + if (!force) { + checkPanels(); + } + } + + @Override + public void didReceivedNotification(int id, int account, Object... args) { + if (id == NotificationCenter.stickersDidLoad) { + if ((Integer) args[0] == currentType) { + updateStickerTabs(); + reloadStickersAdapter(); + checkPanels(); + } + } else if (id == NotificationCenter.recentDocumentsDidLoad) { + boolean isGif = (Boolean) args[0]; + int type = (Integer) args[1]; + if (!isGif && (type == currentType || type == MediaDataController.TYPE_FAVE)) { + checkDocuments(false); + } + } else if (id == NotificationCenter.emojiDidLoad) { + if (gridView != null) { + int count = gridView.getChildCount(); + for (int a = 0; a < count; a++) { + View child = gridView.getChildAt(a); + if (child instanceof StickerSetNameCell || child instanceof StickerEmojiCell) { + child.invalidate(); + } + } + } + } + } + + private class StickersGridAdapter extends RecyclerListView.SelectionAdapter { + + private Context context; + private int stickersPerRow; + private SparseArray rowStartPack = new SparseArray<>(); + private HashMap packStartPosition = new HashMap<>(); + private SparseArray cache = new SparseArray<>(); + private SparseArray cacheParents = new SparseArray<>(); + private SparseIntArray positionToRow = new SparseIntArray(); + private int totalItems; + + public StickersGridAdapter(Context context) { + this.context = context; + } + + @Override + public boolean isEnabled(RecyclerView.ViewHolder holder) { + return false; + } + + @Override + public int getItemCount() { + return totalItems != 0 ? totalItems + 1 : 0; + } + + public Object getItem(int i) { + return cache.get(i); + } + + public int getPositionForPack(Object pack) { + Integer pos = packStartPosition.get(pack); + if (pos == null) { + return -1; + } + return pos; + } + + @Override + public int getItemViewType(int position) { + if (position == 0) { + return 4; + } + Object object = cache.get(position); + if (object != null) { + if (object instanceof TLRPC.Document) { + return 0; + } else { + return 2; + } + } + return 1; + } + + public int getTabForPosition(int position) { + if (position == 0) { + position = 1; + } + if (stickersPerRow == 0) { + int width = gridView.getMeasuredWidth(); + if (width == 0) { + width = AndroidUtilities.displaySize.x; + } + stickersPerRow = width / AndroidUtilities.dp(72); + } + int row = positionToRow.get(position, Integer.MIN_VALUE); + if (row == Integer.MIN_VALUE) { + return stickerSets[currentType].size() - 1 + stickersTabOffset; + } + Object pack = rowStartPack.get(row); + if (pack instanceof String) { + if ("recent".equals(pack)) { + return recentTabBum; + } else { + return favTabBum; + } + } else { + TLRPC.TL_messages_stickerSet set = (TLRPC.TL_messages_stickerSet) pack; + int idx = stickerSets[currentType].indexOf(set); + return idx + stickersTabOffset; + } + } + + @Override + public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = null; + switch (viewType) { + case 0: + view = new StickerEmojiCell(context) { + public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(82), MeasureSpec.EXACTLY)); + } + }; + break; + case 1: + view = new EmptyCell(context); + break; + case 2: + StickerSetNameCell cell = new StickerSetNameCell(context, false); + cell.setTitleColor(0xff888888); + view = cell; + break; + case 4: + view = new View(context); + view.setLayoutParams(new RecyclerView.LayoutParams(LayoutHelper.MATCH_PARENT, searchFieldHeight + AndroidUtilities.dp(48))); + break; + } + + return new RecyclerListView.Holder(view); + } + + @Override + public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { + switch (holder.getItemViewType()) { + case 0: { + TLRPC.Document sticker = (TLRPC.Document) cache.get(position); + StickerEmojiCell cell = (StickerEmojiCell) holder.itemView; + cell.setSticker(sticker, cacheParents.get(position), false); + cell.setRecent(recentStickers[currentType].contains(sticker)); + break; + } + case 1: { + EmptyCell cell = (EmptyCell) holder.itemView; + if (position == totalItems) { + int row = positionToRow.get(position - 1, Integer.MIN_VALUE); + if (row == Integer.MIN_VALUE) { + cell.setHeight(1); + } else { + ArrayList documents; + Object pack = rowStartPack.get(row); + if (pack instanceof TLRPC.TL_messages_stickerSet) { + documents = ((TLRPC.TL_messages_stickerSet) pack).documents; + } else if (pack instanceof String) { + if ("recent".equals(pack)) { + documents = recentStickers[currentType]; + } else { + documents = favouriteStickers; + } + } else { + documents = null; + } + if (documents == null) { + cell.setHeight(1); + } else { + if (documents.isEmpty()) { + cell.setHeight(AndroidUtilities.dp(8)); + } else { + int height = gridView.getHeight() - (int) Math.ceil(documents.size() / (float) stickersPerRow) * AndroidUtilities.dp(82); + cell.setHeight(height > 0 ? height : 1); + } + } + } + } else { + cell.setHeight(AndroidUtilities.dp(82)); + } + break; + } + case 2: { + StickerSetNameCell cell = (StickerSetNameCell) holder.itemView; + Object object = cache.get(position); + if (object instanceof TLRPC.TL_messages_stickerSet) { + TLRPC.TL_messages_stickerSet set = (TLRPC.TL_messages_stickerSet) object; + if (set.set != null) { + cell.setText(set.set.title, 0); + } + } else if (object == recentStickers[currentType]) { + cell.setText(LocaleController.getString("RecentStickers", R.string.RecentStickers), 0); + } else if (object == favouriteStickers) { + cell.setText(LocaleController.getString("FavoriteStickers", R.string.FavoriteStickers), 0); + } + break; + } + } + } + + @Override + public void notifyDataSetChanged() { + int width = gridView.getMeasuredWidth(); + if (width == 0) { + width = AndroidUtilities.displaySize.x; + } + stickersPerRow = width / AndroidUtilities.dp(72); + stickersLayoutManager.setSpanCount(stickersPerRow); + rowStartPack.clear(); + packStartPosition.clear(); + positionToRow.clear(); + cache.clear(); + totalItems = 0; + ArrayList packs = stickerSets[currentType]; + int startRow = 0; + for (int a = -3; a < packs.size(); a++) { + ArrayList documents; + TLRPC.TL_messages_stickerSet pack = null; + String key; + if (a == -3) { + cache.put(totalItems++, "search"); + startRow++; + continue; + } else if (a == -2) { + if (currentType == MediaDataController.TYPE_IMAGE) { + documents = favouriteStickers; + packStartPosition.put(key = "fav", totalItems); + } else { + documents = null; + key = null; + } + } else if (a == -1) { + documents = recentStickers[currentType]; + packStartPosition.put(key = "recent", totalItems); + } else { + key = null; + pack = packs.get(a); + documents = pack.documents; + packStartPosition.put(pack, totalItems); + } + if (documents == null || documents.isEmpty()) { + continue; + } + int count = (int) Math.ceil(documents.size() / (float) stickersPerRow); + if (pack != null) { + cache.put(totalItems, pack); + } else { + cache.put(totalItems, documents); + } + positionToRow.put(totalItems, startRow); + for (int b = 0; b < documents.size(); b++) { + int num = 1 + b + totalItems; + cache.put(num, documents.get(b)); + if (pack != null) { + cacheParents.put(num, pack); + } else { + cacheParents.put(num, key); + } + positionToRow.put(1 + b + totalItems, startRow + 1 + b / stickersPerRow); + } + for (int b = 0; b < count + 1; b++) { + if (pack != null) { + rowStartPack.put(startRow + b, pack); + } else { + rowStartPack.put(startRow + b, a == -1 ? "recent" : "fav"); + } + } + totalItems += count * stickersPerRow + 1; + startRow += count + 1; + } + super.notifyDataSetChanged(); + } + } + + private class StickersSearchGridAdapter extends RecyclerListView.SelectionAdapter { + + private Context context; + private SparseArray rowStartPack = new SparseArray<>(); + private SparseArray cache = new SparseArray<>(); + private SparseArray cacheParent = new SparseArray<>(); + private SparseIntArray positionToRow = new SparseIntArray(); + private SparseArray positionToEmoji = new SparseArray<>(); + private int totalItems; + + private ArrayList localPacks = new ArrayList<>(); + private HashMap localPacksByShortName = new HashMap<>(); + private HashMap localPacksByName = new HashMap<>(); + private HashMap, String> emojiStickers = new HashMap<>(); + private ArrayList> emojiArrays = new ArrayList<>(); + + private int reqId2; + + private int emojiSearchId; + boolean cleared; + private String searchQuery; + private Runnable searchRunnable = new Runnable() { + + private void clear() { + if (cleared) { + return; + } + cleared = true; + emojiStickers.clear(); + emojiArrays.clear(); + localPacks.clear(); + localPacksByShortName.clear(); + localPacksByName.clear(); + } + + @Override + public void run() { + if (TextUtils.isEmpty(searchQuery)) { + return; + } + cleared = false; + int lastId = ++emojiSearchId; + + final ArrayList emojiStickersArray = new ArrayList<>(0); + final LongSparseArray emojiStickersMap = new LongSparseArray<>(0); + HashMap> allStickers = MediaDataController.getInstance(currentAccount).getAllStickers(); + if (searchQuery.length() <= 14) { + CharSequence emoji = searchQuery; + int length = emoji.length(); + for (int a = 0; a < length; a++) { + if (a < length - 1 && (emoji.charAt(a) == 0xD83C && emoji.charAt(a + 1) >= 0xDFFB && emoji.charAt(a + 1) <= 0xDFFF || emoji.charAt(a) == 0x200D && (emoji.charAt(a + 1) == 0x2640 || emoji.charAt(a + 1) == 0x2642))) { + emoji = TextUtils.concat(emoji.subSequence(0, a), emoji.subSequence(a + 2, emoji.length())); + length -= 2; + a--; + } else if (emoji.charAt(a) == 0xfe0f) { + emoji = TextUtils.concat(emoji.subSequence(0, a), emoji.subSequence(a + 1, emoji.length())); + length--; + a--; + } + } + ArrayList newStickers = allStickers != null ? allStickers.get(emoji.toString()) : null; + if (newStickers != null && !newStickers.isEmpty()) { + clear(); + emojiStickersArray.addAll(newStickers); + for (int a = 0, size = newStickers.size(); a < size; a++) { + TLRPC.Document document = newStickers.get(a); + emojiStickersMap.put(document.id, document); + } + emojiStickers.put(emojiStickersArray, searchQuery); + emojiArrays.add(emojiStickersArray); + } + } + if (allStickers != null && !allStickers.isEmpty() && searchQuery.length() > 1) { + String[] newLanguage = AndroidUtilities.getCurrentKeyboardLanguage(); + if (!Arrays.equals(lastSearchKeyboardLanguage, newLanguage)) { + MediaDataController.getInstance(currentAccount).fetchNewEmojiKeywords(newLanguage); + } + lastSearchKeyboardLanguage = newLanguage; + MediaDataController.getInstance(currentAccount).getEmojiSuggestions(lastSearchKeyboardLanguage, searchQuery, false, (param, alias) -> { + if (lastId != emojiSearchId) { + return; + } + boolean added = false; + for (int a = 0, size = param.size(); a < size; a++) { + String emoji = param.get(a).emoji; + ArrayList newStickers = allStickers != null ? allStickers.get(emoji) : null; + if (newStickers != null && !newStickers.isEmpty()) { + clear(); + if (!emojiStickers.containsKey(newStickers)) { + emojiStickers.put(newStickers, emoji); + emojiArrays.add(newStickers); + added = true; + } + } + } + if (added) { + notifyDataSetChanged(); + } else if (reqId2 == 0) { + clear(); + notifyDataSetChanged(); + } + }); + } + ArrayList local = MediaDataController.getInstance(currentAccount).getStickerSets(currentType); + int index; + for (int a = 0, size = local.size(); a < size; a++) { + TLRPC.TL_messages_stickerSet set = local.get(a); + if ((index = AndroidUtilities.indexOfIgnoreCase(set.set.title, searchQuery)) >= 0) { + if (index == 0 || set.set.title.charAt(index - 1) == ' ') { + clear(); + localPacks.add(set); + localPacksByName.put(set, index); + } + } else if (set.set.short_name != null && (index = AndroidUtilities.indexOfIgnoreCase(set.set.short_name, searchQuery)) >= 0) { + if (index == 0 || set.set.short_name.charAt(index - 1) == ' ') { + clear(); + localPacks.add(set); + localPacksByShortName.put(set, true); + } + } + } + local = MediaDataController.getInstance(currentAccount).getStickerSets(MediaDataController.TYPE_FEATURED); + for (int a = 0, size = local.size(); a < size; a++) { + TLRPC.TL_messages_stickerSet set = local.get(a); + if ((index = AndroidUtilities.indexOfIgnoreCase(set.set.title, searchQuery)) >= 0) { + if (index == 0 || set.set.title.charAt(index - 1) == ' ') { + clear(); + localPacks.add(set); + localPacksByName.put(set, index); + } + } else if (set.set.short_name != null && (index = AndroidUtilities.indexOfIgnoreCase(set.set.short_name, searchQuery)) >= 0) { + if (index == 0 || set.set.short_name.charAt(index - 1) == ' ') { + clear(); + localPacks.add(set); + localPacksByShortName.put(set, true); + } + } + } + boolean validEmoji; + if (validEmoji = Emoji.isValidEmoji(searchQuery)) { + stickersSearchField.progressDrawable.startAnimation(); + final TLRPC.TL_messages_getStickers req2 = new TLRPC.TL_messages_getStickers(); + req2.emoticon = searchQuery; + req2.hash = 0; + reqId2 = ConnectionsManager.getInstance(currentAccount).sendRequest(req2, (response, error) -> AndroidUtilities.runOnUIThread(() -> { + if (req2.emoticon.equals(searchQuery)) { + stickersSearchField.progressDrawable.stopAnimation(); + reqId2 = 0; + if (!(response instanceof TLRPC.TL_messages_stickers)) { + return; + } + TLRPC.TL_messages_stickers res = (TLRPC.TL_messages_stickers) response; + int oldCount = emojiStickersArray.size(); + for (int a = 0, size = res.stickers.size(); a < size; a++) { + TLRPC.Document document = res.stickers.get(a); + if (emojiStickersMap.indexOfKey(document.id) >= 0) { + continue; + } + emojiStickersArray.add(document); + } + int newCount = emojiStickersArray.size(); + if (oldCount != newCount) { + emojiStickers.put(emojiStickersArray, searchQuery); + if (oldCount == 0) { + emojiArrays.add(emojiStickersArray); + } + notifyDataSetChanged(); + } + if (gridView.getAdapter() != stickersSearchGridAdapter) { + gridView.setAdapter(stickersSearchGridAdapter); + } + } + })); + } + if ((!validEmoji || !localPacks.isEmpty() || !emojiStickers.isEmpty()) && gridView.getAdapter() != stickersSearchGridAdapter) { + gridView.setAdapter(stickersSearchGridAdapter); + } + notifyDataSetChanged(); + } + }; + + public StickersSearchGridAdapter(Context context) { + this.context = context; + } + + @Override + public boolean isEnabled(RecyclerView.ViewHolder holder) { + return false; + } + + @Override + public int getItemCount() { + if (totalItems != 1) { + return totalItems + 1; + } else { + return 2; + } + } + + public Object getItem(int i) { + return cache.get(i); + } + + public void search(String text) { + if (reqId2 != 0) { + ConnectionsManager.getInstance(currentAccount).cancelRequest(reqId2, true); + reqId2 = 0; + } + if (TextUtils.isEmpty(text)) { + searchQuery = null; + localPacks.clear(); + emojiStickers.clear(); + if (gridView.getAdapter() != stickersGridAdapter) { + gridView.setAdapter(stickersGridAdapter); + } + notifyDataSetChanged(); + } else { + searchQuery = text.toLowerCase(); + } + AndroidUtilities.cancelRunOnUIThread(searchRunnable); + AndroidUtilities.runOnUIThread(searchRunnable, 300); + } + + @Override + public int getItemViewType(int position) { + if (position == 0) { + return 4; + } else if (position == 1 && totalItems == 1) { + return 5; + } + Object object = cache.get(position); + if (object != null) { + if (object instanceof TLRPC.Document) { + return 0; + } else { + return 2; + } + } + return 1; + } + + @Override + public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = null; + switch (viewType) { + case 0: + view = new StickerEmojiCell(context) { + public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(82), MeasureSpec.EXACTLY)); + } + }; + break; + case 1: + view = new EmptyCell(context); + break; + case 2: + view = new StickerSetNameCell(context, false); + break; + case 4: + view = new View(context); + view.setLayoutParams(new RecyclerView.LayoutParams(LayoutHelper.MATCH_PARENT, searchFieldHeight + AndroidUtilities.dp(48))); + break; + case 5: + FrameLayout frameLayout = new FrameLayout(context) { + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + int height = gridView.getMeasuredHeight(); + super.onMeasure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(height - searchFieldHeight - AndroidUtilities.dp(48) - AndroidUtilities.dp(48), MeasureSpec.EXACTLY)); + } + }; + + ImageView imageView = new ImageView(context); + imageView.setScaleType(ImageView.ScaleType.CENTER); + imageView.setImageResource(R.drawable.stickers_empty); + imageView.setColorFilter(new PorterDuffColorFilter(0xff949ba1, PorterDuff.Mode.MULTIPLY)); + frameLayout.addView(imageView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER, 0, 0, 0, 50)); + + TextView textView = new TextView(context); + textView.setText(LocaleController.getString("NoStickersFound", R.string.NoStickersFound)); + textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); + textView.setTextColor(0xff949ba1); + frameLayout.addView(textView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER, 0, 0, 0, 0)); + + view = frameLayout; + view.setLayoutParams(new RecyclerView.LayoutParams(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); + break; + } + + return new RecyclerListView.Holder(view); + } + + @Override + public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { + switch (holder.getItemViewType()) { + case 0: { + TLRPC.Document sticker = (TLRPC.Document) cache.get(position); + StickerEmojiCell cell = (StickerEmojiCell) holder.itemView; + cell.setSticker(sticker, cacheParent.get(position), positionToEmoji.get(position), false); + cell.setRecent(recentStickers[currentType].contains(sticker) || favouriteStickers.contains(sticker)); + break; + } + case 1: { + EmptyCell cell = (EmptyCell) holder.itemView; + if (position == totalItems) { + int row = positionToRow.get(position - 1, Integer.MIN_VALUE); + if (row == Integer.MIN_VALUE) { + cell.setHeight(1); + } else { + Object pack = rowStartPack.get(row); + Integer count; + if (pack instanceof TLRPC.TL_messages_stickerSet) { + count = ((TLRPC.TL_messages_stickerSet) pack).documents.size(); + } else if (pack instanceof Integer) { + count = (Integer) pack; + } else { + count = null; + } + if (count == null) { + cell.setHeight(1); + } else { + if (count == 0) { + cell.setHeight(AndroidUtilities.dp(8)); + } else { + int height = gridView.getHeight() - (int) Math.ceil(count / (float) stickersGridAdapter.stickersPerRow) * AndroidUtilities.dp(82); + cell.setHeight(height > 0 ? height : 1); + } + } + } + } else { + cell.setHeight(AndroidUtilities.dp(82)); + } + break; + } + case 2: { + StickerSetNameCell cell = (StickerSetNameCell) holder.itemView; + Object object = cache.get(position); + if (object instanceof TLRPC.TL_messages_stickerSet) { + TLRPC.TL_messages_stickerSet set = (TLRPC.TL_messages_stickerSet) object; + if (!TextUtils.isEmpty(searchQuery) && localPacksByShortName.containsKey(set)) { + if (set.set != null) { + cell.setText(set.set.title, 0); + } + cell.setUrl(set.set.short_name, searchQuery.length()); + } else { + Integer start = localPacksByName.get(set); + if (set.set != null && start != null) { + cell.setText(set.set.title, 0, start, !TextUtils.isEmpty(searchQuery) ? searchQuery.length() : 0); + } + cell.setUrl(null, 0); + } + } + break; + } + } + } + + @Override + public void notifyDataSetChanged() { + rowStartPack.clear(); + positionToRow.clear(); + cache.clear(); + positionToEmoji.clear(); + totalItems = 0; + int startRow = 0; + for (int a = -1, localCount = localPacks.size(), emojiCount = (emojiArrays.isEmpty() ? 0 : 1); a < localCount + emojiCount; a++) { + ArrayList documents; + Object pack; + String key; + if (a == -1) { + cache.put(totalItems++, "search"); + startRow++; + continue; + } else { + if (a < localCount) { + TLRPC.TL_messages_stickerSet set = localPacks.get(a); + documents = set.documents; + pack = set; + } else { + int documentsCount = 0; + String lastEmoji = ""; + for (int i = 0, N = emojiArrays.size(); i < N; i++) { + documents = emojiArrays.get(i); + String emoji = emojiStickers.get(documents); + if (emoji != null && !lastEmoji.equals(emoji)) { + lastEmoji = emoji; + positionToEmoji.put(totalItems + documentsCount, lastEmoji); + } + for (int b = 0, size = documents.size(); b < size; b++) { + int num = documentsCount + totalItems; + int row = startRow + documentsCount / stickersGridAdapter.stickersPerRow; + + TLRPC.Document document = documents.get(b); + cache.put(num, document); + Object parent = MediaDataController.getInstance(currentAccount).getStickerSetById(MediaDataController.getStickerSetId(document)); + if (parent != null) { + cacheParent.put(num, parent); + } + positionToRow.put(num, row); + documentsCount++; + } + } + int count = (int) Math.ceil(documentsCount / (float) stickersGridAdapter.stickersPerRow); + for (int b = 0; b < count; b++) { + rowStartPack.put(startRow + b, documentsCount); + } + totalItems += count * stickersGridAdapter.stickersPerRow; + startRow += count; + continue; + } + } + if (documents.isEmpty()) { + continue; + } + int count = (int) Math.ceil(documents.size() / (float) stickersGridAdapter.stickersPerRow); + cache.put(totalItems, pack); + positionToRow.put(totalItems, startRow); + for (int b = 0, size = documents.size(); b < size; b++) { + int num = 1 + b + totalItems; + int row = startRow + 1 + b / stickersGridAdapter.stickersPerRow; + TLRPC.Document document = documents.get(b); + cache.put(num, document); + if (pack != null) { + cacheParent.put(num, pack); + } + positionToRow.put(num, row); + } + for (int b = 0, N = count + 1; b < N; b++) { + rowStartPack.put(startRow + b, pack); + } + totalItems += 1 + count * stickersGridAdapter.stickersPerRow; + startRow += count + 1; + } + super.notifyDataSetChanged(); + } + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/StickerMasksView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/StickerMasksView.java deleted file mode 100644 index 0d9702bed..000000000 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/StickerMasksView.java +++ /dev/null @@ -1,482 +0,0 @@ -/* - * This is the source code of Telegram for Android v. 5.x.x. - * It is licensed under GNU GPL v. 2 or later. - * You should have received a copy of the license in this archive (see LICENSE). - * - * Copyright Nikolai Kudashov, 2013-2018. - */ - -package org.telegram.ui.Components; - -import android.content.Context; -import android.graphics.drawable.Drawable; -import android.util.SparseArray; -import android.util.TypedValue; -import android.view.Gravity; -import android.view.MotionEvent; -import android.view.View; -import android.view.ViewGroup; -import android.widget.FrameLayout; -import android.widget.TextView; - -import org.telegram.messenger.AndroidUtilities; -import org.telegram.messenger.MediaDataController; -import org.telegram.messenger.LocaleController; -import org.telegram.messenger.MessagesController; -import org.telegram.messenger.NotificationCenter; -import org.telegram.messenger.R; -import org.telegram.messenger.UserConfig; -import org.telegram.tgnet.TLRPC; -import org.telegram.ui.ActionBar.Theme; -import org.telegram.ui.Cells.EmptyCell; -import org.telegram.ui.Cells.StickerEmojiCell; -import org.telegram.ui.ContentPreviewViewer; - -import java.util.ArrayList; -import java.util.HashMap; - -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -@SuppressWarnings("unchecked") -public class StickerMasksView extends FrameLayout implements NotificationCenter.NotificationCenterDelegate { - - public interface Listener { - void onStickerSelected(Object parentObject, TLRPC.Document sticker); - void onTypeChanged(); - } - - private int currentAccount = UserConfig.selectedAccount; - private ArrayList[] stickerSets = new ArrayList[]{new ArrayList<>(), new ArrayList<>()}; - private ArrayList[] recentStickers = new ArrayList[]{new ArrayList<>(), new ArrayList<>()}; - private int currentType = MediaDataController.TYPE_MASK; - - private Listener listener; - private StickersGridAdapter stickersGridAdapter; - private ScrollSlidingTabStrip scrollSlidingTabStrip; - private RecyclerListView stickersGridView; - private GridLayoutManager stickersLayoutManager; - private TextView stickersEmptyView; - private RecyclerListView.OnItemClickListener stickersOnItemClickListener; - - private int stickersTabOffset; - private int recentTabBum = -2; - - private int lastNotifyWidth; - - public StickerMasksView(final Context context) { - super(context); - setBackgroundColor(0xff222222); - setClickable(true); - - MediaDataController.getInstance(currentAccount).checkStickers(MediaDataController.TYPE_IMAGE); - MediaDataController.getInstance(currentAccount).checkStickers(MediaDataController.TYPE_MASK); - stickersGridView = new RecyclerListView(context) { - @Override - public boolean onInterceptTouchEvent(MotionEvent event) { - boolean result = ContentPreviewViewer.getInstance().onInterceptTouchEvent(event, stickersGridView, StickerMasksView.this.getMeasuredHeight(), null); - return super.onInterceptTouchEvent(event) || result; - } - }; - - stickersGridView.setLayoutManager(stickersLayoutManager = new GridLayoutManager(context, 5)); - stickersLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { - @Override - public int getSpanSize(int position) { - if (position == stickersGridAdapter.totalItems) { - return stickersGridAdapter.stickersPerRow; - } - return 1; - } - }); - stickersGridView.setPadding(0, AndroidUtilities.dp(4), 0, 0); - stickersGridView.setClipToPadding(false); - stickersGridView.setAdapter(stickersGridAdapter = new StickersGridAdapter(context)); - stickersGridView.setOnTouchListener((v, event) -> ContentPreviewViewer.getInstance().onTouch(event, stickersGridView, StickerMasksView.this.getMeasuredHeight(), stickersOnItemClickListener, null)); - stickersOnItemClickListener = (view, position) -> { - if (!(view instanceof StickerEmojiCell)) { - return; - } - ContentPreviewViewer.getInstance().reset(); - StickerEmojiCell cell = (StickerEmojiCell) view; - if (cell.isDisabled()) { - return; - } - TLRPC.Document document = cell.getSticker(); - Object parent = cell.getParentObject(); - listener.onStickerSelected(parent, document); - MediaDataController.getInstance(currentAccount).addRecentSticker(MediaDataController.TYPE_MASK, parent, document, (int) (System.currentTimeMillis() / 1000), false); - MessagesController.getInstance(currentAccount).saveRecentSticker(parent, document, true); - }; - stickersGridView.setOnItemClickListener(stickersOnItemClickListener); - stickersGridView.setGlowColor(0xfff5f6f7); - addView(stickersGridView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.LEFT | Gravity.TOP, 0, 48, 0, 0)); - - stickersEmptyView = new TextView(context); - stickersEmptyView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 18); - stickersEmptyView.setTextColor(0xff888888); - addView(stickersEmptyView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER, 0, 48, 0, 0)); - stickersGridView.setEmptyView(stickersEmptyView); - - scrollSlidingTabStrip = new ScrollSlidingTabStrip(context); - scrollSlidingTabStrip.setBackgroundColor(0xff000000); - scrollSlidingTabStrip.setUnderlineHeight(AndroidUtilities.dp(1)); - scrollSlidingTabStrip.setIndicatorColor(0xff62bfe8); - scrollSlidingTabStrip.setUnderlineColor(0xff1a1a1a); - scrollSlidingTabStrip.setIndicatorHeight(AndroidUtilities.dp(1) + 1); - addView(scrollSlidingTabStrip, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 48, Gravity.LEFT | Gravity.TOP)); - updateStickerTabs(); - scrollSlidingTabStrip.setDelegate(page -> { - if (page == 0) { - if (currentType == MediaDataController.TYPE_IMAGE) { - currentType = MediaDataController.TYPE_MASK; - } else { - currentType = MediaDataController.TYPE_IMAGE; - } - if (listener != null) { - listener.onTypeChanged(); - } - recentStickers[currentType] = MediaDataController.getInstance(currentAccount).getRecentStickers(currentType); - stickersLayoutManager.scrollToPositionWithOffset(0, 0); - updateStickerTabs(); - reloadStickersAdapter(); - checkDocuments(); - checkPanels(); - return; - } - if (page == recentTabBum + 1) { - stickersLayoutManager.scrollToPositionWithOffset(0, 0); - return; - } - int index = page - 1 - stickersTabOffset; - if (index >= stickerSets[currentType].size()) { - index = stickerSets[currentType].size() - 1; - } - stickersLayoutManager.scrollToPositionWithOffset(stickersGridAdapter.getPositionForPack(stickerSets[currentType].get(index)), 0); - checkScroll(); - }); - - stickersGridView.setOnScrollListener(new RecyclerView.OnScrollListener() { - @Override - public void onScrolled(RecyclerView recyclerView, int dx, int dy) { - checkScroll(); - } - }); - } - - private void checkScroll() { - int firstVisibleItem = stickersLayoutManager.findFirstVisibleItemPosition(); - if (firstVisibleItem == RecyclerView.NO_POSITION) { - return; - } - checkStickersScroll(firstVisibleItem); - } - - private void checkStickersScroll(int firstVisibleItem) { - if (stickersGridView == null) { - return; - } - scrollSlidingTabStrip.onPageScrolled(stickersGridAdapter.getTabForPosition(firstVisibleItem) + 1, (recentTabBum > 0 ? recentTabBum : stickersTabOffset) + 1); - } - - public int getCurrentType() { - return currentType; - } - - private void updateStickerTabs() { - if (scrollSlidingTabStrip == null) { - return; - } - recentTabBum = -2; - - stickersTabOffset = 0; - int lastPosition = scrollSlidingTabStrip.getCurrentPosition(); - scrollSlidingTabStrip.removeTabs(); - if (currentType == MediaDataController.TYPE_IMAGE) { - Drawable drawable = getContext().getResources().getDrawable(R.drawable.ic_masks_msk1); - Theme.setDrawableColorByKey(drawable, Theme.key_chat_emojiPanelIcon); - scrollSlidingTabStrip.addIconTab(0, drawable); - stickersEmptyView.setText(LocaleController.getString("NoStickers", R.string.NoStickers)); - } else { - Drawable drawable = getContext().getResources().getDrawable(R.drawable.ic_masks_sticker1); - Theme.setDrawableColorByKey(drawable, Theme.key_chat_emojiPanelIcon); - scrollSlidingTabStrip.addIconTab(1, drawable); - stickersEmptyView.setText(LocaleController.getString("NoMasks", R.string.NoMasks)); - } - - if (!recentStickers[currentType].isEmpty()) { - recentTabBum = stickersTabOffset; - stickersTabOffset++; - scrollSlidingTabStrip.addIconTab(2, Theme.createEmojiIconSelectorDrawable(getContext(), R.drawable.ic_masks_recent1, Theme.getColor(Theme.key_chat_emojiPanelMasksIcon), Theme.getColor(Theme.key_chat_emojiPanelMasksIconSelected))); - } - - stickerSets[currentType].clear(); - ArrayList packs = MediaDataController.getInstance(currentAccount).getStickerSets(currentType); - for (int a = 0; a < packs.size(); a++) { - TLRPC.TL_messages_stickerSet pack = packs.get(a); - if (pack.set.archived || pack.documents == null || pack.documents.isEmpty()) { - continue; - } - stickerSets[currentType].add(pack); - } - for (int a = 0; a < stickerSets[currentType].size(); a++) { - TLRPC.TL_messages_stickerSet set = stickerSets[currentType].get(a); - TLRPC.Document document = set.documents.get(0); - scrollSlidingTabStrip.addStickerTab(document, document, set); - } - scrollSlidingTabStrip.updateTabStyles(); - if (lastPosition != 0) { - scrollSlidingTabStrip.onPageScrolled(lastPosition, lastPosition); - } - checkPanels(); - } - - private void checkPanels() { - if (scrollSlidingTabStrip == null) { - return; - } - int position = stickersLayoutManager.findFirstVisibleItemPosition(); - if (position != RecyclerView.NO_POSITION) { - scrollSlidingTabStrip.onPageScrolled(stickersGridAdapter.getTabForPosition(position) + 1, (recentTabBum > 0 ? recentTabBum : stickersTabOffset) + 1); - } - } - - public void addRecentSticker(TLRPC.Document document) { - if (document == null) { - return; - } - MediaDataController.getInstance(currentAccount).addRecentSticker(currentType, null, document, (int) (System.currentTimeMillis() / 1000), false); - boolean wasEmpty = recentStickers[currentType].isEmpty(); - recentStickers[currentType] = MediaDataController.getInstance(currentAccount).getRecentStickers(currentType); - if (stickersGridAdapter != null) { - stickersGridAdapter.notifyDataSetChanged(); - } - if (wasEmpty) { - updateStickerTabs(); - } - } - - @Override - protected void onLayout(boolean changed, int left, int top, int right, int bottom) { - if (lastNotifyWidth != right - left) { - lastNotifyWidth = right - left; - reloadStickersAdapter(); - } - super.onLayout(changed, left, top, right, bottom); - } - - private void reloadStickersAdapter() { - if (stickersGridAdapter != null) { - stickersGridAdapter.notifyDataSetChanged(); - } - if (ContentPreviewViewer.getInstance().isVisible()) { - ContentPreviewViewer.getInstance().close(); - } - ContentPreviewViewer.getInstance().reset(); - } - - public void setListener(Listener value) { - listener = value; - } - - @Override - protected void onAttachedToWindow() { - super.onAttachedToWindow(); - NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.stickersDidLoad); - NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.recentDocumentsDidLoad); - AndroidUtilities.runOnUIThread(() -> { - updateStickerTabs(); - reloadStickersAdapter(); - }); - } - - @Override - public void setVisibility(int visibility) { - super.setVisibility(visibility); - if (visibility != GONE) { - NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.stickersDidLoad); - NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.recentDocumentsDidLoad); - updateStickerTabs(); - reloadStickersAdapter(); - checkDocuments(); - MediaDataController.getInstance(currentAccount).loadRecents(MediaDataController.TYPE_IMAGE, false, true, false); - MediaDataController.getInstance(currentAccount).loadRecents(MediaDataController.TYPE_MASK, false, true, false); - MediaDataController.getInstance(currentAccount).loadRecents(MediaDataController.TYPE_FAVE, false, true, false); - } - } - - public void onDestroy() { - if (stickersGridAdapter != null) { - NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.stickersDidLoad); - NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.recentDocumentsDidLoad); - } - } - - private void checkDocuments() { - int previousCount = recentStickers[currentType].size(); - recentStickers[currentType] = MediaDataController.getInstance(currentAccount).getRecentStickers(currentType); - if (stickersGridAdapter != null) { - stickersGridAdapter.notifyDataSetChanged(); - } - if (previousCount != recentStickers[currentType].size()) { - updateStickerTabs(); - } - } - - @Override - public void didReceivedNotification(int id, int account, Object... args) { - if (id == NotificationCenter.stickersDidLoad) { - if ((Integer) args[0] == currentType) { - updateStickerTabs(); - reloadStickersAdapter(); - checkPanels(); - } - } else if (id == NotificationCenter.recentDocumentsDidLoad) { - boolean isGif = (Boolean) args[0]; - if (!isGif && (Integer) args[1] == currentType) { - checkDocuments(); - } - } - } - - private class StickersGridAdapter extends RecyclerListView.SelectionAdapter { - - private Context context; - private int stickersPerRow; - private SparseArray rowStartPack = new SparseArray<>(); - private HashMap packStartRow = new HashMap<>(); - private SparseArray cache = new SparseArray<>(); - private SparseArray positionsToSets = new SparseArray<>(); - private int totalItems; - - public StickersGridAdapter(Context context) { - this.context = context; - } - - @Override - public int getItemCount() { - return totalItems != 0 ? totalItems + 1 : 0; - } - - public Object getItem(int i) { - return cache.get(i); - } - - public int getPositionForPack(TLRPC.TL_messages_stickerSet stickerSet) { - return packStartRow.get(stickerSet) * stickersPerRow; - } - - @Override - public int getItemViewType(int position) { - if (cache.get(position) != null) { - return 0; - } - return 1; - } - - public int getTabForPosition(int position) { - if (stickersPerRow == 0) { - int width = getMeasuredWidth(); - if (width == 0) { - width = AndroidUtilities.displaySize.x; - } - stickersPerRow = width / AndroidUtilities.dp(72); - } - int row = position / stickersPerRow; - TLRPC.TL_messages_stickerSet pack = rowStartPack.get(row); - if (pack == null) { - return recentTabBum; - } - return stickerSets[currentType].indexOf(pack) + stickersTabOffset; - } - - @Override - public boolean isEnabled(RecyclerView.ViewHolder holder) { - return false; - } - - @Override - public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { - View view = null; - switch (viewType) { - case 0: - view = new StickerEmojiCell(context) { - public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - super.onMeasure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(82), MeasureSpec.EXACTLY)); - } - }; - break; - case 1: - view = new EmptyCell(context); - break; - } - - return new RecyclerListView.Holder(view); - } - - @Override - public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { - switch (holder.getItemViewType()) { - case 0: - TLRPC.Document sticker = cache.get(position); - ((StickerEmojiCell) holder.itemView).setSticker(sticker, positionsToSets.get(position), false); - break; - case 1: - if (position == totalItems) { - int row = (position - 1) / stickersPerRow; - TLRPC.TL_messages_stickerSet pack = rowStartPack.get(row); - if (pack == null) { - ((EmptyCell) holder.itemView).setHeight(1); - } else { - int height = stickersGridView.getMeasuredHeight() - (int) Math.ceil(pack.documents.size() / (float) stickersPerRow) * AndroidUtilities.dp(82); - ((EmptyCell) holder.itemView).setHeight(height > 0 ? height : 1); - } - } else { - ((EmptyCell) holder.itemView).setHeight(AndroidUtilities.dp(82)); - } - break; - } - } - - @Override - public void notifyDataSetChanged() { - int width = getMeasuredWidth(); - if (width == 0) { - width = AndroidUtilities.displaySize.x; - } - stickersPerRow = width / AndroidUtilities.dp(72); - stickersLayoutManager.setSpanCount(stickersPerRow); - rowStartPack.clear(); - packStartRow.clear(); - cache.clear(); - positionsToSets.clear(); - totalItems = 0; - ArrayList packs = stickerSets[currentType]; - for (int a = -1; a < packs.size(); a++) { - ArrayList documents; - TLRPC.TL_messages_stickerSet pack = null; - int startRow = totalItems / stickersPerRow; - if (a == -1) { - documents = recentStickers[currentType]; - } else { - pack = packs.get(a); - documents = pack.documents; - packStartRow.put(pack, startRow); - } - if (documents.isEmpty()) { - continue; - } - int count = (int) Math.ceil(documents.size() / (float) stickersPerRow); - for (int b = 0; b < documents.size(); b++) { - cache.put(b + totalItems, documents.get(b)); - positionsToSets.put(b + totalItems, pack); - } - totalItems += count * stickersPerRow; - for (int b = 0; b < count; b++) { - rowStartPack.put(startRow + b, pack); - } - } - super.notifyDataSetChanged(); - } - } -} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/StickersAlert.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/StickersAlert.java index efc73d3da..bea69f44f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/StickersAlert.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/StickersAlert.java @@ -17,6 +17,7 @@ import android.app.Activity; import android.content.Context; import android.graphics.*; import android.graphics.Rect; +import android.graphics.drawable.Drawable; import android.os.Build; import android.text.Selection; import android.text.Spannable; @@ -47,11 +48,13 @@ import org.telegram.messenger.NotificationCenter; import org.telegram.messenger.R; import org.telegram.tgnet.ConnectionsManager; import org.telegram.tgnet.RequestDelegate; +import org.telegram.tgnet.TLObject; import org.telegram.tgnet.TLRPC; import org.telegram.ui.ActionBar.ActionBarMenuItem; import org.telegram.ui.ActionBar.BaseFragment; import org.telegram.ui.ActionBar.BottomSheet; import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.ActionBar.ThemeDescription; import org.telegram.ui.Cells.EmptyCell; import org.telegram.ui.Cells.FeaturedStickerSetInfoCell; import org.telegram.ui.Cells.StickerEmojiCell; @@ -59,6 +62,7 @@ import org.telegram.ui.ChatActivity; import org.telegram.ui.ContentPreviewViewer; import java.util.ArrayList; +import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -130,6 +134,7 @@ public class StickersAlert extends BottomSheet implements NotificationCenter.Not private boolean clearsInputField; private boolean showTooltipWhenToggle = true; + private String buttonTextColorKey; private ContentPreviewViewer.ContentPreviewViewerDelegate previewDelegate = new ContentPreviewViewer.ContentPreviewViewerDelegate() { @Override @@ -175,19 +180,33 @@ public class StickersAlert extends BottomSheet implements NotificationCenter.Not } }; - public StickersAlert(Context context, Object parentObject, TLRPC.Photo photo) { + public StickersAlert(Context context, Object parentObject, TLObject object) { super(context, false); parentActivity = (Activity) context; final TLRPC.TL_messages_getAttachedStickers req = new TLRPC.TL_messages_getAttachedStickers(); - TLRPC.TL_inputStickeredMediaPhoto inputStickeredMediaPhoto = new TLRPC.TL_inputStickeredMediaPhoto(); - inputStickeredMediaPhoto.id = new TLRPC.TL_inputPhoto(); - inputStickeredMediaPhoto.id.id = photo.id; - inputStickeredMediaPhoto.id.access_hash = photo.access_hash; - inputStickeredMediaPhoto.id.file_reference = photo.file_reference; - if (inputStickeredMediaPhoto.id.file_reference == null) { - inputStickeredMediaPhoto.id.file_reference = new byte[0]; + if (object instanceof TLRPC.Photo) { + TLRPC.Photo photo = (TLRPC.Photo) object; + TLRPC.TL_inputStickeredMediaPhoto inputStickeredMediaPhoto = new TLRPC.TL_inputStickeredMediaPhoto(); + inputStickeredMediaPhoto.id = new TLRPC.TL_inputPhoto(); + inputStickeredMediaPhoto.id.id = photo.id; + inputStickeredMediaPhoto.id.access_hash = photo.access_hash; + inputStickeredMediaPhoto.id.file_reference = photo.file_reference; + if (inputStickeredMediaPhoto.id.file_reference == null) { + inputStickeredMediaPhoto.id.file_reference = new byte[0]; + } + req.media = inputStickeredMediaPhoto; + } else if (object instanceof TLRPC.Document) { + TLRPC.Document document = (TLRPC.Document) object; + TLRPC.TL_inputStickeredMediaDocument inputStickeredMediaDocument = new TLRPC.TL_inputStickeredMediaDocument(); + inputStickeredMediaDocument.id = new TLRPC.TL_inputDocument(); + inputStickeredMediaDocument.id.id = document.id; + inputStickeredMediaDocument.id.access_hash = document.access_hash; + inputStickeredMediaDocument.id.file_reference = document.file_reference; + if (inputStickeredMediaDocument.id.file_reference == null) { + inputStickeredMediaDocument.id.file_reference = new byte[0]; + } + req.media = inputStickeredMediaDocument; } - req.media = inputStickeredMediaPhoto; RequestDelegate requestDelegate = (response, error) -> AndroidUtilities.runOnUIThread(() -> { reqId = 0; if (error == null) { @@ -435,7 +454,12 @@ public class StickersAlert extends BottomSheet implements NotificationCenter.Not } }; gridView.setTag(14); - gridView.setLayoutManager(layoutManager = new GridLayoutManager(getContext(), 5)); + gridView.setLayoutManager(layoutManager = new GridLayoutManager(getContext(), 5) { + @Override + protected boolean isLayoutRTL() { + return stickerSetCovereds != null && LocaleController.isRTL; + } + }); layoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { @Override public int getSpanSize(int position) { @@ -533,7 +557,6 @@ public class StickersAlert extends BottomSheet implements NotificationCenter.Not titleTextView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack)); titleTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); titleTextView.setLinkTextColor(Theme.getColor(Theme.key_dialogTextLink)); - titleTextView.setHighlightColor(Theme.getColor(Theme.key_dialogLinkSelection)); titleTextView.setEllipsize(TextUtils.TruncateAt.END); titleTextView.setPadding(AndroidUtilities.dp(18), 0, AndroidUtilities.dp(18), 0); titleTextView.setGravity(Gravity.CENTER_VERTICAL); @@ -564,7 +587,7 @@ public class StickersAlert extends BottomSheet implements NotificationCenter.Not pickerBottomLayout = new TextView(context); pickerBottomLayout.setBackgroundDrawable(Theme.createSelectorWithBackgroundDrawable(Theme.getColor(Theme.key_dialogBackground), Theme.getColor(Theme.key_listSelector))); - pickerBottomLayout.setTextColor(Theme.getColor(Theme.key_dialogTextBlue2)); + pickerBottomLayout.setTextColor(Theme.getColor(buttonTextColorKey = Theme.key_dialogTextBlue2)); pickerBottomLayout.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); pickerBottomLayout.setPadding(AndroidUtilities.dp(18), 0, AndroidUtilities.dp(18), 0); pickerBottomLayout.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); @@ -572,7 +595,6 @@ public class StickersAlert extends BottomSheet implements NotificationCenter.Not containerView.addView(pickerBottomLayout, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 48, Gravity.LEFT | Gravity.BOTTOM)); stickerPreviewLayout = new FrameLayout(context); - stickerPreviewLayout.setBackgroundColor(Theme.getColor(Theme.key_dialogBackground) & 0xdfffffff); stickerPreviewLayout.setVisibility(View.GONE); stickerPreviewLayout.setSoundEffectsEnabled(false); containerView.addView(stickerPreviewLayout, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); @@ -591,8 +613,8 @@ public class StickersAlert extends BottomSheet implements NotificationCenter.Not previewSendButton = new TextView(context); previewSendButton.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); previewSendButton.setTextColor(Theme.getColor(Theme.key_dialogTextBlue2)); + previewSendButton.setBackground(Theme.createSelectorWithBackgroundDrawable(Theme.getColor(Theme.key_dialogBackground), Theme.getColor(Theme.key_listSelector))); previewSendButton.setGravity(Gravity.CENTER); - previewSendButton.setBackgroundColor(Theme.getColor(Theme.key_dialogBackground)); previewSendButton.setPadding(AndroidUtilities.dp(29), 0, AndroidUtilities.dp(29), 0); previewSendButton.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); stickerPreviewLayout.addView(previewSendButton, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 48, Gravity.BOTTOM | Gravity.LEFT)); @@ -611,6 +633,7 @@ public class StickersAlert extends BottomSheet implements NotificationCenter.Not updateFields(); updateSendButton(); + updateColors(); adapter.notifyDataSetChanged(); } @@ -729,7 +752,7 @@ public class StickersAlert extends BottomSheet implements NotificationCenter.Not } MediaDataController.getInstance(currentAccount).loadStickers(type, false, true); })); - }, text, Theme.getColor(Theme.key_dialogTextBlue2)); + }, text, Theme.key_dialogTextBlue2); } else { String text; if (stickerSet.set.masks) { @@ -744,7 +767,7 @@ public class StickersAlert extends BottomSheet implements NotificationCenter.Not } dismiss(); MediaDataController.getInstance(currentAccount).toggleStickerSet(getContext(), stickerSet, 1, parentFragment, true, showTooltipWhenToggle); - }, text, Theme.getColor(Theme.key_dialogTextRed)); + }, text, Theme.key_dialogTextRed); } else { setButton(v -> { if (installDelegate != null) { @@ -752,13 +775,13 @@ public class StickersAlert extends BottomSheet implements NotificationCenter.Not } dismiss(); MediaDataController.getInstance(currentAccount).toggleStickerSet(getContext(), stickerSet, 0, parentFragment, true, showTooltipWhenToggle); - }, text, Theme.getColor(Theme.key_dialogTextRed)); + }, text, Theme.key_dialogTextRed); } } adapter.notifyDataSetChanged(); } else { String text = LocaleController.getString("Close", R.string.Close).toUpperCase(); - setButton((v) -> dismiss(), text, Theme.getColor(Theme.key_dialogTextBlue2)); + setButton((v) -> dismiss(), text, Theme.key_dialogTextBlue2); } } @@ -871,7 +894,6 @@ public class StickersAlert extends BottomSheet implements NotificationCenter.Not @Override public void didReceivedNotification(int id, int account, Object... args) { if (id == NotificationCenter.emojiDidLoad) { - if (gridView != null) { int count = gridView.getChildCount(); for (int a = 0; a < count; a++) { @@ -885,8 +907,8 @@ public class StickersAlert extends BottomSheet implements NotificationCenter.Not } } - private void setButton(View.OnClickListener onClickListener, String title, int color) { - pickerBottomLayout.setTextColor(color); + private void setButton(View.OnClickListener onClickListener, String title, String colorKey) { + pickerBottomLayout.setTextColor(Theme.getColor(buttonTextColorKey = colorKey)); pickerBottomLayout.setText(title.toUpperCase()); pickerBottomLayout.setOnClickListener(onClickListener); } @@ -899,6 +921,78 @@ public class StickersAlert extends BottomSheet implements NotificationCenter.Not this.showTooltipWhenToggle = showTooltipWhenToggle; } + public void updateColors() { + updateColors(false); + } + + private List animatingDescriptions; + + public void updateColors(boolean applyDescriptions) { + adapter.updateColors(); + + titleTextView.setHighlightColor(Theme.getColor(Theme.key_dialogLinkSelection)); + stickerPreviewLayout.setBackgroundColor(Theme.getColor(Theme.key_dialogBackground) & 0xdfffffff); + + optionsButton.setIconColor(Theme.getColor(Theme.key_sheet_other)); + optionsButton.setPopupItemsColor(Theme.getColor(Theme.key_actionBarDefaultSubmenuItem), false); + optionsButton.setPopupItemsColor(Theme.getColor(Theme.key_actionBarDefaultSubmenuItemIcon), true); + optionsButton.setPopupItemsSelectorColor(Theme.getColor(Theme.key_dialogButtonSelector)); + optionsButton.redrawPopup(Theme.getColor(Theme.key_actionBarDefaultSubmenuBackground)); + + if (applyDescriptions) { + if (Theme.isAnimatingColor() && animatingDescriptions == null) { + animatingDescriptions = getThemeDescriptions(); + for (int i = 0, N = animatingDescriptions.size(); i < N; i++) { + animatingDescriptions.get(i).setDelegateDisabled(); + } + } + for (int i = 0, N = animatingDescriptions.size(); i < N; i++) { + final ThemeDescription description = animatingDescriptions.get(i); + description.setColor(Theme.getColor(description.getCurrentKey()), false, false); + } + } + + if (!Theme.isAnimatingColor() && animatingDescriptions != null) { + animatingDescriptions = null; + } + } + + @Override + public ArrayList getThemeDescriptions() { + final ArrayList descriptions = new ArrayList<>(); + final ThemeDescription.ThemeDescriptionDelegate delegate = this::updateColors; + + descriptions.add(new ThemeDescription(containerView, 0, null, null, new Drawable[]{shadowDrawable}, null, Theme.key_dialogBackground)); + descriptions.add(new ThemeDescription(containerView, 0, null, null, null, null, Theme.key_sheet_scrollUp)); + + adapter.getThemeDescriptions(descriptions, delegate); + + descriptions.add(new ThemeDescription(shadow[0], ThemeDescription.FLAG_BACKGROUND, null, null, null, null, Theme.key_dialogShadowLine)); + descriptions.add(new ThemeDescription(shadow[1], ThemeDescription.FLAG_BACKGROUND, null, null, null, null, Theme.key_dialogShadowLine)); + descriptions.add(new ThemeDescription(gridView, ThemeDescription.FLAG_LISTGLOWCOLOR, null, null, null, null, Theme.key_dialogScrollGlow)); + descriptions.add(new ThemeDescription(titleTextView, ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_dialogTextBlack)); + descriptions.add(new ThemeDescription(titleTextView, ThemeDescription.FLAG_LINKCOLOR, null, null, null, null, Theme.key_dialogTextLink)); + descriptions.add(new ThemeDescription(optionsButton, ThemeDescription.FLAG_BACKGROUNDFILTER | ThemeDescription.FLAG_DRAWABLESELECTEDSTATE, null, null, null, null, Theme.key_player_actionBarSelector)); + descriptions.add(new ThemeDescription(pickerBottomLayout, ThemeDescription.FLAG_BACKGROUNDFILTER, null, null, null, null, Theme.key_dialogBackground)); + descriptions.add(new ThemeDescription(pickerBottomLayout, ThemeDescription.FLAG_BACKGROUNDFILTER | ThemeDescription.FLAG_DRAWABLESELECTEDSTATE, null, null, null, null, Theme.key_listSelector)); + descriptions.add(new ThemeDescription(pickerBottomLayout, ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, buttonTextColorKey)); + descriptions.add(new ThemeDescription(previewSendButton, ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_dialogTextBlue2)); + descriptions.add(new ThemeDescription(previewSendButton, ThemeDescription.FLAG_BACKGROUNDFILTER, null, null, null, null, Theme.key_dialogBackground)); + descriptions.add(new ThemeDescription(previewSendButton, ThemeDescription.FLAG_BACKGROUNDFILTER | ThemeDescription.FLAG_DRAWABLESELECTEDSTATE, null, null, null, null, Theme.key_listSelector)); + descriptions.add(new ThemeDescription(previewSendButtonShadow, ThemeDescription.FLAG_BACKGROUND, null, null, null, null, Theme.key_dialogShadowLine)); + + descriptions.add(new ThemeDescription(null, 0, null, null, null, delegate, Theme.key_dialogLinkSelection)); + descriptions.add(new ThemeDescription(null, 0, null, null, null, delegate, Theme.key_dialogBackground)); + + descriptions.add(new ThemeDescription(null, 0, null, null, null, delegate, Theme.key_sheet_other)); + descriptions.add(new ThemeDescription(null, 0, null, null, null, delegate, Theme.key_actionBarDefaultSubmenuItem)); + descriptions.add(new ThemeDescription(null, 0, null, null, null, delegate, Theme.key_actionBarDefaultSubmenuItemIcon)); + descriptions.add(new ThemeDescription(null, 0, null, null, null, delegate, Theme.key_dialogButtonSelector)); + descriptions.add(new ThemeDescription(null, 0, null, null, null, delegate, Theme.key_actionBarDefaultSubmenuBackground)); + + return descriptions; + } + private class GridAdapter extends RecyclerListView.SelectionAdapter { private Context context; @@ -955,7 +1049,7 @@ public class StickersAlert extends BottomSheet implements NotificationCenter.Not view = new EmptyCell(context); break; case 2: - view = new FeaturedStickerSetInfoCell(context, 8); + view = new FeaturedStickerSetInfoCell(context, 8, true, false); break; } @@ -1038,5 +1132,22 @@ public class StickersAlert extends BottomSheet implements NotificationCenter.Not } super.notifyDataSetChanged(); } + + public void updateColors() { + if (stickerSetCovereds != null) { + for (int i = 0, size = gridView.getChildCount(); i < size; i++) { + final View child = gridView.getChildAt(i); + if (child instanceof FeaturedStickerSetInfoCell) { + ((FeaturedStickerSetInfoCell) child).updateColors(); + } + } + } + } + + public void getThemeDescriptions(List descriptions, ThemeDescription.ThemeDescriptionDelegate delegate) { + if (stickerSetCovereds != null) { + FeaturedStickerSetInfoCell.createThemeDescriptions(descriptions, gridView, delegate); + } + } } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/TextViewSwitcher.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/TextViewSwitcher.java new file mode 100644 index 000000000..5f3537057 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/TextViewSwitcher.java @@ -0,0 +1,53 @@ +package org.telegram.ui.Components; + +import android.content.Context; +import android.text.TextUtils; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; +import android.widget.ViewSwitcher; + +public class TextViewSwitcher extends ViewSwitcher { + + public TextViewSwitcher(Context context) { + super(context); + } + + public void setText(CharSequence text) { + setText(text, true); + } + + public void setText(CharSequence text, boolean animated) { + if (!TextUtils.equals(text, getCurrentView().getText())) { + if (animated) { + getNextView().setText(text); + showNext(); + } else { + getCurrentView().setText(text); + } + } + } + + @Override + public void addView(View child, int index, ViewGroup.LayoutParams params) { + if (!(child instanceof TextView)) { + throw new IllegalArgumentException(); + } + super.addView(child, index, params); + } + + @Override + public TextView getCurrentView() { + return (TextView) super.getCurrentView(); + } + + @Override + public TextView getNextView() { + return (TextView) super.getNextView(); + } + + public void invalidateViews() { + getCurrentView().invalidate(); + getNextView().invalidate(); + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ThemeEditorView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ThemeEditorView.java index a3783249c..25be40619 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ThemeEditorView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ThemeEditorView.java @@ -571,6 +571,11 @@ public class ThemeEditorView { startColorChange(true); int color = getColor(); for (int a = 0; a < currentThemeDesription.size(); a++) { + ThemeDescription description = currentThemeDesription.get(a); + String key = description.getCurrentKey(); + if (a == 0 && key.equals(Theme.key_chat_wallpaper) || key.equals(Theme.key_chat_wallpaper_gradient_to) || key.equals(Theme.key_windowBackgroundWhite) || key.equals(Theme.key_windowBackgroundGray)) { + color = 0xff000000 | color; + } currentThemeDesription.get(a).setColor(color, false); } int red = Color.red(color); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/TrendingStickersAlert.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/TrendingStickersAlert.java index 77152b5d7..99376b824 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/TrendingStickersAlert.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/TrendingStickersAlert.java @@ -6,6 +6,7 @@ import android.content.res.Configuration; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; +import android.graphics.drawable.Drawable; import android.graphics.drawable.GradientDrawable; import android.os.Build; import android.view.MotionEvent; @@ -20,6 +21,9 @@ import org.telegram.messenger.NotificationCenter; import org.telegram.ui.ActionBar.BaseFragment; import org.telegram.ui.ActionBar.BottomSheet; import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.ActionBar.ThemeDescription; + +import java.util.ArrayList; public class TrendingStickersAlert extends BottomSheet implements TrendingStickersLayout.AlertDelegate { @@ -103,6 +107,15 @@ public class TrendingStickersAlert extends BottomSheet implements TrendingSticke } } + @Override + public ArrayList getThemeDescriptions() { + final ArrayList descriptions = new ArrayList<>(); + layout.getThemeDescriptions(descriptions, layout::updateColors); + descriptions.add(new ThemeDescription(alertContainerView, 0, null, null, new Drawable[]{shadowDrawable}, null, Theme.key_dialogBackground)); + descriptions.add(new ThemeDescription(alertContainerView, 0, null, null, null, null, Theme.key_sheet_scrollUp)); + return descriptions; + } + private class AlertContainerView extends SizeNotifierFrameLayout { private final Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); @@ -112,6 +125,7 @@ public class TrendingStickersAlert extends BottomSheet implements TrendingSticke private boolean statusBarVisible = false; private ValueAnimator statusBarAnimator; private float statusBarAlpha = 0f; + private float[] radii = new float[8]; public AlertContainerView(@NonNull Context context) { super(context, true); @@ -163,7 +177,7 @@ public class TrendingStickersAlert extends BottomSheet implements TrendingSticke final int statusBarHeight = Build.VERSION.SDK_INT >= 21 ? AndroidUtilities.statusBarHeight : 0; final int height = MeasureSpec.getSize(heightMeasureSpec) - statusBarHeight; final int padding = (int) (height * 0.2f); - final int keyboardHeight = getKeyboardHeight(); + final int keyboardHeight = measureKeyboardHeight(); ignoreLayout = true; if (keyboardHeight > AndroidUtilities.dp(20)) { layout.setContentViewPaddingTop(0); @@ -214,7 +228,8 @@ public class TrendingStickersAlert extends BottomSheet implements TrendingSticke if (fraction > 0f && fraction < 1f) { final float radius = AndroidUtilities.dp(12) * fraction; shapeDrawable.setColor(Theme.getColor(Theme.key_dialogBackground)); - shapeDrawable.setCornerRadii(new float[]{radius, radius, radius, radius, 0, 0, 0, 0}); + radii[0] = radii[1] = radii[2] = radii[3] = radius; + shapeDrawable.setCornerRadii(radii); shapeDrawable.setBounds(backgroundPaddingLeft, scrollOffsetY + offset, getWidth() - backgroundPaddingLeft, scrollOffsetY + offset + AndroidUtilities.dp(24)); shapeDrawable.draw(canvas); } @@ -236,7 +251,8 @@ public class TrendingStickersAlert extends BottomSheet implements TrendingSticke final int h = AndroidUtilities.dp(4); final int offset = (int) (h * 2f * (1f - fraction)); shapeDrawable.setCornerRadius(AndroidUtilities.dp(2)); - shapeDrawable.setColor(ColorUtils.setAlphaComponent(Theme.getColor(Theme.key_sheet_scrollUp), (int) (255 * fraction))); + final int sheetScrollUpColor = Theme.getColor(Theme.key_sheet_scrollUp); + shapeDrawable.setColor(ColorUtils.setAlphaComponent(sheetScrollUpColor, (int) (Color.alpha(sheetScrollUpColor) * fraction))); shapeDrawable.setBounds((getWidth() - w) / 2, scrollOffsetY + AndroidUtilities.dp(10) + offset, (getWidth() + w) / 2, scrollOffsetY + AndroidUtilities.dp(10) + offset + h); shapeDrawable.draw(canvas); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/TrendingStickersLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/TrendingStickersLayout.java index cf67112d5..517780dcc 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/TrendingStickersLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/TrendingStickersLayout.java @@ -1,8 +1,6 @@ package org.telegram.ui.Components; -import android.app.Dialog; import android.content.Context; -import android.content.DialogInterface; import android.content.res.Configuration; import android.util.LongSparseArray; import android.util.SparseArray; @@ -17,7 +15,6 @@ import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.RecyclerView; import org.telegram.messenger.AndroidUtilities; -import org.telegram.messenger.FileLog; import org.telegram.messenger.LocaleController; import org.telegram.messenger.MediaDataController; import org.telegram.messenger.NotificationCenter; @@ -27,6 +24,7 @@ import org.telegram.tgnet.ConnectionsManager; import org.telegram.tgnet.TLRPC; import org.telegram.ui.ActionBar.BaseFragment; import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.ActionBar.ThemeDescription; import org.telegram.ui.Adapters.StickersSearchAdapter; import org.telegram.ui.Cells.EmptyCell; import org.telegram.ui.Cells.FeaturedStickerSetCell2; @@ -64,6 +62,21 @@ public class TrendingStickersLayout extends FrameLayout implements NotificationC public void setLastSearchKeyboardLanguage(String[] language) { lastSearchKeyboardLanguage = language; } + + public boolean canSendSticker() { + return false; + } + + public void onStickerSelected(TLRPC.Document sticker, Object parent, boolean clearsInputField, boolean notify, int scheduleDate) { + } + + public boolean canSchedule() { + return false; + } + + public boolean isInScheduleMode() { + return false; + } } public interface AlertDelegate { @@ -209,6 +222,7 @@ public class TrendingStickersLayout extends FrameLayout implements NotificationC } }; listView.setOnTouchListener((v, event) -> delegate.onListViewTouchEvent(listView, trendingOnItemClickListener, event)); + listView.setOverScrollMode(View.OVER_SCROLL_NEVER); listView.setClipToPadding(false); listView.setItemAnimator(null); listView.setLayoutAnimation(null); @@ -264,7 +278,6 @@ public class TrendingStickersLayout extends FrameLayout implements NotificationC }); listView.setAdapter(adapter); listView.setOnItemClickListener(trendingOnItemClickListener); - listView.setGlowColor(Theme.getColor(Theme.key_chat_emojiPanelBackground)); addView(listView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.LEFT | Gravity.TOP, 0, 0, 0, 0)); shadowView = new View(context); @@ -276,6 +289,8 @@ public class TrendingStickersLayout extends FrameLayout implements NotificationC addView(searchLayout, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 58, Gravity.LEFT | Gravity.TOP)); + updateColors(); + final NotificationCenter notificationCenter = NotificationCenter.getInstance(currentAccount); notificationCenter.addObserver(this, NotificationCenter.stickersDidLoad); notificationCenter.addObserver(this, NotificationCenter.featuredStickersDidLoad); @@ -325,7 +340,28 @@ public class TrendingStickersLayout extends FrameLayout implements NotificationC } private void showStickerSet(TLRPC.InputStickerSet inputStickerSet) { - final StickersAlert stickersAlert = new StickersAlert(getContext(), parentFragment, inputStickerSet, null, null) { + final StickersAlert.StickersAlertDelegate stickersAlertDelegate; + if (delegate.canSendSticker()) { + stickersAlertDelegate = new StickersAlert.StickersAlertDelegate() { + @Override + public void onStickerSelected(TLRPC.Document sticker, Object parent, boolean clearsInputField, boolean notify, int scheduleDate) { + delegate.onStickerSelected(sticker, parent, clearsInputField, notify, scheduleDate); + } + + @Override + public boolean canSchedule() { + return delegate.canSchedule(); + } + + @Override + public boolean isInScheduleMode() { + return delegate.isInScheduleMode(); + } + }; + } else { + stickersAlertDelegate = null; + } + final StickersAlert stickersAlert = new StickersAlert(getContext(), parentFragment, inputStickerSet, null, stickersAlertDelegate) { @Override public void show() { super.show(); @@ -471,6 +507,22 @@ public class TrendingStickersLayout extends FrameLayout implements NotificationC } } + public void updateColors() { + if (listView.getAdapter() == adapter) { + adapter.updateColors(listView); + } else { + searchAdapter.updateColors(listView); + } + } + + public void getThemeDescriptions(List descriptions, ThemeDescription.ThemeDescriptionDelegate delegate) { + searchView.getThemeDescriptions(descriptions); + adapter.getThemeDescriptions(descriptions, listView, delegate); + searchAdapter.getThemeDescriptions(descriptions, listView, delegate); + descriptions.add(new ThemeDescription(shadowView, ThemeDescription.FLAG_BACKGROUND, null, null, null, null, Theme.key_dialogShadowLine)); + descriptions.add(new ThemeDescription(searchLayout, ThemeDescription.FLAG_BACKGROUND, null, null, null, null, Theme.key_dialogBackground)); + } + private class TrendingStickersAdapter extends RecyclerListView.SelectionAdapter { public static final int PAYLOAD_ANIMATED = 0; @@ -495,11 +547,7 @@ public class TrendingStickersLayout extends FrameLayout implements NotificationC @Override public int getItemCount() { - return cache.size() + 1; - } - - public Object getItem(int i) { - return cache.get(i); + return totalItems + 1; } @Override @@ -818,5 +866,22 @@ public class TrendingStickersLayout extends FrameLayout implements NotificationC } })); } + + public void updateColors(RecyclerListView listView) { + for (int i = 0, size = listView.getChildCount(); i < size; i++) { + final View child = listView.getChildAt(i); + if (child instanceof FeaturedStickerSetInfoCell) { + ((FeaturedStickerSetInfoCell) child).updateColors(); + } else if (child instanceof FeaturedStickerSetCell2) { + ((FeaturedStickerSetCell2) child).updateColors(); + } + } + } + + public void getThemeDescriptions(List descriptions, RecyclerListView listView, ThemeDescription.ThemeDescriptionDelegate delegate) { + FeaturedStickerSetInfoCell.createThemeDescriptions(descriptions, listView, delegate); + FeaturedStickerSetCell2.createThemeDescriptions(descriptions, listView, delegate); + GraySectionCell.createThemeDescriptions(descriptions, listView); + } } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/UndoView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/UndoView.java index fd849ce32..90cc2dc88 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/UndoView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/UndoView.java @@ -100,6 +100,8 @@ public class UndoView extends FrameLayout { public final static int ACTION_DICE_NO_SEND_INFO = 17; public final static int ACTION_TEXT_INFO = 18; public final static int ACTION_CACHE_WAS_CLEARED = 19; + public final static int ACTION_ADDED_TO_FOLDER = 20; + public final static int ACTION_REMOVED_FROM_FOLDER = 21; private CharSequence infoText; @@ -215,7 +217,8 @@ public class UndoView extends FrameLayout { private boolean isTooltipAction() { return currentAction == ACTION_ARCHIVE_HIDDEN || currentAction == ACTION_ARCHIVE_HINT || currentAction == ACTION_ARCHIVE_FEW_HINT || currentAction == ACTION_ARCHIVE_PINNED || currentAction == ACTION_CONTACT_ADDED || currentAction == ACTION_OWNER_TRANSFERED_CHANNEL || - currentAction == ACTION_OWNER_TRANSFERED_GROUP || currentAction == ACTION_QUIZ_CORRECT || currentAction == ACTION_QUIZ_INCORRECT || currentAction == ACTION_CACHE_WAS_CLEARED; + currentAction == ACTION_OWNER_TRANSFERED_GROUP || currentAction == ACTION_QUIZ_CORRECT || currentAction == ACTION_QUIZ_INCORRECT || currentAction == ACTION_CACHE_WAS_CLEARED || + currentAction == ACTION_ADDED_TO_FOLDER || currentAction == ACTION_REMOVED_FROM_FOLDER; } private boolean hasSubInfo() { @@ -291,18 +294,22 @@ public class UndoView extends FrameLayout { } public void showWithAction(long did, int action, Runnable actionRunnable) { - showWithAction(did, action, null, actionRunnable, null); + showWithAction(did, action, null, null, actionRunnable, null); } public void showWithAction(long did, int action, Object infoObject) { - showWithAction(did, action, infoObject, null, null); + showWithAction(did, action, infoObject, null, null, null); } public void showWithAction(long did, int action, Runnable actionRunnable, Runnable cancelRunnable) { - showWithAction(did, action, null, actionRunnable, cancelRunnable); + showWithAction(did, action, null, null, actionRunnable, cancelRunnable); } public void showWithAction(long did, int action, Object infoObject, Runnable actionRunnable, Runnable cancelRunnable) { + showWithAction(did, action, infoObject, null, actionRunnable, cancelRunnable); + } + + public void showWithAction(long did, int action, Object infoObject, Object infoObject2, Runnable actionRunnable, Runnable cancelRunnable) { if (currentActionRunnable != null) { currentActionRunnable.run(); } @@ -338,6 +345,7 @@ public class UndoView extends FrameLayout { String subInfoText; int icon; int size = 36; + boolean iconIsDrawable = false; if (action == ACTION_OWNER_TRANSFERED_CHANNEL || action == ACTION_OWNER_TRANSFERED_GROUP) { TLRPC.User user = (TLRPC.User) infoObject; if (action == ACTION_OWNER_TRANSFERED_CHANNEL) { @@ -375,6 +383,44 @@ public class UndoView extends FrameLayout { subInfoText = null; } icon = R.raw.chats_infotip; + } else if (action == ACTION_ADDED_TO_FOLDER || action == ACTION_REMOVED_FROM_FOLDER) { + MessagesController.DialogFilter filter = (MessagesController.DialogFilter) infoObject2; + if (did != 0) { + int lowerId = (int) did; + if (lowerId == 0) { + TLRPC.EncryptedChat encryptedChat = MessagesController.getInstance(currentAccount).getEncryptedChat((int) (did >> 32)); + lowerId = encryptedChat.user_id; + } + if (lowerId > 0) { + TLRPC.User user = MessagesController.getInstance(currentAccount).getUser(lowerId); + if (action == ACTION_ADDED_TO_FOLDER) { + infoText = AndroidUtilities.replaceTags(LocaleController.formatString("FilterUserAddedToExisting", R.string.FilterUserAddedToExisting, UserObject.getFirstName(user), filter.name)); + } else { + infoText = AndroidUtilities.replaceTags(LocaleController.formatString("FilterUserRemovedFrom", R.string.FilterUserRemovedFrom, UserObject.getFirstName(user), filter.name)); + } + } else { + TLRPC.Chat chat = MessagesController.getInstance(currentAccount).getChat(-lowerId); + if (action == ACTION_ADDED_TO_FOLDER) { + infoText = AndroidUtilities.replaceTags(LocaleController.formatString("FilterChatAddedToExisting", R.string.FilterChatAddedToExisting, chat.title, filter.name)); + } else { + infoText = AndroidUtilities.replaceTags(LocaleController.formatString("FilterChatRemovedFrom", R.string.FilterChatRemovedFrom, chat.title, filter.name)); + } + } + } else { + if (action == ACTION_ADDED_TO_FOLDER) { + infoText = AndroidUtilities.replaceTags(LocaleController.formatString("FilterChatsAddedToExisting", R.string.FilterChatsAddedToExisting, LocaleController.formatPluralString("Chats", (Integer) infoObject), filter.name)); + } else { + infoText = AndroidUtilities.replaceTags(LocaleController.formatString("FilterChatsRemovedFrom", R.string.FilterChatsRemovedFrom, LocaleController.formatPluralString("Chats", (Integer) infoObject), filter.name)); + } + } + subInfoText = null; + icon = R.raw.contact_check; + /*iconIsDrawable = true; + if (action == ACTION_ADDED_TO_FOLDER) { + icon = R.drawable.toast_folder; + } else { + icon = R.drawable.toast_folder_minus; + }*/ } else if (action == ACTION_CACHE_WAS_CLEARED) { infoText = this.infoText; subInfoText = null; @@ -394,7 +440,11 @@ public class UndoView extends FrameLayout { } infoTextView.setText(infoText); - leftImageView.setAnimation(icon, size, size); + if (iconIsDrawable) { + leftImageView.setImageResource(icon); + } else { + leftImageView.setAnimation(icon, size, size); + } if (subInfoText != null) { layoutParams.leftMargin = AndroidUtilities.dp(58); @@ -418,8 +468,10 @@ public class UndoView extends FrameLayout { undoButton.setVisibility(GONE); leftImageView.setVisibility(VISIBLE); - leftImageView.setProgress(0); - leftImageView.playAnimation(); + if (!iconIsDrawable) { + leftImageView.setProgress(0); + leftImageView.playAnimation(); + } } else if (currentAction == ACTION_QR_SESSION_ACCEPTED) { TLRPC.TL_authorization authorization = (TLRPC.TL_authorization) infoObject; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/VideoEditTextureView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/VideoEditTextureView.java new file mode 100644 index 000000000..e4f67414d --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/VideoEditTextureView.java @@ -0,0 +1,123 @@ +package org.telegram.ui.Components; + +import android.content.Context; +import android.graphics.SurfaceTexture; +import android.view.Surface; +import android.view.TextureView; + +public class VideoEditTextureView extends TextureView implements TextureView.SurfaceTextureListener { + + private VideoPlayer currentVideoPlayer; + + private FilterGLThread eglThread; + private Rect viewRect = new Rect(); + private int videoWidth; + private int videoHeight; + + private VideoEditTextureViewDelegate delegate; + + public interface VideoEditTextureViewDelegate { + void onEGLThreadAvailable(FilterGLThread eglThread); + } + + public VideoEditTextureView(Context context, VideoPlayer videoPlayer) { + super(context); + + currentVideoPlayer = videoPlayer; + setSurfaceTextureListener(this); + } + + public void setDelegate(VideoEditTextureViewDelegate videoEditTextureViewDelegate) { + delegate = videoEditTextureViewDelegate; + if (eglThread != null) { + if (delegate == null) { + eglThread.setFilterGLThreadDelegate(null); + } else { + delegate.onEGLThreadAvailable(eglThread); + } + } + } + + public void setVideoSize(int width, int height) { + videoWidth = width; + videoHeight = height; + if (eglThread == null) { + return; + } + eglThread.setVideoSize(videoWidth, videoHeight); + } + + public int getVideoWidth() { + return videoWidth; + } + + public int getVideoHeight() { + return videoHeight; + } + + @Override + public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) { + if (eglThread == null && surface != null && currentVideoPlayer != null) { + eglThread = new FilterGLThread(surface, surfaceTexture -> { + if (currentVideoPlayer == null) { + return; + } + Surface s = new Surface(surfaceTexture); + currentVideoPlayer.setSurface(s); + }); + if (videoWidth != 0 && videoHeight != 0) { + eglThread.setVideoSize(videoWidth, videoHeight); + } + eglThread.setSurfaceTextureSize(width, height); + eglThread.requestRender(true, true, false); + if (delegate != null) { + delegate.onEGLThreadAvailable(eglThread); + } + } + } + + @Override + public void onSurfaceTextureSizeChanged(SurfaceTexture surface, final int width, final int height) { + if (eglThread != null) { + eglThread.setSurfaceTextureSize(width, height); + eglThread.requestRender(false, true, false); + eglThread.postRunnable(() -> { + if (eglThread != null) { + eglThread.requestRender(false, true, false); + } + }); + } + } + + @Override + public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) { + if (eglThread != null) { + eglThread.shutdown(); + eglThread = null; + } + return true; + } + + @Override + public void onSurfaceTextureUpdated(SurfaceTexture surface) { + + } + + public void release() { + if (eglThread != null) { + eglThread.shutdown(); + } + currentVideoPlayer = null; + } + + public void setViewRect(float x, float y, float w, float h) { + viewRect.x = x; + viewRect.y = y; + viewRect.width = w; + viewRect.height = h; + } + + public boolean containsPoint(float x, float y) { + return x >= viewRect.x && x <= viewRect.x + viewRect.width && y >= viewRect.y && y <= viewRect.y + viewRect.height; + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/VideoPlayer.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/VideoPlayer.java index 2e5896c29..f20fb1a41 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/VideoPlayer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/VideoPlayer.java @@ -9,25 +9,37 @@ package org.telegram.ui.Components; import android.annotation.SuppressLint; +import android.content.Context; import android.graphics.SurfaceTexture; import android.net.Uri; import android.os.Handler; +import android.os.Looper; +import android.view.Surface; import android.view.TextureView; import android.view.ViewGroup; +import androidx.annotation.Nullable; + import com.google.android.exoplayer2.C; -import com.google.android.exoplayer2.Player; -import com.google.android.exoplayer2.source.LoopingMediaSource; import com.google.android.exoplayer2.DefaultLoadControl; import com.google.android.exoplayer2.DefaultRenderersFactory; import com.google.android.exoplayer2.ExoPlaybackException; import com.google.android.exoplayer2.ExoPlayer; import com.google.android.exoplayer2.ExoPlayerFactory; import com.google.android.exoplayer2.PlaybackParameters; +import com.google.android.exoplayer2.Player; +import com.google.android.exoplayer2.Renderer; import com.google.android.exoplayer2.SimpleExoPlayer; import com.google.android.exoplayer2.Timeline; +import com.google.android.exoplayer2.audio.AudioProcessor; +import com.google.android.exoplayer2.audio.AudioRendererEventListener; +import com.google.android.exoplayer2.audio.TeeAudioProcessor; +import com.google.android.exoplayer2.drm.DrmSessionManager; +import com.google.android.exoplayer2.drm.FrameworkMediaCrypto; import com.google.android.exoplayer2.extractor.DefaultExtractorsFactory; +import com.google.android.exoplayer2.mediacodec.MediaCodecSelector; import com.google.android.exoplayer2.source.ExtractorMediaSource; +import com.google.android.exoplayer2.source.LoopingMediaSource; import com.google.android.exoplayer2.source.MediaSource; import com.google.android.exoplayer2.source.TrackGroupArray; import com.google.android.exoplayer2.source.dash.DashMediaSource; @@ -46,33 +58,38 @@ import com.google.android.exoplayer2.upstream.DefaultBandwidthMeter; import com.google.android.exoplayer2.upstream.DefaultHttpDataSourceFactory; import com.google.android.exoplayer2.video.SurfaceNotValidException; +import org.telegram.messenger.ApplicationLoader; +import org.telegram.messenger.FourierTransform; import org.telegram.messenger.NotificationCenter; import org.telegram.messenger.secretmedia.ExtendedDefaultDataSourceFactory; -import org.telegram.messenger.ApplicationLoader; + +import java.nio.ByteBuffer; +import java.util.ArrayList; @SuppressLint("NewApi") public class VideoPlayer implements ExoPlayer.EventListener, SimpleExoPlayer.VideoListener, NotificationCenter.NotificationCenterDelegate { - public interface RendererBuilder { - void buildRenderers(VideoPlayer player); - void cancel(); - } - public interface VideoPlayerDelegate { void onStateChanged(boolean playWhenReady, int playbackState); - void onError(Exception e); + void onError(VideoPlayer player, Exception e); void onVideoSizeChanged(int width, int height, int unappliedRotationDegrees, float pixelWidthHeightRatio); void onRenderedFirstFrame(); void onSurfaceTextureUpdated(SurfaceTexture surfaceTexture); boolean onSurfaceDestroyed(SurfaceTexture surfaceTexture); } + public interface AudioVisualizerDelegate { + void onVisualizerUpdate(boolean playing, boolean animate, float[] values); + boolean needUpdate(); + } + private SimpleExoPlayer player; private SimpleExoPlayer audioPlayer; private MappingTrackSelector trackSelector; private Handler mainHandler; private DataSource.Factory mediaDataSourceFactory; private TextureView textureView; + private Surface surface; private boolean isStreaming; private boolean autoplay; private boolean mixedAudio; @@ -84,6 +101,7 @@ public class VideoPlayer implements ExoPlayer.EventListener, SimpleExoPlayer.Vid private boolean mixedPlayWhenReady; private VideoPlayerDelegate delegate; + private AudioVisualizerDelegate audioVisualizerDelegate; private int lastReportedPlaybackState; private boolean lastReportedPlayWhenReady; @@ -93,7 +111,10 @@ public class VideoPlayer implements ExoPlayer.EventListener, SimpleExoPlayer.Vid private Uri videoUri, audioUri; private String videoType, audioType; - private boolean loop; + private boolean loopingMediaSource; + private boolean looping; + + Handler audioUpdateHandler = new Handler(Looper.getMainLooper()); private static final DefaultBandwidthMeter BANDWIDTH_METER = new DefaultBandwidthMeter(); @@ -129,11 +150,23 @@ public class VideoPlayer implements ExoPlayer.EventListener, SimpleExoPlayer.Vid DefaultLoadControl.DEFAULT_TARGET_BUFFER_BYTES, DefaultLoadControl.DEFAULT_PRIORITIZE_TIME_OVER_SIZE_THRESHOLDS); if (player == null) { - player = ExoPlayerFactory.newSimpleInstance(ApplicationLoader.applicationContext, trackSelector, loadControl, null, DefaultRenderersFactory.EXTENSION_RENDERER_MODE_PREFER); + DefaultRenderersFactory factory; + if (audioVisualizerDelegate != null) { + factory = new AudioVisualizerRenderersFactory(ApplicationLoader.applicationContext); + } else { + factory = new DefaultRenderersFactory(ApplicationLoader.applicationContext); + } + player = ExoPlayerFactory.newSimpleInstance(ApplicationLoader.applicationContext, factory, trackSelector, loadControl, null); + player.addListener(this); player.setVideoListener(this); - player.setVideoTextureView(textureView); + if (textureView != null) { + player.setVideoTextureView(textureView); + } else if (surface != null) { + player.setVideoSurface(surface); + } player.setPlayWhenReady(autoplay); + player.setRepeatMode(looping ? ExoPlayer.REPEAT_MODE_ALL : ExoPlayer.REPEAT_MODE_OFF); } if (mixedAudio) { if (audioPlayer == null) { @@ -203,7 +236,7 @@ public class VideoPlayer implements ExoPlayer.EventListener, SimpleExoPlayer.Vid this.audioUri = audioUri; this.videoType = videoType; this.audioType = audioType; - this.loop = true; + this.loopingMediaSource = true; mixedAudio = true; audioPlayerReady = false; @@ -251,7 +284,7 @@ public class VideoPlayer implements ExoPlayer.EventListener, SimpleExoPlayer.Vid this.videoType = type; this.audioUri = null; this.audioType = null; - this.loop = false; + this.loopingMediaSource = false; videoPlayerReady = false; mixedAudio = false; @@ -304,6 +337,17 @@ public class VideoPlayer implements ExoPlayer.EventListener, SimpleExoPlayer.Vid player.setVideoTextureView(textureView); } + public void setSurface(Surface s) { + if (surface == s) { + return; + } + surface = s; + if (player == null) { + return; + } + player.setVideoSurface(surface); + } + public boolean getPlayWhenReady() { return player.getPlayWhenReady(); } @@ -345,6 +389,12 @@ public class VideoPlayer implements ExoPlayer.EventListener, SimpleExoPlayer.Vid if (audioPlayer != null) { audioPlayer.setPlayWhenReady(false); } + + if (audioVisualizerDelegate != null) { + audioUpdateHandler.removeCallbacksAndMessages(null); + audioVisualizerDelegate.onVisualizerUpdate(false, true, null); + } + } public void setPlaybackSpeed(float speed) { @@ -425,6 +475,10 @@ public class VideoPlayer implements ExoPlayer.EventListener, SimpleExoPlayer.Vid delegate = videoPlayerDelegate; } + public void setAudioVisualizerDelegate(AudioVisualizerDelegate audioVisualizerDelegate) { + this.audioVisualizerDelegate = audioVisualizerDelegate; + } + public int getBufferedPercentage() { return isStreaming ? (player != null ? player.getBufferedPercentage() : 0) : 100; } @@ -454,6 +508,19 @@ public class VideoPlayer implements ExoPlayer.EventListener, SimpleExoPlayer.Vid } } + public void setLooping(boolean looping) { + if (this.looping != looping) { + this.looping = looping; + if (player != null) { + player.setRepeatMode(looping ? ExoPlayer.REPEAT_MODE_ALL : ExoPlayer.REPEAT_MODE_OFF); + } + } + } + + public boolean isLooping() { + return looping; + } + private void checkPlayersReady() { if (audioPlayerReady && videoPlayerReady && mixedPlayWhenReady) { play(); @@ -475,6 +542,12 @@ public class VideoPlayer implements ExoPlayer.EventListener, SimpleExoPlayer.Vid videoPlayerReady = true; checkPlayersReady(); } + if (playbackState != Player.STATE_READY) { + audioUpdateHandler.removeCallbacksAndMessages(null); + if (audioVisualizerDelegate != null) { + audioVisualizerDelegate.onVisualizerUpdate(false, true, null); + } + } } @Override @@ -510,7 +583,7 @@ public class VideoPlayer implements ExoPlayer.EventListener, SimpleExoPlayer.Vid } player.clearVideoTextureView(textureView); player.setVideoTextureView(textureView); - if (loop) { + if (loopingMediaSource) { preparePlayerLoop(videoUri, videoType, audioUri, audioType); } else { preparePlayer(videoUri, videoType); @@ -518,7 +591,7 @@ public class VideoPlayer implements ExoPlayer.EventListener, SimpleExoPlayer.Vid play(); } } else { - delegate.onError(error); + delegate.onError(this, error); } } @@ -564,4 +637,126 @@ public class VideoPlayer implements ExoPlayer.EventListener, SimpleExoPlayer.Vid lastReportedPlaybackState = playbackState; } } + + private class AudioVisualizerRenderersFactory extends DefaultRenderersFactory { + + public AudioVisualizerRenderersFactory(Context context) { + super(context); + } + + @Override + protected void buildAudioRenderers(Context context, int extensionRendererMode, MediaCodecSelector mediaCodecSelector, @Nullable DrmSessionManager drmSessionManager, boolean playClearSamplesWithoutKeys, boolean enableDecoderFallback, AudioProcessor[] audioProcessors, Handler eventHandler, AudioRendererEventListener eventListener, ArrayList out) { + AudioProcessor audioProcessor = new TeeAudioProcessor(new VisualizerBufferSink()); + super.buildAudioRenderers(context, extensionRendererMode, mediaCodecSelector, drmSessionManager, playClearSamplesWithoutKeys, enableDecoderFallback, new AudioProcessor[]{audioProcessor}, eventHandler, eventListener, out); + } + } + + private class VisualizerBufferSink implements TeeAudioProcessor.AudioBufferSink { + + private final int BUFFER_SIZE = 1024; + FourierTransform.FFT fft = new FourierTransform.FFT(BUFFER_SIZE, 48000); + float[] real = new float[BUFFER_SIZE]; + ByteBuffer byteBuffer; + int position = 0; + + public VisualizerBufferSink() { + byteBuffer = ByteBuffer.allocateDirect(BUFFER_SIZE * 8); + byteBuffer.position(0); + } + + @Override + public void flush(int sampleRateHz, int channelCount, int encoding) { + if (audioVisualizerDelegate == null) { + return; + } + audioUpdateHandler.removeCallbacksAndMessages(null); + audioVisualizerDelegate.onVisualizerUpdate(false, false, null); + } + + + long lastUpdateTime; + + @Override + public void handleBuffer(ByteBuffer buffer) { + if (audioVisualizerDelegate == null) { + return; + } + if (buffer == AudioProcessor.EMPTY_BUFFER || !mixedPlayWhenReady) { + audioUpdateHandler.postDelayed(() -> { + audioUpdateHandler.removeCallbacksAndMessages(null); + audioVisualizerDelegate.onVisualizerUpdate(false, true, null); + }, 80); + return; + } + + if (!audioVisualizerDelegate.needUpdate()) { + return; + } + + byteBuffer.put(buffer); + position += buffer.limit(); + + if (position >= BUFFER_SIZE) { + int len = BUFFER_SIZE; + byteBuffer.position(0); + for (int i = 0; i < len; i++) { + real[i] = (byteBuffer.getShort()) / 32768.0F; + } + byteBuffer.rewind(); + position = 0; + + fft.forward(real); + float sum = 0; + for (int i = 0; i < len; i++) { + float r = fft.getSpectrumReal()[i]; + float img = fft.getSpectrumImaginary()[i]; + float peak = (float) Math.sqrt(r * r + img * img) / 30f; + if (peak > 1f) { + peak = 1f; + } else if (peak < 0) { + peak = 0; + } + sum += peak * peak; + } + float amplitude = (float) (Math.sqrt(sum / len)); + + float[] partsAmplitude = new float[7]; + partsAmplitude[6] = amplitude; + if (amplitude < 0.4f) { + for (int k = 0; k < 7; k++) { + partsAmplitude[k] = 0; + } + } else { + int part = len / 6; + + for (int k = 0; k < 6; k++) { + int start = part * k; + float r = fft.getSpectrumReal()[start]; + float img = fft.getSpectrumImaginary()[start]; + partsAmplitude[k] = (float) (Math.sqrt(r * r + img * img) / 30f); + + if (partsAmplitude[k] > 1f) { + partsAmplitude[k] = 1f; + } else if (partsAmplitude[k] < 0) { + partsAmplitude[k] = 0; + } + } + } + + int updateInterval = 64; +// if (partsAmplitude[6] >= 0.5f) { +// updateInterval -= 8 * partsAmplitude[6] - 0.5f; +// } + + if (System.currentTimeMillis() - lastUpdateTime < updateInterval) { + return; + } + lastUpdateTime = System.currentTimeMillis(); + + audioUpdateHandler.postDelayed(() -> { + audioVisualizerDelegate.onVisualizerUpdate(true, true, partsAmplitude); + }, 130); + } + } + } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/VideoPlayerSeekBar.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/VideoPlayerSeekBar.java new file mode 100644 index 000000000..5d73a48cc --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/VideoPlayerSeekBar.java @@ -0,0 +1,253 @@ +/* + * This is the source code of Telegram for Android v. 1.3.x. + * It is licensed under GNU GPL v. 2 or later. + * You should have received a copy of the license in this archive (see LICENSE). + * + * Copyright Nikolai Kudashov, 2013-2018. + */ + +package org.telegram.ui.Components; + +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.Paint; +import android.graphics.RectF; +import android.os.SystemClock; +import android.view.MotionEvent; +import android.view.View; + +import androidx.core.graphics.ColorUtils; + +import org.telegram.messenger.AndroidUtilities; + +public class VideoPlayerSeekBar { + + public interface SeekBarDelegate { + void onSeekBarDrag(float progress); + default void onSeekBarContinuousDrag(float progress) { + } + } + + private static Paint paint; + private static Paint strokePaint; + private static int thumbWidth; + private int thumbX = 0; + private int draggingThumbX = 0; + private int thumbDX = 0; + private boolean pressed = false; + private int width; + private int height; + private SeekBarDelegate delegate; + private int backgroundColor; + private int cacheColor; + private int circleColor; + private int progressColor; + private int backgroundSelectedColor; + private RectF rect = new RectF(); + private boolean selected; + private float bufferedProgress; + private float currentRadius; + private long lastUpdateTime; + private View parentView; + + private int lineHeight = AndroidUtilities.dp(4); + private int smallLineHeight = AndroidUtilities.dp(2); + + private float transitionProgress; + private int horizontalPadding; + private int smallLineColor; + + public VideoPlayerSeekBar(View parent) { + if (paint == null) { + paint = new Paint(Paint.ANTI_ALIAS_FLAG); + strokePaint = new Paint(Paint.ANTI_ALIAS_FLAG); + strokePaint.setStyle(Paint.Style.STROKE); + strokePaint.setColor(Color.BLACK); + strokePaint.setStrokeWidth(1); + } + parentView = parent; + thumbWidth = AndroidUtilities.dp(24); + currentRadius = AndroidUtilities.dp(6); + } + + public void setDelegate(SeekBarDelegate seekBarDelegate) { + delegate = seekBarDelegate; + } + + public boolean onTouch(int action, float x, float y) { + if (action == MotionEvent.ACTION_DOWN) { + if (transitionProgress > 0f) { + return false; + } + int additionWidth = (height - thumbWidth) / 2; + if (x >= -additionWidth && x <= width + additionWidth && y >= 0 && y <= height) { + if (!(thumbX - additionWidth <= x && x <= thumbX + thumbWidth + additionWidth)) { + thumbX = (int) x - thumbWidth / 2; + if (thumbX < 0) { + thumbX = 0; + } else if (thumbX > width - thumbWidth) { + thumbX = thumbWidth - width; + } + } + pressed = true; + draggingThumbX = thumbX; + thumbDX = (int) (x - thumbX); + return true; + } + } else if (action == MotionEvent.ACTION_UP || action == MotionEvent.ACTION_CANCEL) { + if (pressed) { + thumbX = draggingThumbX; + if (action == MotionEvent.ACTION_UP && delegate != null) { + delegate.onSeekBarDrag((float) thumbX / (float) (width - thumbWidth)); + } + pressed = false; + return true; + } + } else if (action == MotionEvent.ACTION_MOVE) { + if (pressed) { + draggingThumbX = (int) (x - thumbDX); + if (draggingThumbX < 0) { + draggingThumbX = 0; + } else if (draggingThumbX > width - thumbWidth) { + draggingThumbX = width - thumbWidth; + } + if (delegate != null) { + delegate.onSeekBarContinuousDrag((float) draggingThumbX / (float) (width - thumbWidth)); + } + return true; + } + } + return false; + } + + public void setColors(int background, int cache, int progress, int circle, int selected, int smallLineColor) { + backgroundColor = background; + cacheColor = cache; + circleColor = circle; + progressColor = progress; + backgroundSelectedColor = selected; + this.smallLineColor = smallLineColor; + } + + public void setProgress(float progress) { + thumbX = (int) Math.ceil((width - thumbWidth) * progress); + if (thumbX < 0) { + thumbX = 0; + } else if (thumbX > width - thumbWidth) { + thumbX = width - thumbWidth; + } + } + + public void setBufferedProgress(float value) { + bufferedProgress = value; + } + + public float getProgress() { + return (float) thumbX / (float) (width - thumbWidth); + } + + public int getThumbX() { + return (pressed ? draggingThumbX : thumbX) + thumbWidth / 2; + } + + public boolean isDragging() { + return pressed; + } + + public void setSelected(boolean value) { + selected = value; + } + + public void setSize(int w, int h) { + width = w; + height = h; + } + + public int getWidth() { + return width - thumbWidth; + } + + + public float getTransitionProgress() { + return transitionProgress; + } + + public void setTransitionProgress(float transitionProgress) { + if (this.transitionProgress != transitionProgress) { + this.transitionProgress = transitionProgress; + parentView.invalidate(); + } + } + + public int getHorizontalPadding() { + return horizontalPadding; + } + + public void setHorizontalPadding(int horizontalPadding) { + this.horizontalPadding = horizontalPadding; + } + + public void draw(Canvas canvas) { + final float radius = AndroidUtilities.lerp(thumbWidth / 2f, smallLineHeight / 2f, transitionProgress); + rect.left = horizontalPadding + AndroidUtilities.lerp(thumbWidth / 2f, 0, transitionProgress); + rect.top = AndroidUtilities.lerp((height - lineHeight) / 2f, height - AndroidUtilities.dp(3) - smallLineHeight, transitionProgress); + rect.bottom = AndroidUtilities.lerp((height + lineHeight) / 2f, height - AndroidUtilities.dp(3), transitionProgress); + + // background + rect.right = horizontalPadding + AndroidUtilities.lerp(width - thumbWidth / 2f, parentView.getWidth() - horizontalPadding * 2f, transitionProgress); + setPaintColor(selected ? backgroundSelectedColor : backgroundColor, 1f - transitionProgress); + canvas.drawRoundRect(rect, radius, radius, paint); + + // buffered + if (bufferedProgress > 0) { + rect.right = horizontalPadding + AndroidUtilities.lerp(thumbWidth / 2f + bufferedProgress * (width - thumbWidth), parentView.getWidth() - horizontalPadding * 2f, transitionProgress); + setPaintColor(selected ? backgroundSelectedColor : cacheColor, 1f - transitionProgress); + canvas.drawRoundRect(rect, radius, radius, paint); + } + + // progress + rect.right = horizontalPadding + AndroidUtilities.lerp(thumbWidth / 2f + (pressed ? draggingThumbX : thumbX), (parentView.getWidth() - horizontalPadding * 2f) * getProgress(), transitionProgress); + if (transitionProgress > 0f && rect.width() > 0) { + // progress stroke + strokePaint.setAlpha((int) (transitionProgress * 255 * 0.2f)); + canvas.drawRoundRect(rect, radius, radius, strokePaint); + } + setPaintColor(ColorUtils.blendARGB(progressColor, smallLineColor, transitionProgress), 1f); + canvas.drawRoundRect(rect, radius, radius, paint); + + // circle + setPaintColor(ColorUtils.blendARGB(circleColor, getProgress() == 0 ? Color.TRANSPARENT : smallLineColor, transitionProgress), 1f - transitionProgress); + int newRad = AndroidUtilities.dp(pressed ? 8 : 6); + if (currentRadius != newRad) { + long newUpdateTime = SystemClock.elapsedRealtime(); + long dt = newUpdateTime - lastUpdateTime; + lastUpdateTime = newUpdateTime; + if (dt > 18) { + dt = 16; + } + if (currentRadius < newRad) { + currentRadius += AndroidUtilities.dp(1) * (dt / 60.0f); + if (currentRadius > newRad) { + currentRadius = newRad; + } + } else { + currentRadius -= AndroidUtilities.dp(1) * (dt / 60.0f); + if (currentRadius < newRad) { + currentRadius = newRad; + } + } + if (parentView != null) { + parentView.invalidate(); + } + } + final float circleRadius = AndroidUtilities.lerp(currentRadius, 0, transitionProgress); + canvas.drawCircle(rect.right, rect.centerY(), circleRadius, paint); + } + + private void setPaintColor(int color, float alpha) { + if (alpha < 1f) { + color = ColorUtils.setAlphaComponent(color, (int) (Color.alpha(color) * alpha)); + } + paint.setColor(color); + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/VideoTimelinePlayView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/VideoTimelinePlayView.java index ee6885ad1..4b3830f1a 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/VideoTimelinePlayView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/VideoTimelinePlayView.java @@ -309,7 +309,7 @@ public class VideoTimelinePlayView extends View { Canvas canvas = new Canvas(result); float scaleX = (float) frameWidth / (float) bitmap.getWidth(); float scaleY = (float) frameHeight / (float) bitmap.getHeight(); - float scale = scaleX > scaleY ? scaleX : scaleY; + float scale = Math.max(scaleX, scaleY); int w = (int) (bitmap.getWidth() * scale); int h = (int) (bitmap.getHeight() * scale); Rect srcRect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/VideoTimelineView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/VideoTimelineView.java index 8c1eeb253..4cca2521b 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/VideoTimelineView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/VideoTimelineView.java @@ -325,7 +325,7 @@ public class VideoTimelineView extends View { Canvas canvas = new Canvas(result); float scaleX = (float) frameWidth / (float) bitmap.getWidth(); float scaleY = (float) frameHeight / (float) bitmap.getHeight(); - float scale = scaleX > scaleY ? scaleX : scaleY; + float scale = Math.max(scaleX, scaleY); int w = (int) (bitmap.getWidth() * scale); int h = (int) (bitmap.getHeight() * scale); Rect srcRect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); @@ -424,16 +424,15 @@ public class VideoTimelineView extends View { canvas.drawRect(0, topOffset, getMeasuredWidth(), getMeasuredHeight() - topOffset, backgroundGrayPaint); } int offset = 0; - int y = topOffset; for (int a = 0; a < frames.size(); a++) { Bitmap bitmap = frames.get(a); if (bitmap != null) { int x = offset * (isRoundFrames ? frameWidth / 2 : frameWidth); if (isRoundFrames) { - rect2.set(x, y, x + AndroidUtilities.dp(28), y + AndroidUtilities.dp(32)); + rect2.set(x, topOffset, x + AndroidUtilities.dp(28), topOffset + AndroidUtilities.dp(32)); canvas.drawBitmap(bitmap, rect1, rect2, null); } else { - canvas.drawBitmap(bitmap, x, y, null); + canvas.drawBitmap(bitmap, x, topOffset, null); } } offset++; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/WebPlayerView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/WebPlayerView.java index db949547d..17137c4f3 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/WebPlayerView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/WebPlayerView.java @@ -1762,7 +1762,7 @@ public class WebPlayerView extends ViewGroup implements VideoPlayer.VideoPlayerD } @Override - public void onError(Exception e) { + public void onError(VideoPlayer player, Exception e) { FileLog.e(e); onInitFailed(); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ContentPreviewViewer.java b/TMessagesProj/src/main/java/org/telegram/ui/ContentPreviewViewer.java index 4c7a3d10f..cf9c4bfa3 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ContentPreviewViewer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ContentPreviewViewer.java @@ -83,13 +83,17 @@ public class ContentPreviewViewer { return true; } - default void sendGif(Object gif, boolean notify, int scheduleDate) { + default void sendGif(Object gif, Object parent, boolean notify, int scheduleDate) { } default void gifAddedOrDeleted() { } + + default boolean needMenu() { + return true; + } } private final static int CONTENT_TYPE_NONE = -1; @@ -268,7 +272,7 @@ public class ContentPreviewViewer { return; } if (actions.get(which) == 0) { - delegate.sendGif(currentDocument != null ? currentDocument : inlineResult, true, 0); + delegate.sendGif(currentDocument != null ? currentDocument : inlineResult, parentObject, true, 0); } else if (actions.get(which) == 1) { MediaDataController.getInstance(currentAccount).removeRecentGif(currentDocument); delegate.gifAddedOrDeleted(); @@ -281,7 +285,7 @@ public class ContentPreviewViewer { TLRPC.BotInlineResult result = inlineResult; Object parent = parentObject; ContentPreviewViewerDelegate stickerPreviewViewerDelegate = delegate; - AlertsCreator.createScheduleDatePickerDialog(parentActivity, stickerPreviewViewerDelegate.getDialogId(), (notify, scheduleDate) -> stickerPreviewViewerDelegate.sendGif(document != null ? document : result, notify, scheduleDate)); + AlertsCreator.createScheduleDatePickerDialog(parentActivity, stickerPreviewViewerDelegate.getDialogId(), (notify, scheduleDate) -> stickerPreviewViewerDelegate.sendGif(document != null ? document : result, parent, notify, scheduleDate)); } }); visibleDialog.setDimBehind(false); @@ -453,7 +457,7 @@ public class ContentPreviewViewer { clearsInputField = stickerCell.isClearsInputField(); } else if (currentPreviewCell instanceof ContextLinkCell) { ContextLinkCell contextLinkCell = (ContextLinkCell) currentPreviewCell; - open(contextLinkCell.getDocument(), contextLinkCell.getBotInlineResult(), contentType, false, null); + open(contextLinkCell.getDocument(), contextLinkCell.getBotInlineResult(), contentType, false, contextLinkCell.getInlineBot()); if (contentType != CONTENT_TYPE_GIF) { contextLinkCell.setScaled(true); } @@ -550,7 +554,7 @@ public class ContentPreviewViewer { clearsInputField = stickerCell.isClearsInputField(); } else if (currentPreviewCell instanceof ContextLinkCell) { ContextLinkCell contextLinkCell = (ContextLinkCell) currentPreviewCell; - open(contextLinkCell.getDocument(), contextLinkCell.getBotInlineResult(), contentTypeFinal, false, null); + open(contextLinkCell.getDocument(), contextLinkCell.getBotInlineResult(), contentTypeFinal, false, contextLinkCell.getInlineBot()); if (contentTypeFinal != CONTENT_TYPE_GIF) { contextLinkCell.setScaled(true); } @@ -642,7 +646,7 @@ public class ContentPreviewViewer { break; } } - if (newSet != null) { + if (newSet != null && (delegate == null || delegate.needMenu())) { try { if (visibleDialog != null) { visibleDialog.setOnDismissListener(null); @@ -656,7 +660,6 @@ public class ContentPreviewViewer { AndroidUtilities.runOnUIThread(showSheetRunnable, 1300); } currentStickerSet = newSet; - parentObject = parent; TLRPC.PhotoSize thumb = FileLoader.getClosestPhotoSizeWithSize(document.thumbs, 90); centerImage.setImage(ImageLocation.getForDocument(document), null, ImageLocation.getForDocument(thumb, document), null, "webp", currentStickerSet, 1); for (int a = 0; a < document.attributes.size(); a++) { @@ -672,12 +675,23 @@ public class ContentPreviewViewer { } else { if (document != null) { TLRPC.PhotoSize thumb = FileLoader.getClosestPhotoSizeWithSize(document.thumbs, 90); - centerImage.setImage(ImageLocation.getForDocument(document), null, ImageLocation.getForDocument(thumb, document), "90_90_b", document.size, null, "gif" + document, 0); + TLRPC.TL_videoSize videoSize = MessageObject.getDocumentVideoThumb(document); + ImageLocation location = ImageLocation.getForDocument(document); + location.imageType = FileLoader.IMAGE_TYPE_ANIMATION; + if (videoSize != null) { + centerImage.setImage(location, null, ImageLocation.getForDocument(videoSize, document), null, ImageLocation.getForDocument(thumb, document), "90_90_b", null, document.size, null, "gif" + document, 0); + } else { + centerImage.setImage(location, null, ImageLocation.getForDocument(thumb, document), "90_90_b", document.size, null, "gif" + document, 0); + } } else if (botInlineResult != null) { if (botInlineResult.content == null) { return; } - centerImage.setImage(ImageLocation.getForWebFile(WebFile.createWithWebDocument(botInlineResult.content)), null, ImageLocation.getForWebFile(WebFile.createWithWebDocument(botInlineResult.thumb)), "90_90_b", botInlineResult.content.size, null, "gif" + botInlineResult, 1); + if (botInlineResult.thumb instanceof TLRPC.TL_webDocument && "video/mp4".equals(botInlineResult.thumb.mime_type)) { + centerImage.setImage(ImageLocation.getForWebFile(WebFile.createWithWebDocument(botInlineResult.content)), null, ImageLocation.getForWebFile(WebFile.createWithWebDocument(botInlineResult.thumb)), null, ImageLocation.getForWebFile(WebFile.createWithWebDocument(botInlineResult.thumb)), "90_90_b", null, botInlineResult.content.size, null, "gif" + botInlineResult, 1); + } else { + centerImage.setImage(ImageLocation.getForWebFile(WebFile.createWithWebDocument(botInlineResult.content)), null, ImageLocation.getForWebFile(WebFile.createWithWebDocument(botInlineResult.thumb)), "90_90_b", botInlineResult.content.size, null, "gif" + botInlineResult, 1); + } } else { return; } @@ -688,6 +702,7 @@ public class ContentPreviewViewer { currentContentType = contentType; currentDocument = document; inlineResult = botInlineResult; + parentObject = parent; containerView.invalidate(); if (!isVisible) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/DialogsActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/DialogsActivity.java index c8f65a04a..980b4e932 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/DialogsActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/DialogsActivity.java @@ -25,6 +25,7 @@ import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.content.res.Configuration; +import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Outline; import android.graphics.Paint; @@ -32,6 +33,7 @@ import android.graphics.PorterDuff; import android.graphics.PorterDuffColorFilter; import android.graphics.Rect; import android.graphics.RectF; +import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.net.Uri; import android.os.Build; @@ -128,6 +130,7 @@ import org.telegram.ui.Components.AlertsCreator; import org.telegram.ui.Components.AnimatedArrowDrawable; import org.telegram.ui.Components.AnimationProperties; import org.telegram.ui.Components.FilterTabsView; +import org.telegram.ui.Components.FiltersListBottomSheet; import org.telegram.ui.Components.PullForegroundDrawable; import org.telegram.ui.Components.AvatarDrawable; import org.telegram.ui.Components.BackupImageView; @@ -197,6 +200,8 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter. private FilterTabsView filterTabsView; private boolean askingForPermissions; + private View blurredView; + private Paint scrimPaint; private View scrimView; private boolean scrimViewSelected; @@ -231,6 +236,8 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter. private ActionBarMenuItem muteItem; private ActionBarMenuItem archive2Item; private ActionBarMenuSubItem pin2Item; + private ActionBarMenuSubItem addToFolderItem; + private ActionBarMenuSubItem removeFromFolderItem; private ActionBarMenuSubItem archiveItem; private ActionBarMenuSubItem clearItem; private ActionBarMenuSubItem readItem; @@ -319,6 +326,8 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter. private final static int block = 106; private final static int archive2 = 107; private final static int pin2 = 108; + private final static int add_to_folder = 109; + private final static int remove_from_folder = 110; private final static int ARCHIVE_ITEM_STATE_PINNED = 0; private final static int ARCHIVE_ITEM_STATE_SHOWED = 1; @@ -478,7 +487,7 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter. measureChildWithMargins(actionBar, widthMeasureSpec, 0, heightMeasureSpec, 0); - int keyboardSize = SharedConfig.smoothKeyboard ? 0 : getKeyboardHeight(); + int keyboardSize = SharedConfig.smoothKeyboard ? 0 : measureKeyboardHeight(); int childCount = getChildCount(); if (commentView != null) { @@ -549,7 +558,7 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter. int paddingBottom; Object tag = commentView != null ? commentView.getTag() : null; - int keyboardSize = SharedConfig.smoothKeyboard ? 0 : getKeyboardHeight(); + int keyboardSize = SharedConfig.smoothKeyboard ? 0 : measureKeyboardHeight(); if (tag != null && tag.equals(2)) { paddingBottom = keyboardSize <= AndroidUtilities.dp(20) && !AndroidUtilities.isInMultiwindow ? commentView.getEmojiPadding() : 0; } else { @@ -1043,7 +1052,7 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter. @Override public boolean onTouchEvent(MotionEvent e) { - if (animationRunning || waitingForScrollFinished || dialogRemoveFinished != 0 || dialogInsertFinished != 0 || dialogChangeFinished != 0) { + if (scrollAnimationRunning || waitingForScrollFinished || dialogRemoveFinished != 0 || dialogInsertFinished != 0 || dialogChangeFinished != 0) { return false; } int action = e.getAction(); @@ -1115,7 +1124,7 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter. @Override public boolean onInterceptTouchEvent(MotionEvent e) { - if (animationRunning || waitingForScrollFinished || dialogRemoveFinished != 0 || dialogInsertFinished != 0 || dialogChangeFinished != 0) { + if (scrollAnimationRunning || waitingForScrollFinished || dialogRemoveFinished != 0 || dialogInsertFinished != 0 || dialogChangeFinished != 0) { return false; } if (e.getAction() == MotionEvent.ACTION_DOWN) { @@ -1556,6 +1565,7 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter. floatingButtonContainer.setVisibility(View.GONE); } } + setScrollY(0); updatePasscodeButton(); actionBar.setBackButtonContentDescription(LocaleController.getString("AccDescrGoBack", R.string.AccDescrGoBack)); } @@ -1651,7 +1661,7 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter. scrollToTop(); }); - if (initialDialogsType == 0 && folderId == 0 && !onlySelect) { + if (initialDialogsType == 0 && folderId == 0 && !onlySelect && TextUtils.isEmpty(searchString)) { scrimPaint = new Paint() { @Override public void setAlpha(int a) { @@ -2052,6 +2062,72 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter. DialogsActivity dialogsActivity = new DialogsActivity(arguments); dialogsActivity.setDelegate(oldDelegate); launchActivity.presentFragment(dialogsActivity, false, true); + } else if (id == add_to_folder) { + FiltersListBottomSheet sheet = new FiltersListBottomSheet(DialogsActivity.this, selectedDialogs); + sheet.setDelegate(filter -> { + ArrayList alwaysShow = FiltersListBottomSheet.getDialogsCount(DialogsActivity.this, filter, selectedDialogs, true, false); + int currentCount; + if (filter != null) { + currentCount = filter.alwaysShow.size(); + } else { + currentCount = 0; + } + if (currentCount + alwaysShow.size() > 100) { + showDialog(AlertsCreator.createSimpleAlert(getParentActivity(), LocaleController.getString("FilterAddToAlertFullTitle", R.string.FilterAddToAlertFullTitle), LocaleController.getString("FilterAddToAlertFullText", R.string.FilterAddToAlertFullText)).create()); + return; + } + if (filter != null) { + if (!alwaysShow.isEmpty()) { + for (int a = 0; a < alwaysShow.size(); a++) { + filter.neverShow.remove(alwaysShow.get(a)); + } + filter.alwaysShow.addAll(alwaysShow); + FilterCreateActivity.saveFilterToServer(filter, filter.flags, filter.name, filter.alwaysShow, filter.neverShow, filter.pinnedDialogs, false, false, true, true, false, DialogsActivity.this, null); + } + long did; + if (alwaysShow.size() == 1) { + did = alwaysShow.get(0); + } else { + did = 0; + } + getUndoView().showWithAction(did, UndoView.ACTION_ADDED_TO_FOLDER, alwaysShow.size(), filter, null, null); + } else { + presentFragment(new FilterCreateActivity(null, alwaysShow)); + } + hideActionMode(true); + }); + showDialog(sheet); + } else if (id == remove_from_folder) { + MessagesController.DialogFilter filter = getMessagesController().dialogFilters.get(viewPages[0].selectedType); + ArrayList neverShow = FiltersListBottomSheet.getDialogsCount(DialogsActivity.this, filter, selectedDialogs, false, false); + + int currentCount; + if (filter != null) { + currentCount = filter.neverShow.size(); + } else { + currentCount = 0; + } + if (currentCount + neverShow.size() > 100) { + showDialog(AlertsCreator.createSimpleAlert(getParentActivity(), LocaleController.getString("FilterAddToAlertFullTitle", R.string.FilterAddToAlertFullTitle), LocaleController.getString("FilterRemoveFromAlertFullText", R.string.FilterRemoveFromAlertFullText)).create()); + return; + } + if (!neverShow.isEmpty()) { + filter.neverShow.addAll(neverShow); + for (int a = 0; a < neverShow.size(); a++) { + Integer did = neverShow.get(a); + filter.alwaysShow.remove(did); + filter.pinnedDialogs.remove((long) did); + } + FilterCreateActivity.saveFilterToServer(filter, filter.flags, filter.name, filter.alwaysShow, filter.neverShow, filter.pinnedDialogs, false, false, true, false, false, DialogsActivity.this, null); + } + long did; + if (neverShow.size() == 1) { + did = neverShow.get(0); + } else { + did = 0; + } + getUndoView().showWithAction(did, UndoView.ACTION_REMOVED_FROM_FOLDER, neverShow.size(), filter, null, null); + hideActionMode(false); } else if (id == pin || id == read || id == delete || id == clear || id == mute || id == archive || id == block || id == archive2 || id == pin2) { perfromSelectedDialogsAction(id, true); } @@ -2080,6 +2156,8 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter. ActionBarMenuItem otherItem = actionMode.addItemWithWidth(0, R.drawable.ic_ab_other, AndroidUtilities.dp(54), LocaleController.getString("AccDescrMoreOptions", R.string.AccDescrMoreOptions)); archiveItem = otherItem.addSubItem(archive, R.drawable.msg_archive, LocaleController.getString("Archive", R.string.Archive)); pin2Item = otherItem.addSubItem(pin2, R.drawable.msg_pin, LocaleController.getString("DialogPin", R.string.DialogPin)); + addToFolderItem = otherItem.addSubItem(add_to_folder, R.drawable.msg_addfolder, LocaleController.getString("FilterAddTo", R.string.FilterAddTo)); + removeFromFolderItem = otherItem.addSubItem(remove_from_folder, R.drawable.msg_removefolder, LocaleController.getString("FilterRemoveFrom", R.string.FilterRemoveFrom)); readItem = otherItem.addSubItem(read, R.drawable.msg_markread, LocaleController.getString("MarkAsRead", R.string.MarkAsRead)); clearItem = otherItem.addSubItem(clear, R.drawable.msg_clear, LocaleController.getString("ClearHistory", R.string.ClearHistory)); blockItem = otherItem.addSubItem(block, R.drawable.msg_block, LocaleController.getString("BlockUser", R.string.BlockUser)); @@ -2875,6 +2953,12 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter. actionBar.setSearchTextColor(Theme.getColor(Theme.key_actionBarDefaultArchivedSearchPlaceholder), true); } + if (!onlySelect && initialDialogsType == 0) { + blurredView = new ImageView(context); + blurredView.setVisibility(View.GONE); + contentView.addView(blurredView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); + } + updateFilterTabs(false); return fragmentView; @@ -2975,6 +3059,9 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter. } } else { if (filterTabsView.getVisibility() != View.GONE) { + filterTabsView.setIsEditing(false); + showDoneItem(false); + maybeStartTracking = false; if (startedTracking) { startedTracking = false; @@ -3048,6 +3135,10 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter. @Override public void onResume() { super.onResume(); + if (!parentLayout.isInPreviewMode() && blurredView != null && blurredView.getVisibility() == View.VISIBLE) { + blurredView.setVisibility(View.GONE); + blurredView.setBackground(null); + } if (filterTabsView != null && filterTabsView.getVisibility() == View.VISIBLE) { parentLayout.getDrawerLayoutContainer().setAllowOpenDrawerBySwipe(viewPages[0].selectedType == filterTabsView.getFirstTabId()); } @@ -3185,6 +3276,17 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter. } closeSearchFieldOnHide = false; } + if (filterTabsView != null && filterTabsView.getVisibility() == View.VISIBLE) { + int scrollY = (int) -actionBar.getTranslationY(); + int actionBarHeight = ActionBar.getCurrentActionBarHeight(); + if (scrollY != 0 && scrollY != actionBarHeight) { + if (scrollY < actionBarHeight / 2) { + setScrollY(0); + } else if (viewPages[0].listView.canScrollVertically(1)) { + setScrollY(-actionBarHeight); + } + } + } if (undoView[0] != null) { undoView[0].hide(true, 0); } @@ -3240,7 +3342,7 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter. animators.add(ObjectAnimator.ofFloat(searchEmptyView, View.ALPHA, show ? 1.0f : 0.0f)); animators.add(ObjectAnimator.ofFloat(searchEmptyView, View.SCALE_X, show ? 1.0f : 1.05f)); animators.add(ObjectAnimator.ofFloat(searchEmptyView, View.SCALE_Y, show ? 1.0f : 1.05f)); - if (filterTabsView != null) { + if (filterTabsView != null && filterTabsView.getVisibility() == View.VISIBLE) { animators.add(ObjectAnimator.ofFloat(filterTabsView, View.TRANSLATION_Y, show ? -AndroidUtilities.dp(44) : 0)); tabsAlphaAnimator = ObjectAnimator.ofFloat(filterTabsView.getTabsContainer(), View.ALPHA, show ? 0.0f : 1.0f).setDuration(100); tabsAlphaAnimator.addListener(new AnimatorListenerAdapter() { @@ -3321,7 +3423,7 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter. searchEmptyView.setAlpha(show ? 1.0f : 0.0f); searchEmptyView.setScaleX(show ? 1.0f : 1.1f); searchEmptyView.setScaleY(show ? 1.0f : 1.1f); - if (filterTabsView != null) { + if (filterTabsView != null && filterTabsView.getVisibility() == View.VISIBLE) { filterTabsView.setTranslationY(show ? -AndroidUtilities.dp(44) : 0); filterTabsView.getTabsContainer().setAlpha(show ? 0.0f : 1.0f); } @@ -3603,10 +3705,12 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter. if (searchString != null) { if (getMessagesController().checkCanOpenChat(args, DialogsActivity.this)) { getNotificationCenter().postNotificationName(NotificationCenter.closeChats); + prepareBlurBitmap(); presentFragmentAsPreview(new ChatActivity(args)); } } else { if (getMessagesController().checkCanOpenChat(args, DialogsActivity.this)) { + prepareBlurBitmap(); presentFragmentAsPreview(new ChatActivity(args)); } } @@ -3745,7 +3849,9 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter. scrimView.getLocationInWindow(scrimViewLocation); } actionBar.setTranslationY(value); - filterTabsView.setTranslationY(value); + if (filterTabsView != null) { + filterTabsView.setTranslationY(value); + } if (fragmentContextView != null) { fragmentContextView.setTranslationY(topPadding + value); } @@ -3760,6 +3866,41 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter. fragmentView.invalidate(); } + private void prepareBlurBitmap() { + if (blurredView == null) { + return; + } + int w = (int) (fragmentView.getMeasuredWidth() / 6.0f); + int h = (int) (fragmentView.getMeasuredHeight() / 6.0f); + Bitmap bitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888); + Canvas canvas = new Canvas(bitmap); + canvas.scale(1.0f / 6.0f, 1.0f / 6.0f); + fragmentView.draw(canvas); + Utilities.stackBlurBitmap(bitmap, Math.max(7, Math.max(w, h) / 180)); + blurredView.setBackground(new BitmapDrawable(bitmap)); + blurredView.setAlpha(0.0f); + blurredView.setVisibility(View.VISIBLE); + } + + @Override + protected void onTransitionAnimationProgress(boolean isOpen, float progress) { + if (blurredView != null && blurredView.getVisibility() == View.VISIBLE) { + if (isOpen) { + blurredView.setAlpha(1.0f - progress); + } else { + blurredView.setAlpha(progress); + } + } + } + + @Override + protected void onTransitionAnimationEnd(boolean isOpen, boolean backward) { + if (isOpen && blurredView != null && blurredView.getVisibility() == View.VISIBLE) { + blurredView.setVisibility(View.GONE); + blurredView.setBackground(null); + } + } + private void resetScroll() { if (actionBar.getTranslationY() == 0) { return; @@ -3789,7 +3930,7 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter. if (!movingDialogFilters.isEmpty()) { for (int a = 0, N = movingDialogFilters.size(); a < N; a++) { MessagesController.DialogFilter filter = movingDialogFilters.get(a); - FilterCreateActivity.saveFilterToServer(filter, filter.flags, filter.name, filter.alwaysShow, filter.neverShow, filter.pinnedDialogs, false, false, true, false, DialogsActivity.this, null); + FilterCreateActivity.saveFilterToServer(filter, filter.flags, filter.name, filter.alwaysShow, filter.neverShow, filter.pinnedDialogs, false, false, true, true, false, DialogsActivity.this, null); } movingDialogFilters.clear(); } @@ -4187,7 +4328,7 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter. } if (action == pin || action == pin2) { if (filter != null) { - FilterCreateActivity.saveFilterToServer(filter, filter.flags, filter.name, filter.alwaysShow, filter.neverShow, filter.pinnedDialogs, false, false, true, false, DialogsActivity.this, null); + FilterCreateActivity.saveFilterToServer(filter, filter.flags, filter.name, filter.alwaysShow, filter.neverShow, filter.pinnedDialogs, false, false, true, true, false, DialogsActivity.this, null); } else { getMessagesController().reorderPinnedDialogs(folderId, null, 0); } @@ -4380,6 +4521,16 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter. } else { blockItem.setVisibility(View.VISIBLE); } + if (filterTabsView == null || filterTabsView.getVisibility() != View.VISIBLE || filterTabsView.getCurrentTabId() == Integer.MAX_VALUE) { + removeFromFolderItem.setVisibility(View.GONE); + } else { + removeFromFolderItem.setVisibility(View.VISIBLE); + } + if (filterTabsView != null && filterTabsView.getVisibility() == View.VISIBLE && filterTabsView.getCurrentTabId() == Integer.MAX_VALUE && !FiltersListBottomSheet.getCanAddDialogFilters(this, selectedDialogs).isEmpty()) { + addToFolderItem.setVisibility(View.VISIBLE); + } else { + addToFolderItem.setVisibility(View.GONE); + } if (canUnmuteCount != 0) { muteItem.setIcon(R.drawable.msg_unmute); muteItem.setContentDescription(LocaleController.getString("ChatsUnmute", R.string.ChatsUnmute)); @@ -5393,8 +5544,7 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter. arrayList.add(new ThemeDescription(list, 0, new Class[]{ProfileSearchCell.class}, Theme.dialogs_offlinePaint, null, null, Theme.key_windowBackgroundWhiteGrayText3)); arrayList.add(new ThemeDescription(list, 0, new Class[]{ProfileSearchCell.class}, Theme.dialogs_onlinePaint, null, null, Theme.key_windowBackgroundWhiteBlueText3)); - arrayList.add(new ThemeDescription(list, 0, new Class[]{GraySectionCell.class}, new String[]{"textView"}, null, null, null, Theme.key_graySectionText)); - arrayList.add(new ThemeDescription(list, ThemeDescription.FLAG_CELLBACKGROUNDCOLOR, new Class[]{GraySectionCell.class}, null, null, null, Theme.key_graySection)); + GraySectionCell.createThemeDescriptions(arrayList, list); arrayList.add(new ThemeDescription(list, ThemeDescription.FLAG_TEXTCOLOR, new Class[]{HashtagSearchCell.class}, null, null, null, Theme.key_windowBackgroundWhiteBlackText)); arrayList.add(new ThemeDescription(list, ThemeDescription.FLAG_BACKGROUNDFILTER, new Class[]{ShadowSectionCell.class}, null, null, null, Theme.key_windowBackgroundGrayShadow)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/FilterCreateActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/FilterCreateActivity.java index 50dc1f4e8..40851a138 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/FilterCreateActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/FilterCreateActivity.java @@ -131,10 +131,14 @@ public class FilterCreateActivity extends BaseFragment { } public FilterCreateActivity() { - this(null); + this(null, null); } public FilterCreateActivity(MessagesController.DialogFilter dialogFilter) { + this(dialogFilter, null); + } + + public FilterCreateActivity(MessagesController.DialogFilter dialogFilter, ArrayList alwaysShow) { super(); filter = dialogFilter; if (filter == null) { @@ -149,6 +153,9 @@ public class FilterCreateActivity extends BaseFragment { newFilterName = filter.name; newFilterFlags = filter.flags; newAlwaysShow = new ArrayList<>(filter.alwaysShow); + if (alwaysShow != null) { + newAlwaysShow.addAll(alwaysShow); + } newNeverShow = new ArrayList<>(filter.neverShow); newPinned = filter.pinnedDialogs.clone(); } @@ -544,15 +551,18 @@ public class FilterCreateActivity extends BaseFragment { } private void processDone() { - saveFilterToServer(filter, newFilterFlags, newFilterName, newAlwaysShow, newNeverShow, newPinned, creatingNew, false, hasUserChanged, true, this, () -> { + saveFilterToServer(filter, newFilterFlags, newFilterName, newAlwaysShow, newNeverShow, newPinned, creatingNew, false, hasUserChanged, true, true, this, () -> { getNotificationCenter().postNotificationName(NotificationCenter.dialogFiltersUpdated); finishFragment(); }); } - private static void processAddFilter(MessagesController.DialogFilter filter, int newFilterFlags, String newFilterName, ArrayList newAlwaysShow, ArrayList newNeverShow, boolean creatingNew, boolean atBegin, boolean hasUserChanged, BaseFragment fragment, Runnable onFinish) { + private static void processAddFilter(MessagesController.DialogFilter filter, int newFilterFlags, String newFilterName, ArrayList newAlwaysShow, ArrayList newNeverShow, boolean creatingNew, boolean atBegin, boolean hasUserChanged, boolean resetUnreadCounter, BaseFragment fragment, Runnable onFinish) { if (filter.flags != newFilterFlags || hasUserChanged) { - filter.pendingUnreadCount = filter.unreadCount = -1; + filter.pendingUnreadCount = -1; + if (resetUnreadCounter) { + filter.unreadCount = -1; + } } filter.flags = newFilterFlags; filter.name = newFilterName; @@ -569,7 +579,7 @@ public class FilterCreateActivity extends BaseFragment { } } - public static void saveFilterToServer(MessagesController.DialogFilter filter, int newFilterFlags, String newFilterName, ArrayList newAlwaysShow, ArrayList newNeverShow, LongSparseArray newPinned, boolean creatingNew, boolean atBegin, boolean hasUserChanged, boolean progress, BaseFragment fragment, Runnable onFinish) { + public static void saveFilterToServer(MessagesController.DialogFilter filter, int newFilterFlags, String newFilterName, ArrayList newAlwaysShow, ArrayList newNeverShow, LongSparseArray newPinned, boolean creatingNew, boolean atBegin, boolean hasUserChanged, boolean resetUnreadCounter, boolean progress, BaseFragment fragment, Runnable onFinish) { if (fragment == null || fragment.getParentActivity() == null) { return; } @@ -671,11 +681,11 @@ public class FilterCreateActivity extends BaseFragment { } catch (Exception e) { FileLog.e(e); } - processAddFilter(filter, newFilterFlags, newFilterName, newAlwaysShow, newNeverShow, creatingNew, atBegin, hasUserChanged, fragment, onFinish); + processAddFilter(filter, newFilterFlags, newFilterName, newAlwaysShow, newNeverShow, creatingNew, atBegin, hasUserChanged, resetUnreadCounter, fragment, onFinish); } })); if (!progress) { - processAddFilter(filter, newFilterFlags, newFilterName, newAlwaysShow, newNeverShow, creatingNew, atBegin, hasUserChanged, fragment, onFinish); + processAddFilter(filter, newFilterFlags, newFilterName, newAlwaysShow, newNeverShow, creatingNew, atBegin, hasUserChanged, resetUnreadCounter, fragment, onFinish); } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/FilterUsersActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/FilterUsersActivity.java index 2e20e967a..be01fabb3 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/FilterUsersActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/FilterUsersActivity.java @@ -1045,7 +1045,7 @@ public class FilterUsersActivity extends BaseFragment implements NotificationCen View view; switch (viewType) { case 1: - view = new GroupCreateUserCell(context, true, 0); + view = new GroupCreateUserCell(context, true, 0, true); break; case 2: default: @@ -1164,7 +1164,6 @@ public class FilterUsersActivity extends BaseFragment implements NotificationCen } object = contacts.get(position - usersStartRow); } - cell.setObject(object, name, username); int id; if (object instanceof TLRPC.User) { id = ((TLRPC.User) object).id; @@ -1173,6 +1172,21 @@ public class FilterUsersActivity extends BaseFragment implements NotificationCen } else { id = 0; } + if (!searching) { + StringBuilder builder = new StringBuilder(); + ArrayList filters = getMessagesController().dialogFilters; + for (int a = 0, N = filters.size(); a < N; a++) { + MessagesController.DialogFilter filter = filters.get(a); + if (filter.includesDialog(getAccountInstance(), id)) { + if (builder.length() > 0) { + builder.append(", "); + } + builder.append(filter.name); + } + } + username = builder; + } + cell.setObject(object, name, username); if (id != 0) { cell.setChecked(selectedContacts.indexOfKey(id) >= 0, false); cell.setCheckBoxEnabled(true); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/FiltersSetupActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/FiltersSetupActivity.java index 2203ca6d6..e2b7bfdb9 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/FiltersSetupActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/FiltersSetupActivity.java @@ -679,7 +679,7 @@ public class FiltersSetupActivity extends BaseFragment implements NotificationCe filter.flags |= MessagesController.DIALOG_FILTER_FLAG_EXCLUDE_MUTED; } ignoreUpdates = true; - FilterCreateActivity.saveFilterToServer(filter, filter.flags, filter.name, filter.alwaysShow, filter.neverShow, filter.pinnedDialogs, true, true, true, false, FiltersSetupActivity.this, () -> { + FilterCreateActivity.saveFilterToServer(filter, filter.flags, filter.name, filter.alwaysShow, filter.neverShow, filter.pinnedDialogs, true, true, true, true, false, FiltersSetupActivity.this, () -> { getNotificationCenter().postNotificationName(NotificationCenter.dialogFiltersUpdated); ignoreUpdates = false; ArrayList suggestedFilters = getMessagesController().suggestedFilters; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/GroupCreateActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/GroupCreateActivity.java index 30f462e3b..94cde316a 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/GroupCreateActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/GroupCreateActivity.java @@ -1185,7 +1185,7 @@ public class GroupCreateActivity extends BaseFragment implements NotificationCen view = new GroupCreateSectionCell(context); break; case 1: - view = new GroupCreateUserCell(context, true, 0); + view = new GroupCreateUserCell(context, true, 0, false); break; case 2: default: diff --git a/TMessagesProj/src/main/java/org/telegram/ui/GroupCreateFinalActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/GroupCreateFinalActivity.java index 22e5ce276..bb340d68a 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/GroupCreateFinalActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/GroupCreateFinalActivity.java @@ -246,7 +246,7 @@ public class GroupCreateFinalActivity extends BaseFragment implements Notificati measureChildWithMargins(actionBar, widthMeasureSpec, 0, heightMeasureSpec, 0); - int keyboardSize = SharedConfig.smoothKeyboard ? 0 : getKeyboardHeight(); + int keyboardSize = SharedConfig.smoothKeyboard ? 0 : measureKeyboardHeight(); if (keyboardSize > AndroidUtilities.dp(20)) { ignoreLayout = true; editText.hideEmojiView(); @@ -279,7 +279,7 @@ public class GroupCreateFinalActivity extends BaseFragment implements Notificati protected void onLayout(boolean changed, int l, int t, int r, int b) { final int count = getChildCount(); - int keyboardSize = SharedConfig.smoothKeyboard ? 0 : getKeyboardHeight(); + int keyboardSize = SharedConfig.smoothKeyboard ? 0 : measureKeyboardHeight(); int paddingBottom = keyboardSize <= AndroidUtilities.dp(20) && !AndroidUtilities.isInMultiwindow && !AndroidUtilities.isTablet() ? editText.getEmojiPadding() : 0; setBottomClip(paddingBottom); @@ -830,7 +830,7 @@ public class GroupCreateFinalActivity extends BaseFragment implements Notificati view = headerCell; break; case 2: - view = new GroupCreateUserCell(context, false, 3); + view = new GroupCreateUserCell(context, false, 3, false); break; case 3: default: diff --git a/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java index c1b65accd..681777251 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java @@ -2004,6 +2004,16 @@ public class LaunchActivity extends Activity implements ActionBarLayout.ActionBa ChatActivity fragment = new ChatActivity(args); actionBarLayout.presentFragment(fragment); } + }, () -> { + if (!LaunchActivity.this.isFinishing()) { + BaseFragment fragment = mainFragmentsStack.get(mainFragmentsStack.size() - 1); + AlertsCreator.showSimpleAlert(fragment, LocaleController.getString("JoinToGroupErrorNotExist", R.string.JoinToGroupErrorNotExist)); + } + try { + progressDialog.dismiss(); + } catch (Exception e) { + FileLog.e(e); + } }); hideProgressDialog = false; } @@ -2057,6 +2067,16 @@ public class LaunchActivity extends Activity implements ActionBarLayout.ActionBa } ChatActivity fragment = new ChatActivity(args); actionBarLayout.presentFragment(fragment); + }, () -> { + if (!LaunchActivity.this.isFinishing()) { + BaseFragment fragment = mainFragmentsStack.get(mainFragmentsStack.size() - 1); + AlertsCreator.showSimpleAlert(fragment, LocaleController.getString("JoinToGroupErrorNotExist", R.string.JoinToGroupErrorNotExist)); + } + try { + progressDialog.dismiss(); + } catch (Exception e) { + FileLog.e(e); + } }); hideProgressDialog = false; } @@ -2655,14 +2675,14 @@ public class LaunchActivity extends Activity implements ActionBarLayout.ActionBa } private void onFinish() { - if (finished) { - return; - } - finished = true; if (lockRunnable != null) { AndroidUtilities.cancelRunOnUIThread(lockRunnable); lockRunnable = null; } + if (finished) { + return; + } + finished = true; if (currentAccount != -1) { NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.appDidLogout); NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.mainUserInfoChanged); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/LogoutActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/LogoutActivity.java index cdeb1145a..2e9fce26a 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/LogoutActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/LogoutActivity.java @@ -12,7 +12,6 @@ import android.animation.AnimatorSet; import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; -import android.text.TextUtils; import android.view.Gravity; import android.view.View; import android.view.ViewGroup; @@ -142,11 +141,7 @@ public class LogoutActivity extends BaseFragment { } AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); UserConfig userConfig = getUserConfig(); - if (!TextUtils.isEmpty(userConfig.tonEncryptedData) && userConfig.tonCreationFinished) { - builder.setMessage(AndroidUtilities.replaceTags(LocaleController.getString("WalletTelegramLogout", R.string.WalletTelegramLogout))); - } else { - builder.setMessage(LocaleController.getString("AreYouSureLogout", R.string.AreYouSureLogout)); - } + builder.setMessage(LocaleController.getString("AreYouSureLogout", R.string.AreYouSureLogout)); builder.setTitle(LocaleController.getString("LogOut", R.string.LogOut)); builder.setPositiveButton(LocaleController.getString("LogOut", R.string.LogOut), (dialogInterface, i) -> MessagesController.getInstance(currentAccount).performLogout(1)); builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/MediaActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/MediaActivity.java index ad20e9c8b..27873e76f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/MediaActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/MediaActivity.java @@ -2053,7 +2053,7 @@ public class MediaActivity extends BaseFragment implements NotificationCenter.No link = ((SharedLinkCell) view).getLink(0); } if (link != null) { - Browser.openUrl(getParentActivity(), link); + openUrl(link); } } catch (Exception e) { FileLog.e(e); @@ -2062,6 +2062,14 @@ public class MediaActivity extends BaseFragment implements NotificationCenter.No } } + private void openUrl(String link) { + if (AndroidUtilities.shouldShowUrlInAlert(link)) { + AlertsCreator.showOpenUrlAlert(this, link, true, true); + } else { + Browser.openUrl(getParentActivity(), link); + } + } + private void openWebView(TLRPC.WebPage webPage) { EmbedBottomSheet.show(getParentActivity(), webPage.site_name, webPage.description, webPage.url, webPage.embed_url, webPage.embed_width, webPage.embed_height); } @@ -2136,23 +2144,27 @@ public class MediaActivity extends BaseFragment implements NotificationCenter.No } @Override - public void onLinkLongPress(final String urlFinal) { - BottomSheet.Builder builder = new BottomSheet.Builder(getParentActivity()); - builder.setTitle(urlFinal); - builder.setItems(new CharSequence[]{LocaleController.getString("Open", R.string.Open), LocaleController.getString("Copy", R.string.Copy)}, (dialog, which) -> { - if (which == 0) { - Browser.openUrl(getParentActivity(), urlFinal, true); - } else if (which == 1) { - String url = urlFinal; - if (url.startsWith("mailto:")) { - url = url.substring(7); - } else if (url.startsWith("tel:")) { - url = url.substring(4); + public void onLinkPress(String urlFinal, boolean longPress) { + if (longPress) { + BottomSheet.Builder builder = new BottomSheet.Builder(getParentActivity()); + builder.setTitle(urlFinal); + builder.setItems(new CharSequence[]{LocaleController.getString("Open", R.string.Open), LocaleController.getString("Copy", R.string.Copy)}, (dialog, which) -> { + if (which == 0) { + openUrl(urlFinal); + } else if (which == 1) { + String url = urlFinal; + if (url.startsWith("mailto:")) { + url = url.substring(7); + } else if (url.startsWith("tel:")) { + url = url.substring(4); + } + AndroidUtilities.addToClipboard(url); } - AndroidUtilities.addToClipboard(url); - } - }); - showDialog(builder.create()); + }); + showDialog(builder.create()); + } else { + openUrl(urlFinal); + } } }; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/PassportActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/PassportActivity.java index 90792e3b4..28b689f59 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/PassportActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/PassportActivity.java @@ -930,7 +930,7 @@ public class PassportActivity extends BaseFragment implements NotificationCenter public boolean onFragmentCreate() { NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.FileDidUpload); NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.FileDidFailUpload); - NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.didSetTwoStepPassword); + NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.twoStepPasswordChanged); NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.didRemoveTwoStepPassword); return super.onFragmentCreate(); } @@ -940,7 +940,7 @@ public class PassportActivity extends BaseFragment implements NotificationCenter super.onFragmentDestroy(); NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.FileDidUpload); NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.FileDidFailUpload); - NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.didSetTwoStepPassword); + NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.twoStepPasswordChanged); NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.didRemoveTwoStepPassword); callCallback(false); if (chatAttachAlert != null) { @@ -1559,9 +1559,8 @@ public class PassportActivity extends BaseFragment implements NotificationCenter noPasswordSetTextView.setText(LocaleController.getString("TelegramPassportCreatePassword", R.string.TelegramPassportCreatePassword)); linearLayout2.addView(noPasswordSetTextView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 24, (LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP, 21, 9, 21, 0)); noPasswordSetTextView.setOnClickListener(v -> { - TwoStepVerificationActivity activity = new TwoStepVerificationActivity(currentAccount, 1); + TwoStepVerificationSetupActivity activity = new TwoStepVerificationSetupActivity(currentAccount, TwoStepVerificationSetupActivity.TYPE_ENTER_FIRST, currentPassword); activity.setCloseAfterSet(true); - activity.setCurrentPasswordInfo(new byte[0], currentPassword); presentFragment(activity); }); @@ -1640,9 +1639,8 @@ public class PassportActivity extends BaseFragment implements NotificationCenter builder.setMessage(LocaleController.formatString("RestoreEmailSent", R.string.RestoreEmailSent, res.email_pattern)); builder.setTitle(LocaleController.getString("RestoreEmailSentTitle", R.string.RestoreEmailSentTitle)); builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), (dialogInterface, i) -> { - TwoStepVerificationActivity fragment = new TwoStepVerificationActivity(currentAccount, 1); - fragment.setRecoveryParams(currentPassword); currentPassword.email_unconfirmed_pattern = res.email_pattern; + TwoStepVerificationSetupActivity fragment = new TwoStepVerificationSetupActivity(currentAccount, TwoStepVerificationSetupActivity.TYPE_EMAIL_RECOVERY, currentPassword); presentFragment(fragment); }); Dialog dialog = showDialog(builder.create()); @@ -6516,7 +6514,7 @@ public class PassportActivity extends BaseFragment implements NotificationCenter } } else if (id == NotificationCenter.FileDidFailUpload) { - } else if (id == NotificationCenter.didSetTwoStepPassword) { + } else if (id == NotificationCenter.twoStepPasswordChanged) { if (args != null && args.length > 0) { if (args[7] != null && inputFields[FIELD_PASSWORD] != null) { inputFields[FIELD_PASSWORD].setText((String) args[7]); @@ -6834,11 +6832,10 @@ public class PassportActivity extends BaseFragment implements NotificationCenter ArrayList photos = new ArrayList<>(); for (int a = 0; a < selectedPhotosOrder.size(); a++) { MediaController.PhotoEntry photoEntry = (MediaController.PhotoEntry) selectedPhotos.get(selectedPhotosOrder.get(a)); - SendMessagesHelper.SendingMediaInfo info = new SendMessagesHelper.SendingMediaInfo(); if (photoEntry.imagePath != null) { info.path = photoEntry.imagePath; - } else if (photoEntry.path != null) { + } else { info.path = photoEntry.path; } photos.add(info); @@ -6872,6 +6869,11 @@ public class PassportActivity extends BaseFragment implements NotificationCenter public void needEnterComment() { } + + @Override + public void doOnIdle(Runnable runnable) { + runnable.run(); + } }); } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/PaymentFormActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/PaymentFormActivity.java index aa0d23789..3636b4f51 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/PaymentFormActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/PaymentFormActivity.java @@ -273,7 +273,7 @@ public class PaymentFormActivity extends BaseFragment implements NotificationCen @Override public void onClick(View widget) { - presentFragment(new TwoStepVerificationActivity(0)); + presentFragment(new TwoStepVerificationSetupActivity(TwoStepVerificationSetupActivity.TYPE_INTRO, currentPassword)); } } @@ -820,7 +820,7 @@ public class PaymentFormActivity extends BaseFragment implements NotificationCen } phoneField.setText(builder); if (start >= 0) { - phoneField.setSelection(start <= phoneField.length() ? start : phoneField.length()); + phoneField.setSelection(Math.min(start, phoneField.length())); } phoneField.onTextChange(); ignoreOnPhoneChange = false; @@ -1326,7 +1326,7 @@ public class PaymentFormActivity extends BaseFragment implements NotificationCen editable.replace(0, editable.length(), builder); } if (start >= 0) { - phoneField.setSelection(start <= phoneField.length() ? start : phoneField.length()); + phoneField.setSelection(Math.min(start, phoneField.length())); } ignoreOnCardChange = false; } @@ -1442,7 +1442,7 @@ public class PaymentFormActivity extends BaseFragment implements NotificationCen phoneField.setText(builder); if (start >= 0) { - phoneField.setSelection(start <= phoneField.length() ? start : phoneField.length()); + phoneField.setSelection(Math.min(start, phoneField.length())); } ignoreOnCardChange = false; } @@ -2219,7 +2219,7 @@ public class PaymentFormActivity extends BaseFragment implements NotificationCen @Override public boolean onFragmentCreate() { - NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.didSetTwoStepPassword); + NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.twoStepPasswordChanged); NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.didRemoveTwoStepPassword); if (currentStep != 4) { NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.paymentFinished); @@ -2232,7 +2232,7 @@ public class PaymentFormActivity extends BaseFragment implements NotificationCen if (delegate != null) { delegate.onFragmentDestroyed(); } - NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.didSetTwoStepPassword); + NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.twoStepPasswordChanged); NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.didRemoveTwoStepPassword); if (currentStep != 4) { NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.paymentFinished); @@ -2287,7 +2287,7 @@ public class PaymentFormActivity extends BaseFragment implements NotificationCen @Override public void didReceivedNotification(int id, int account, Object... args) { - if (id == NotificationCenter.didSetTwoStepPassword) { + if (id == NotificationCenter.twoStepPasswordChanged) { paymentForm.password_missing = false; paymentForm.can_save_credentials = true; updateSavePaymentField(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/PhotoAlbumPickerActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/PhotoAlbumPickerActivity.java index 97fbf68e3..3c269b1f6 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/PhotoAlbumPickerActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/PhotoAlbumPickerActivity.java @@ -193,7 +193,7 @@ public class PhotoAlbumPickerActivity extends BaseFragment implements Notificati setMeasuredDimension(widthSize, heightSize); - int keyboardSize = SharedConfig.smoothKeyboard ? 0 : getKeyboardHeight(); + int keyboardSize = SharedConfig.smoothKeyboard ? 0 : measureKeyboardHeight(); if (keyboardSize <= AndroidUtilities.dp(20)) { if (!AndroidUtilities.isInMultiwindow) { heightSize -= commentTextView.getEmojiPadding(); @@ -237,7 +237,7 @@ public class PhotoAlbumPickerActivity extends BaseFragment implements Notificati } final int count = getChildCount(); - int keyboardSize = SharedConfig.smoothKeyboard ? 0 : getKeyboardHeight(); + int keyboardSize = SharedConfig.smoothKeyboard ? 0 : measureKeyboardHeight(); int paddingBottom = keyboardSize <= AndroidUtilities.dp(20) && !AndroidUtilities.isInMultiwindow && !AndroidUtilities.isTablet() ? commentTextView.getEmojiPadding() : 0; setBottomClip(paddingBottom); @@ -633,18 +633,17 @@ public class PhotoAlbumPickerActivity extends BaseFragment implements Notificati media.add(info); if (object instanceof MediaController.PhotoEntry) { MediaController.PhotoEntry photoEntry = (MediaController.PhotoEntry) object; - if (photoEntry.isVideo) { - info.path = photoEntry.path; - info.videoEditedInfo = photoEntry.editedInfo; - } else if (photoEntry.imagePath != null) { + if (photoEntry.imagePath != null) { info.path = photoEntry.imagePath; - } else if (photoEntry.path != null) { + } else { info.path = photoEntry.path; } + info.thumbPath = photoEntry.thumbPath; + info.videoEditedInfo = photoEntry.editedInfo; info.isVideo = photoEntry.isVideo; info.caption = photoEntry.caption != null ? photoEntry.caption.toString() : null; info.entities = photoEntry.entities; - info.masks = !photoEntry.stickers.isEmpty() ? new ArrayList<>(photoEntry.stickers) : null; + info.masks = photoEntry.stickers; info.ttl = photoEntry.ttl; } else if (object instanceof MediaController.SearchImage) { MediaController.SearchImage searchImage = (MediaController.SearchImage) object; @@ -653,10 +652,11 @@ public class PhotoAlbumPickerActivity extends BaseFragment implements Notificati } else { info.searchImage = searchImage; } - + info.thumbPath = searchImage.thumbPath; + info.videoEditedInfo = searchImage.editedInfo; info.caption = searchImage.caption != null ? searchImage.caption.toString() : null; info.entities = searchImage.entities; - info.masks = !searchImage.stickers.isEmpty() ? new ArrayList<>(searchImage.stickers) : null; + info.masks = searchImage.stickers; info.ttl = searchImage.ttl; if (searchImage.inlineResult != null && searchImage.type == 1) { info.inlineResult = searchImage.inlineResult; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/PhotoPickerActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/PhotoPickerActivity.java index d55768c83..7dc9ceb33 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/PhotoPickerActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/PhotoPickerActivity.java @@ -344,9 +344,11 @@ public class PhotoPickerActivity extends BaseFragment implements NotificationCen } MediaController.SearchImage photoEntry = searchResult.get(index); if ((num = addToSelectedPhotos(photoEntry, -1)) == -1) { + photoEntry.editedInfo = videoEditedInfo; num = selectedPhotosOrder.indexOf(photoEntry.id); } else { add = false; + photoEntry.editedInfo = null; } } int count = listView.getChildCount(); @@ -389,7 +391,9 @@ public class PhotoPickerActivity extends BaseFragment implements NotificationCen if (index < 0 || index >= searchResult.size()) { return; } - addToSelectedPhotos(searchResult.get(index), -1); + MediaController.SearchImage searchImage = searchResult.get(index); + searchImage.editedInfo = videoEditedInfo; + addToSelectedPhotos(searchImage, -1); } } sendSelectedPhotos(notify, scheduleDate); @@ -488,9 +492,16 @@ public class PhotoPickerActivity extends BaseFragment implements NotificationCen if (isDocumentsPicker) { ActionBarMenu menu = actionBar.createMenu(); ActionBarMenuItem menuItem = menu.addItem(0, R.drawable.ic_ab_other); - menuItem.setSubMenuDelegate(() -> { - showAsListItem.setText(listSort ? LocaleController.getString("ShowAsGrid", R.string.ShowAsGrid) : LocaleController.getString("ShowAsList", R.string.ShowAsList)); - showAsListItem.setIcon(listSort ? R.drawable.msg_media : R.drawable.msg_list); + menuItem.setSubMenuDelegate(new ActionBarMenuItem.ActionBarSubMenuItemDelegate() { + @Override + public void onShowSubMenu() { + showAsListItem.setText(listSort ? LocaleController.getString("ShowAsGrid", R.string.ShowAsGrid) : LocaleController.getString("ShowAsList", R.string.ShowAsList)); + showAsListItem.setIcon(listSort ? R.drawable.msg_media : R.drawable.msg_list); + } + + @Override + public void onHideSubMenu() { + } }); showAsListItem = menuItem.addSubItem(change_sort, R.drawable.msg_list, LocaleController.getString("ShowAsList", R.string.ShowAsList)); menuItem.addSubItem(open_in, R.drawable.msg_openin, LocaleController.getString("OpenInExternalApp", R.string.OpenInExternalApp)); @@ -588,7 +599,7 @@ public class PhotoPickerActivity extends BaseFragment implements NotificationCen setMeasuredDimension(widthSize, heightSize); - int kbHeight = getKeyboardHeight(); + int kbHeight = measureKeyboardHeight(); int keyboardSize = SharedConfig.smoothKeyboard ? 0 : kbHeight; if (keyboardSize <= AndroidUtilities.dp(20)) { if (!AndroidUtilities.isInMultiwindow && commentTextView != null && frameLayout2.getParent() == this) { @@ -643,7 +654,7 @@ public class PhotoPickerActivity extends BaseFragment implements NotificationCen } final int count = getChildCount(); - int keyboardSize = SharedConfig.smoothKeyboard ? 0 : getKeyboardHeight(); + int keyboardSize = SharedConfig.smoothKeyboard ? 0 : measureKeyboardHeight(); int paddingBottom = commentTextView != null && frameLayout2.getParent() == this && keyboardSize <= AndroidUtilities.dp(20) && !AndroidUtilities.isInMultiwindow && !AndroidUtilities.isTablet() ? commentTextView.getEmojiPadding() : 0; setBottomClip(paddingBottom); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/PhotoPickerSearchActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/PhotoPickerSearchActivity.java index 841500f67..11eafd01a 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/PhotoPickerSearchActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/PhotoPickerSearchActivity.java @@ -121,7 +121,6 @@ public class PhotoPickerSearchActivity extends BaseFragment { imagesSearch.getActionBar().openSearchField("", false); gifsSearch.getActionBar().openSearchField("", false); searchItem.getSearchField().requestFocus(); - } @Override @@ -241,7 +240,7 @@ public class PhotoPickerSearchActivity extends BaseFragment { setMeasuredDimension(widthSize, heightSize); measureChildWithMargins(actionBar, widthMeasureSpec, 0, heightMeasureSpec, 0); - int keyboardSize = SharedConfig.smoothKeyboard ? 0 : getKeyboardHeight(); + int keyboardSize = SharedConfig.smoothKeyboard ? 0 : measureKeyboardHeight(); if (keyboardSize <= AndroidUtilities.dp(20)) { if (!AndroidUtilities.isInMultiwindow) { heightSize -= commentTextView.getEmojiPadding(); @@ -291,7 +290,7 @@ public class PhotoPickerSearchActivity extends BaseFragment { protected void onLayout(boolean changed, int l, int t, int r, int b) { final int count = getChildCount(); - int keyboardSize = SharedConfig.smoothKeyboard ? 0 : getKeyboardHeight(); + int keyboardSize = SharedConfig.smoothKeyboard ? 0 : measureKeyboardHeight(); int paddingBottom = keyboardSize <= AndroidUtilities.dp(20) && !AndroidUtilities.isInMultiwindow && !AndroidUtilities.isTablet() ? commentTextView.getEmojiPadding() : 0; setBottomClip(paddingBottom); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/PhotoViewer.java b/TMessagesProj/src/main/java/org/telegram/ui/PhotoViewer.java index 6a0345e33..5a06e085b 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/PhotoViewer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/PhotoViewer.java @@ -13,6 +13,7 @@ import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.AnimatorSet; import android.animation.ObjectAnimator; +import android.animation.ValueAnimator; import android.annotation.SuppressLint; import android.app.Activity; import android.app.Dialog; @@ -45,7 +46,15 @@ import android.os.SystemClock; import android.provider.Settings; import androidx.annotation.Keep; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.collection.ArrayMap; +import androidx.core.content.ContextCompat; import androidx.core.content.FileProvider; +import androidx.core.view.ViewCompat; +import androidx.core.widget.NestedScrollView; +import androidx.dynamicanimation.animation.DynamicAnimation; +import androidx.dynamicanimation.animation.SpringAnimation; +import androidx.dynamicanimation.animation.SpringForce; import androidx.recyclerview.widget.DefaultItemAnimator; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearSmoothScrollerEnd; @@ -61,6 +70,17 @@ import android.text.StaticLayout; import android.text.TextPaint; import android.text.TextUtils; import android.text.method.LinkMovementMethod; +import android.text.method.Touch; +import android.text.style.ClickableSpan; +import android.text.style.URLSpan; +import android.transition.ChangeBounds; +import android.transition.Fade; +import android.transition.Transition; +import android.transition.TransitionManager; +import android.transition.TransitionSet; +import android.transition.TransitionValues; +import android.util.FloatProperty; +import android.util.Property; import android.util.SparseArray; import android.util.TypedValue; import android.view.ActionMode; @@ -81,12 +101,13 @@ import android.view.WindowInsets; import android.view.WindowManager; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityManager; -import android.view.animation.AccelerateInterpolator; import android.view.animation.DecelerateInterpolator; +import android.view.animation.LinearInterpolator; import android.view.animation.OvershootInterpolator; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.LinearLayout; +import android.widget.OverScroller; import android.widget.Scroller; import android.widget.TextView; import android.widget.Toast; @@ -148,37 +169,48 @@ import org.telegram.ui.Components.ChatAttachAlert; import org.telegram.ui.Components.CheckBox; import org.telegram.ui.Components.ClippingImageView; import org.telegram.messenger.ImageReceiver; +import org.telegram.ui.Components.CombinedDrawable; +import org.telegram.ui.Components.FadingTextViewLayout; +import org.telegram.ui.Components.FilterShaders; import org.telegram.ui.Components.GestureDetector2; import org.telegram.ui.Components.GroupedPhotosListView; import org.telegram.ui.Components.LayoutHelper; import org.telegram.ui.Components.NumberPicker; import org.telegram.ui.Components.OtherDocumentPlaceholderDrawable; +import org.telegram.ui.Components.PaintingOverlay; import org.telegram.ui.Components.PhotoCropView; import org.telegram.ui.Components.PhotoFilterView; import org.telegram.ui.Components.PhotoPaintView; import org.telegram.ui.Components.PhotoViewerCaptionEnterView; import org.telegram.ui.Components.PickerBottomLayoutViewer; import org.telegram.ui.Components.PipVideoView; +import org.telegram.ui.Components.RLottieDrawable; import org.telegram.ui.Components.RadialProgressView; import org.telegram.ui.Components.RecyclerListView; -import org.telegram.ui.Components.SeekBar; import org.telegram.ui.Components.SizeNotifierFrameLayoutPhoto; import org.telegram.ui.Components.StickersAlert; +import org.telegram.ui.Components.TextViewSwitcher; import org.telegram.ui.Components.Tooltip; import org.telegram.ui.Components.URLSpanNoUnderline; import org.telegram.ui.Components.URLSpanUserMentionPhotoViewer; +import org.telegram.ui.Components.VideoEditTextureView; import org.telegram.ui.Components.VideoForwardDrawable; import org.telegram.ui.Components.VideoPlayer; +import org.telegram.ui.Components.VideoPlayerSeekBar; import org.telegram.ui.Components.VideoSeekPreviewImage; import org.telegram.ui.Components.VideoTimelinePlayView; import java.io.ByteArrayInputStream; import java.io.File; +import java.io.FileOutputStream; +import java.lang.reflect.Field; +import java.lang.reflect.Method; import java.net.URLEncoder; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.Locale; +import java.util.Map; @SuppressWarnings("unchecked") public class PhotoViewer implements NotificationCenter.NotificationCenterDelegate, GestureDetector2.OnGestureListener, GestureDetector2.OnDoubleTapListener { @@ -208,6 +240,12 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat private int currentAccount; + private static final int PROGRESS_NONE = -1; + private static final int PROGRESS_EMPTY = 0; + private static final int PROGRESS_CANCEL = 1; + private static final int PROGRESS_LOAD = 2; + private static final int PROGRESS_PLAY = 3; + private static final int PROGRESS_PAUSE = 4; private static Drawable[] progressDrawables; private WindowManager.LayoutParams windowLayoutParams; @@ -215,8 +253,8 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat private FrameLayout windowView; private ClippingImageView animatingImageView; private FrameLayout bottomLayout; - private TextView nameTextView; - private TextView dateTextView; + private FadingTextViewLayout nameTextView; + private FadingTextViewLayout dateTextView; private TextView docNameTextView; private TextView docInfoTextView; private ActionBarMenuItem menuItem; @@ -224,6 +262,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat private ActionBarMenuItem sendItem; private ActionBarMenuItem pipItem; private ActionBarMenuItem masksItem; + private Map actionBarItemsVisibility = new HashMap<>(3); private ImageView shareButton; private BackgroundDrawable backgroundDrawable = new BackgroundDrawable(0xff000000); private Paint blackPaint = new Paint(); @@ -245,7 +284,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat private ImageView compressItem; private GroupedPhotosListView groupedPhotosListView; private Tooltip tooltip; - private RecyclerListView selectedPhotosListView; + private SelectedPhotosListView selectedPhotosListView; private ListAdapter selectedPhotosAdapter; private AnimatorSet compressItemAnimation; private ImageReceiver sideImage; @@ -267,10 +306,9 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat private PhotoFilterView photoFilterView; private PhotoPaintView photoPaintView; private AlertDialog visibleDialog; - private TextView captionTextView; - private boolean isSingleLine; - private TextView switchCaptionTextView; - private AnimatorSet currentCaptionAnimation; + private CaptionTextViewSwitcher captionTextViewSwitcher; + private CaptionScrollView captionScrollView; + private FrameLayout captionContainer; private ChatAttachAlert parentAlert; private PhotoViewerCaptionEnterView captionEditText; private int sendPhotoType; @@ -279,6 +317,10 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat private AnimatedFileDrawable currentAnimation; private boolean allowShare; private boolean openedFullScreenVideo; + private boolean dontChangeCaptionPosition; + private boolean captionHwLayerEnabled; + + private Paint bitmapPaint = new Paint(Paint.FILTER_BITMAP_FLAG); private boolean pipAvailable; @@ -297,6 +339,24 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } }; + private Runnable hideActionBarRunnable = new Runnable() { + @Override + public void run() { + if (videoPlayerControlVisible && isPlaying && !ApplicationLoader.mainInterfacePaused) { + if (menuItem != null && menuItem.isSubMenuShowing()) { + return; + } + if (captionScrollView != null && captionScrollView.getScrollY() != 0) { + return; + } + if (miniProgressView != null && miniProgressView.getVisibility() == View.VISIBLE) { + return; + } + toggleActionBar(false, true); + } + } + }; + private AspectRatioFrameLayout aspectRatioFrameLayout; private TextureView videoTextureView; private VideoPlayer videoPlayer; @@ -305,19 +365,24 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat private boolean playerInjected; private boolean skipFirstBufferingProgress; private boolean playerWasReady; + private boolean playerWasPlaying; + private boolean playerAutoStarted; + private boolean playerLooping; private float seekToProgressPending; private String shouldSavePositionForCurrentVideo; + private String shouldSavePositionForCurrentVideoShortTerm; + private ArrayMap savedVideoPositions = new ArrayMap<>(); private long lastSaveTime; private float seekToProgressPending2; private boolean streamingAlertShown; private long startedPlayTime; private boolean keepScreenOnFlagSet; - private FrameLayout videoPlayerControlFrameLayout; - private ImageView videoPlayButton; - private ImageView videoForwardButton; - private ImageView videoBackwardButton; + private VideoPlayerControlFrameLayout videoPlayerControlFrameLayout; + private Animator videoPlayerControlAnimator; + private boolean videoPlayerControlVisible = true; private SimpleTextView videoPlayerTime; - private SeekBar videoPlayerSeekbar; + private VideoPlayerSeekBar videoPlayerSeekbar; + private View videoPlayerSeekbarView; private VideoSeekPreviewImage videoPreviewFrame; private AnimatorSet videoPreviewFrameAnimation; private boolean needShowOnReady; @@ -341,6 +406,9 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat private boolean firstAnimationDelay; private long lastBufferedPositionCheck; private View playButtonAccessibilityOverlay; + private StickersAlert masksAlert; + + private int keyboardSize; private int currentPanTranslationY; @@ -348,12 +416,69 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat public final static int SELECT_TYPE_WALLPAPER = 3; public final static int SELECT_TYPE_QR = 10; + private static class SavedVideoPosition { + + public final float position; + public final long timestamp; + + public SavedVideoPosition(float position, long timestamp) { + this.position = position; + this.timestamp = timestamp; + } + } + private class LinkMovementMethodMy extends LinkMovementMethod { @Override public boolean onTouchEvent(@NonNull TextView widget, @NonNull Spannable buffer, @NonNull MotionEvent event) { try { - boolean result = super.onTouchEvent(widget, buffer, event); + + int action = event.getAction(); + boolean result = false; + + if (action == MotionEvent.ACTION_UP || action == MotionEvent.ACTION_DOWN) { + int x = (int) event.getX(); + int y = (int) event.getY(); + + x -= widget.getTotalPaddingLeft(); + y -= widget.getTotalPaddingTop(); + + x += widget.getScrollX(); + y += widget.getScrollY(); + + Layout layout = widget.getLayout(); + int line = layout.getLineForVertical(y); + int off = layout.getOffsetForHorizontal(line, x); + + ClickableSpan[] links = buffer.getSpans(off, off, ClickableSpan.class); + + if (links.length != 0) { + ClickableSpan link = links[0]; + if (action == MotionEvent.ACTION_UP) { + if (link instanceof URLSpan) { + String url = ((URLSpan) link).getURL(); + if (parentChatActivity != null && AndroidUtilities.shouldShowUrlInAlert(url)) { + AlertsCreator.showOpenUrlAlert(parentChatActivity, url, true, true); + } else { + link.onClick(widget); + } + } else { + link.onClick(widget); + } + } else if (action == MotionEvent.ACTION_DOWN) { + Selection.setSelection(buffer, buffer.getSpanStart(link), buffer.getSpanEnd(link)); + } + result = true; + } else { + Selection.removeSelection(buffer); + } + } + if (!result) { + result = Touch.onTouchEvent(widget, buffer, event); + } + if (event.getAction() == MotionEvent.ACTION_UP || event.getAction() == MotionEvent.ACTION_CANCEL) { + AndroidUtilities.runOnUIThread(() -> widget.setOnClickListener(openCaptionEnter)); + URLSpanNoUnderline[] links = buffer.getSpans(widget.getSelectionStart(), widget.getSelectionEnd(), URLSpanNoUnderline.class); if (links != null && links.length > 0) { String url = links[0].getURL(); @@ -366,7 +491,13 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat videoPlayer.seekTo(seconds * 1000L); } } - + } else if (url.startsWith("#")) { + if (parentActivity instanceof LaunchActivity) { + DialogsActivity fragment = new DialogsActivity(null); + fragment.setSearchString(url); + ((LaunchActivity) parentActivity).presentFragment(fragment, false, true); + closePhoto(false, false); + } } } Selection.removeSelection(buffer); @@ -386,11 +517,11 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat if (isCurrentVideo) { if (!videoTimelineView.isDragging()) { float progress = videoPlayer.getCurrentPosition() / (float) videoPlayer.getDuration(); - if (!inPreview && videoTimelineView.getVisibility() == View.VISIBLE) { + if (!inPreview && (currentEditMode != 0 || videoTimelineView.getVisibility() == View.VISIBLE)) { if (progress >= videoTimelineView.getRightProgress()) { videoTimelineView.setProgress(0); videoPlayer.seekTo((int) (videoTimelineView.getLeftProgress() * videoPlayer.getDuration())); - if (muteVideo) { + if (muteVideo || currentEditMode != 0) { videoPlayer.play(); } else { videoPlayer.pause(); @@ -454,7 +585,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } } } - videoPlayerControlFrameLayout.invalidate(); + videoPlayerSeekbarView.invalidate(); if (shouldSavePositionForCurrentVideo != null) { float value = progress; if (value >= 0 && shouldSavePositionForCurrentVideo != null && SystemClock.elapsedRealtime() - lastSaveTime >= 1000) { @@ -596,6 +727,13 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat private int currentEditMode; + private final Runnable updateContainerFlagsRunnable = () -> { + if (isVisible && animationInProgress == 0) { + updateContainerFlags(isActionBarVisible); + } + }; + + private PaintingOverlay paintingOverlay; private ImageReceiver leftImage = new ImageReceiver(); private ImageReceiver centerImage = new ImageReceiver(); private ImageReceiver rightImage = new ImageReceiver(); @@ -603,12 +741,17 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat private int switchingToIndex; private MessageObject currentMessageObject; private Uri currentPlayingVideoFile; + private MediaController.SavedFilterState currentSavedFilterState; + private ArrayList currentMediaEntities; + private String currentPaintPath; + private long currentAverageDuration; private TLRPC.BotInlineResult currentBotInlineResult; private ImageLocation currentFileLocation; private SecureDocument currentSecureDocument; private String[] currentFileNames = new String[3]; private PlaceProviderObject currentPlaceObject; private String currentPathObject; + private String currentImagePath; private boolean currentVideoFinishedLoading; private ImageReceiver.BitmapHolder currentThumb; private boolean ignoreDidSetImage; @@ -664,6 +807,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat private boolean changingPage; private boolean zooming; private boolean moving; + private int paintViewTouched; private boolean doubleTap; private boolean invalidCoords; private boolean canDragDown = true; @@ -686,6 +830,8 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat private ArrayList imagesArrLocals = new ArrayList<>(); private ImageLocation currentUserAvatarLocation = null; + private android.graphics.Rect hitRect = new android.graphics.Rect(); + private final static int gallery_menu_save = 1; private final static int gallery_menu_showall = 2; private final static int gallery_menu_send = 3; @@ -697,10 +843,13 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat private final static int gallery_menu_openin = 11; private final static int gallery_menu_masks = 13; private final static int gallery_menu_savegif = 14; + private final static int gallery_menu_masks2 = 15; private static DecelerateInterpolator decelerateInterpolator; private static Paint progressPaint; + private int transitionIndex; + private class BackgroundDrawable extends ColorDrawable { private final RectF rect = new RectF(); @@ -782,6 +931,58 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } } + private static class SelectedPhotosListView extends RecyclerListView { + + private Drawable arrowDrawable; + private Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); + private RectF rect = new RectF(); + + public SelectedPhotosListView(Context context) { + super(context); + setWillNotDraw(false); + + setClipToPadding(false); + setTranslationY(-AndroidUtilities.dp(10)); + DefaultItemAnimator defaultItemAnimator; + setItemAnimator(defaultItemAnimator = new DefaultItemAnimator() { + @Override + protected void onMoveAnimationUpdate(ViewHolder holder) { + invalidate(); + } + }); + defaultItemAnimator.setDelayAnimations(false); + defaultItemAnimator.setSupportsChangeAnimations(false); + setPadding(AndroidUtilities.dp(12), AndroidUtilities.dp(12), AndroidUtilities.dp(12), AndroidUtilities.dp(6)); + paint.setColor(0x7f000000); + + arrowDrawable = context.getResources().getDrawable(R.drawable.photo_tooltip2).mutate(); + } + + @Override + public void onDraw(Canvas c) { + super.onDraw(c); + + int count = getChildCount(); + if (count > 0) { + int x = getMeasuredWidth() - AndroidUtilities.dp(87); + arrowDrawable.setBounds(x, 0, x + arrowDrawable.getIntrinsicWidth(), AndroidUtilities.dp(6)); + arrowDrawable.draw(c); + + int minX = Integer.MAX_VALUE; + int maxX = Integer.MIN_VALUE; + for (int a = 0; a < count; a++) { + View v = getChildAt(a); + minX = (int) Math.min(minX, Math.floor(v.getX())); + maxX = (int) Math.max(maxX, Math.ceil(v.getX() + v.getMeasuredWidth())); + } + if (minX != Integer.MAX_VALUE && maxX != Integer.MIN_VALUE) { + rect.set(minX - AndroidUtilities.dp(6), AndroidUtilities.dp(6), maxX + AndroidUtilities.dp(6), AndroidUtilities.dp(6 + 85 + 12)); + c.drawRoundRect(rect, AndroidUtilities.dp(8), AndroidUtilities.dp(8), paint); + } + } + } + } + private static class CounterView extends View { private StaticLayout staticLayout; @@ -796,7 +997,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat public CounterView(Context context) { super(context); textPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG); - textPaint.setTextSize(AndroidUtilities.dp(18)); + textPaint.setTextSize(AndroidUtilities.dp(15)); textPaint.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); textPaint.setColor(0xffffffff); @@ -887,9 +1088,9 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat paint.setAlpha((int) (rotation * 255)); int cx = (int) rect.centerX(); cy = (int) rect.centerY(); - cy -= AndroidUtilities.dp(5) * (1.0f - rotation) + AndroidUtilities.dp(3.0f); - canvas.drawLine(cx + AndroidUtilities.dp(0.5f), cy - AndroidUtilities.dp(0.5f), cx - AndroidUtilities.dp(6), cy + AndroidUtilities.dp(6), paint); - canvas.drawLine(cx - AndroidUtilities.dp(0.5f), cy - AndroidUtilities.dp(0.5f), cx + AndroidUtilities.dp(6), cy + AndroidUtilities.dp(6), paint); + cy -= AndroidUtilities.dp(5) * (1.0f - rotation); + canvas.drawLine(cx + AndroidUtilities.dp(5), cy - AndroidUtilities.dp(5), cx - AndroidUtilities.dp(5), cy + AndroidUtilities.dp(5), paint); + canvas.drawLine(cx - AndroidUtilities.dp(5), cy - AndroidUtilities.dp(5), cx + AndroidUtilities.dp(5), cy + AndroidUtilities.dp(5), paint); } } } @@ -908,10 +1109,11 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat private int size = AndroidUtilities.dp(64); private int previousBackgroundState = -2; private float animatedAlphaValue = 1.0f; - private float alpha = 1.0f; + private float[] animAlphas = new float[3]; + private float[] alphas = new float[3]; private float scale = 1.0f; - public PhotoProgressView(Context context, View parentView) { + public PhotoProgressView(View parentView) { if (decelerateInterpolator == null) { decelerateInterpolator = new DecelerateInterpolator(1.5f); progressPaint = new Paint(Paint.ANTI_ALIAS_FLAG); @@ -921,9 +1123,10 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat progressPaint.setColor(0xffffffff); } parent = parentView; + resetAlphas(); } - private void updateAnimation() { + private void updateAnimation(boolean withProgressAnimation) { long newTime = System.currentTimeMillis(); long dt = newTime - lastUpdateTime; if (dt > 18) { @@ -931,28 +1134,47 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } lastUpdateTime = newTime; - if (animatedProgressValue != 1 || currentProgress != 1) { - radOffset += 360 * dt / 3000.0f; - float progressDiff = currentProgress - animationProgressStart; - if (Math.abs(progressDiff) > 0) { - currentProgressTime += dt; - if (currentProgressTime >= 300) { - animatedProgressValue = currentProgress; - animationProgressStart = currentProgress; - currentProgressTime = 0; - } else { - animatedProgressValue = animationProgressStart + progressDiff * decelerateInterpolator.getInterpolation(currentProgressTime / 300.0f); + boolean postInvalidate = false; + + if (withProgressAnimation) { + if (animatedProgressValue != 1 || currentProgress != 1) { + radOffset += 360 * dt / 3000.0f; + float progressDiff = currentProgress - animationProgressStart; + if (Math.abs(progressDiff) > 0) { + currentProgressTime += dt; + if (currentProgressTime >= 300) { + animatedProgressValue = currentProgress; + animationProgressStart = currentProgress; + currentProgressTime = 0; + } else { + animatedProgressValue = animationProgressStart + progressDiff * decelerateInterpolator.getInterpolation(currentProgressTime / 300.0f); + } } + postInvalidate = true; + } + + if (animatedAlphaValue > 0 && previousBackgroundState != -2) { + animatedAlphaValue -= dt / 200.0f; + if (animatedAlphaValue <= 0) { + animatedAlphaValue = 0.0f; + previousBackgroundState = -2; + } + postInvalidate = true; } - parent.invalidate(); } - if (animatedProgressValue >= 1 && previousBackgroundState != -2) { - animatedAlphaValue -= dt / 200.0f; - if (animatedAlphaValue <= 0) { - animatedAlphaValue = 0.0f; - previousBackgroundState = -2; + + for (int i = 0; i < alphas.length; i++) { + if (alphas[i] > animAlphas[i]) { + animAlphas[i] = Math.min(1f, animAlphas[i] + dt / 200f); + postInvalidate = true; + } else if (alphas[i] < animAlphas[i]) { + animAlphas[i] = Math.max(0f, animAlphas[i] - dt / 200f); + postInvalidate = true; } - parent.invalidate(); + } + + if (postInvalidate) { + parent.postInvalidateOnAnimation(); } } @@ -984,19 +1206,66 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } public void setAlpha(float value) { - alpha = value; + alphas[0] = animAlphas[0] = value; } public void setScale(float value) { scale = value; } + public void setIndexedAlpha(int index, float alpha, boolean animated) { + if (alphas[index] != alpha) { + alphas[index] = alpha; + if (!animated) { + animAlphas[index] = alpha; + } + parent.invalidate(); + } + } + + public void resetAlphas() { + for (int i = 0; i < alphas.length; i++) { + alphas[i] = animAlphas[i] = 1.0f; + } + } + + private float calculateAlpha() { + float alpha = 1.0f; + for (int i = 0; i < animAlphas.length; i++) { + if (i == 2) { + alpha *= AndroidUtilities.accelerateInterpolator.getInterpolation(animAlphas[i]); + } else { + alpha *= animAlphas[i]; + } + } + return alpha; + } + + public boolean isVisible() { + for (int i = 0; i < alphas.length; i++) { + if (alphas[i] != 1.0f) { + return false; + } + } + return true; + } + + public int getX() { + return (getContainerViewWidth() - (int) (size * scale)) / 2; + } + + public int getY() { + return (getContainerViewHeight() - (int) (size * scale)) / 2; + } + public void onDraw(Canvas canvas) { int sizeScaled = (int) (size * scale); - int x = (getContainerViewWidth() - sizeScaled) / 2; - int y = (getContainerViewHeight() - sizeScaled) / 2; + int x = getX(); + int y = getY(); - if (previousBackgroundState >= 0 && previousBackgroundState < 4) { + final float alpha = calculateAlpha(); + + if (previousBackgroundState >= 0 && previousBackgroundState < progressDrawables.length) { Drawable drawable = progressDrawables[previousBackgroundState]; if (drawable != null) { drawable.setAlpha((int) (255 * animatedAlphaValue * alpha)); @@ -1005,7 +1274,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } } - if (backgroundState >= 0 && backgroundState < 4) { + if (backgroundState >= 0 && backgroundState < progressDrawables.length) { Drawable drawable = progressDrawables[backgroundState]; if (drawable != null) { if (previousBackgroundState != -2) { @@ -1018,7 +1287,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } } - if (backgroundState == 0 || backgroundState == 1 || previousBackgroundState == 0 || previousBackgroundState == 1) { + if (backgroundState == PROGRESS_EMPTY || backgroundState == PROGRESS_CANCEL || previousBackgroundState == PROGRESS_EMPTY || previousBackgroundState == PROGRESS_CANCEL) { int diff = AndroidUtilities.dp(4); if (previousBackgroundState != -2) { progressPaint.setAlpha((int) (255 * animatedAlphaValue * alpha)); @@ -1027,7 +1296,9 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } progressRect.set(x + diff, y + diff, x + sizeScaled - diff, y + sizeScaled - diff); canvas.drawArc(progressRect, -90 + radOffset, Math.max(4, 360 * animatedProgressValue), false, progressPaint); - updateAnimation(); + updateAnimation(true); + } else { + updateAnimation(false); } } } @@ -1206,6 +1477,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat private Paint paint = new Paint(); private boolean ignoreLayout; + private boolean captionAbove; public FrameLayoutDrawer(Context context) { super(context, false); @@ -1220,25 +1492,57 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat setMeasuredDimension(widthSize, heightSize); - ignoreLayout = true; - captionTextView.setMaxLines(AndroidUtilities.displaySize.x > AndroidUtilities.displaySize.y ? 5 : 10); - ignoreLayout = false; + if (!isCurrentVideo) { + ignoreLayout = true; + if (needCaptionLayout) { + final int maxLines = AndroidUtilities.displaySize.x > AndroidUtilities.displaySize.y ? 5 : 10; + captionTextViewSwitcher.getCurrentView().setMaxLines(maxLines); + captionTextViewSwitcher.getNextView().setMaxLines(maxLines); + } else { + captionTextViewSwitcher.getCurrentView().setMaxLines(Integer.MAX_VALUE); + captionTextViewSwitcher.getNextView().setMaxLines(Integer.MAX_VALUE); + } + ignoreLayout = false; + } measureChildWithMargins(captionEditText, widthMeasureSpec, 0, heightMeasureSpec, 0); int inputFieldHeight = captionEditText.getMeasuredHeight(); + final int groupedPhotosHeight; + if (groupedPhotosListView != null && groupedPhotosListView.getVisibility() != GONE) { + measureChildWithMargins(groupedPhotosListView, widthMeasureSpec, 0, heightMeasureSpec, 0); + groupedPhotosHeight = groupedPhotosListView.getMeasuredHeight(); + } else { + groupedPhotosHeight = 0; + } + widthSize -= (getPaddingRight() + getPaddingLeft()); heightSize -= getPaddingBottom(); int childCount = getChildCount(); for (int i = 0; i < childCount; i++) { View child = getChildAt(i); - if (child.getVisibility() == GONE || child == captionEditText) { + if (child.getVisibility() == GONE || child == captionEditText || child == groupedPhotosListView) { continue; } if (child == aspectRatioFrameLayout) { int heightSpec = MeasureSpec.makeMeasureSpec(AndroidUtilities.displaySize.y + (Build.VERSION.SDK_INT >= 21 ? AndroidUtilities.statusBarHeight : 0), MeasureSpec.EXACTLY); child.measure(widthMeasureSpec, heightSpec); + } else if (child == paintingOverlay) { + int width; + int height; + if (aspectRatioFrameLayout != null && aspectRatioFrameLayout.getVisibility() == VISIBLE) { + width = videoTextureView.getMeasuredWidth(); + height = videoTextureView.getMeasuredHeight(); + } else { + width = centerImage.getBitmapWidth(); + height = centerImage.getBitmapHeight(); + } + if (width == 0 || height == 0) { + width = widthSize; + height = heightSize; + } + paintingOverlay.measure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY)); } else if (captionEditText.isPopupView(child)) { if (AndroidUtilities.isInMultiwindow) { if (AndroidUtilities.isTablet()) { @@ -1249,6 +1553,22 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } else { child.measure(MeasureSpec.makeMeasureSpec(widthSize, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(child.getLayoutParams().height, MeasureSpec.EXACTLY)); } + } else if (child == captionScrollView) { + int bottomMargin = AndroidUtilities.dp(48); + if (dontChangeCaptionPosition) { + if (captionAbove) { + bottomMargin += groupedPhotosHeight; + } + } else if (groupedPhotosListView.hasPhotos()) { + bottomMargin += groupedPhotosHeight; + captionAbove = true; + } else { + captionAbove = false; + } + final int topMargin = (Build.VERSION.SDK_INT >= 21 ? AndroidUtilities.statusBarHeight : 0) + ActionBar.getCurrentActionBarHeight(); + final int height = heightSize - topMargin - bottomMargin; + ((MarginLayoutParams) captionScrollView.getLayoutParams()).bottomMargin = bottomMargin; + child.measure(MeasureSpec.makeMeasureSpec(widthSize, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY)); } else { measureChildWithMargins(child, widthMeasureSpec, 0, heightMeasureSpec, 0); } @@ -1258,7 +1578,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat @Override protected void onLayout(boolean changed, int _l, int t, int _r, int _b) { final int count = getChildCount(); - int keyboardSize = useSmoothKeyboard ? 0 : getKeyboardHeight(); + keyboardSize = useSmoothKeyboard ? 0 : getKeyboardHeight(); int paddingBottom = keyboardSize <= AndroidUtilities.dp(20) && !AndroidUtilities.isInMultiwindow ? captionEditText.getEmojiPadding() : 0; for (int i = 0; i < count; i++) { @@ -1325,20 +1645,19 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat childTop = captionEditText.getBottom(); } } else if (child == selectedPhotosListView) { - childTop = actionBar.getMeasuredHeight(); - } else if (child == captionTextView || child == switchCaptionTextView) { - if (!groupedPhotosListView.currentPhotos.isEmpty()) { - childTop -= groupedPhotosListView.getMeasuredHeight(); - } - } else if (child == cameraItem) { - childTop = pickerView.getTop() - AndroidUtilities.dp(sendPhotoType == 4 || sendPhotoType == 5 ? 40 : 15) - cameraItem.getMeasuredHeight(); - } else if (child == videoPreviewFrame) { - if (!groupedPhotosListView.currentPhotos.isEmpty()) { - childTop -= groupedPhotosListView.getMeasuredHeight(); - } - if (captionTextView.getVisibility() == VISIBLE) { - childTop -= captionTextView.getMeasuredHeight(); + childTop = actionBar.getMeasuredHeight() + AndroidUtilities.dp(5); + } else if (child == cameraItem || child == muteItem) { + final int top; + + if (videoTimelineView != null && videoTimelineView.getVisibility() == VISIBLE) { + top = videoTimelineView.getTop(); + } else { + top = pickerView.getTop(); } + + childTop = top - AndroidUtilities.dp(sendPhotoType == 4 || sendPhotoType == 5 ? 40 : 15) - child.getMeasuredHeight(); + } else if (child == videoTimelineView) { + childTop -= pickerView.getHeight(); } child.layout(childLeft + l, childTop, childLeft + width + l, childTop + height); } @@ -1366,10 +1685,10 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat @Override protected boolean drawChild(Canvas canvas, View child, long drawingTime) { if (child == mentionListView || child == captionEditText) { - if (!captionEditText.isPopupShowing() && captionEditText.getEmojiPadding() == 0 && (AndroidUtilities.usingHardwareInput && captionEditText.getTag() == null || getKeyboardHeight() == 0)) { + if (currentEditMode != 0 || !captionEditText.isPopupShowing() && captionEditText.getEmojiPadding() == 0 && (AndroidUtilities.usingHardwareInput && captionEditText.getTag() == null || getKeyboardHeight() == 0)) { return false; } - } else if (child == cameraItem || child == pickerView || child == pickerViewSendButton || child == captionTextView || muteItem.getVisibility() == VISIBLE && child == bottomLayout) { + } else if (child == cameraItem || child == muteItem || child == pickerView || child == videoTimelineView || child == pickerViewSendButton || child == captionTextViewSwitcher || muteItem.getVisibility() == VISIBLE && child == bottomLayout) { int paddingBottom = getKeyboardHeight() <= AndroidUtilities.dp(20) && !AndroidUtilities.isInMultiwindow ? captionEditText.getEmojiPadding() : 0; if (captionEditText.isPopupShowing() || AndroidUtilities.usingHardwareInput && captionEditText.getTag() != null || getKeyboardHeight() > AndroidUtilities.dp(80) || paddingBottom != 0) { bottomTouchEnabled = false; @@ -1388,7 +1707,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat return false; } try { - return child != aspectRatioFrameLayout && super.drawChild(canvas, child, drawingTime); + return child != aspectRatioFrameLayout && child != paintingOverlay && super.drawChild(canvas, child, drawingTime); } catch (Throwable ignore) { return true; } @@ -1440,6 +1759,514 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } } + private static final Property VPC_PROGRESS; + + static { + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) { + VPC_PROGRESS = new FloatProperty("progress") { + @Override + public void setValue(VideoPlayerControlFrameLayout object, float value) { + object.setProgress(value); + } + + @Override + public Float get(VideoPlayerControlFrameLayout object) { + return object.getProgress(); + } + }; + } else { + VPC_PROGRESS = new Property(Float.class, "progress") { + @Override + public void set(VideoPlayerControlFrameLayout object, Float value) { + object.setProgress(value); + } + + @Override + public Float get(VideoPlayerControlFrameLayout object) { + return object.getProgress(); + } + }; + } + } + + private class VideoPlayerControlFrameLayout extends FrameLayout { + + private float progress = 1f; + private boolean seekBarTransitionEnabled; + + public VideoPlayerControlFrameLayout(@NonNull Context context) { + super(context); + setWillNotDraw(false); + } + + @Override + public boolean onTouchEvent(MotionEvent event) { + if (progress < 1f) { + return false; + } + if (videoPlayerSeekbar.onTouch(event.getAction(), event.getX() - AndroidUtilities.dp(2), event.getY())) { + getParent().requestDisallowInterceptTouchEvent(true); + videoPlayerSeekbarView.invalidate(); + return true; + } + return true; + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + long duration; + if (videoPlayer != null) { + duration = videoPlayer.getDuration(); + if (duration == C.TIME_UNSET) { + duration = 0; + } + } else { + duration = 0; + } + duration /= 1000; + int size = (int) Math.ceil(videoPlayerTime.getPaint().measureText(String.format(Locale.ROOT, "%02d:%02d / %02d:%02d", duration / 60, duration % 60, duration / 60, duration % 60))); + videoPlayerSeekbar.setSize(getMeasuredWidth() - AndroidUtilities.dp(2 + 14) - size, getMeasuredHeight()); + } + + @Override + protected void onLayout(boolean changed, int left, int top, int right, int bottom) { + super.onLayout(changed, left, top, right, bottom); + float progress = 0; + if (videoPlayer != null) { + progress = videoPlayer.getCurrentPosition() / (float) videoPlayer.getDuration(); + if (!inPreview && videoTimelineView.getVisibility() == View.VISIBLE) { + progress -= videoTimelineView.getLeftProgress(); + if (progress < 0) { + progress = 0; + } + progress /= (videoTimelineView.getRightProgress() - videoTimelineView.getLeftProgress()); + if (progress > 1) { + progress = 1; + } + } + } + if (playerWasReady) { + videoPlayerSeekbar.setProgress(progress); + } + videoTimelineView.setProgress(progress); + } + + public float getProgress() { + return progress; + } + + public void setProgress(float progress) { + if (this.progress != progress) { + this.progress = progress; + onProgressChanged(progress); + } + } + + private void onProgressChanged(float progress) { + videoPlayerTime.setAlpha(progress); + if (seekBarTransitionEnabled) { + videoPlayerTime.setPivotX(videoPlayerTime.getWidth()); + videoPlayerTime.setPivotY(videoPlayerTime.getHeight()); + videoPlayerTime.setScaleX(1f - 0.1f * (1f - progress)); + videoPlayerTime.setScaleY(1f - 0.1f * (1f - progress)); + videoPlayerSeekbar.setTransitionProgress(1f - progress); + } else { + setTranslationY(AndroidUtilities.dpf2(24) * (1f - progress)); + videoPlayerSeekbarView.setAlpha(progress); + } + } + + public boolean isSeekBarTransitionEnabled() { + return seekBarTransitionEnabled; + } + + public void setSeekBarTransitionEnabled(boolean seekBarTransitionEnabled) { + if (this.seekBarTransitionEnabled != seekBarTransitionEnabled) { + this.seekBarTransitionEnabled = seekBarTransitionEnabled; + if (seekBarTransitionEnabled) { + setTranslationY(0); + videoPlayerSeekbarView.setAlpha(1f); + } else { + videoPlayerTime.setScaleX(1f); + videoPlayerTime.setScaleY(1f); + videoPlayerSeekbar.setTransitionProgress(0f); + } + onProgressChanged(progress); + } + } + } + + private class CaptionTextViewSwitcher extends TextViewSwitcher { + + private boolean inScrollView = false; + private float alpha = 1.0f; + + public CaptionTextViewSwitcher(Context context) { + super(context); + } + + @Override + public void setVisibility(int visibility) { + setVisibility(visibility, true); + } + + public void setVisibility(int visibility, boolean withScrollView) { + super.setVisibility(visibility); + if (inScrollView && withScrollView) { + captionScrollView.setVisibility(visibility); + } + } + + @Override + public void setAlpha(float alpha) { + this.alpha = alpha; + if (inScrollView) { + captionScrollView.setAlpha(alpha); + } else { + super.setAlpha(alpha); + } + } + + @Override + public float getAlpha() { + if (inScrollView) { + return alpha; + } else { + return super.getAlpha(); + } + } + + @Override + public void setTranslationY(float translationY) { + super.setTranslationY(translationY); + if (inScrollView) { + captionScrollView.invalidate(); // invalidate background drawing + } + } + + @Override + protected void onAttachedToWindow() { + super.onAttachedToWindow(); + if (captionContainer != null && getParent() == captionContainer) { + inScrollView = true; + captionScrollView.setVisibility(getVisibility()); + captionScrollView.setAlpha(alpha); + super.setAlpha(1.0f); + } + } + + @Override + protected void onDetachedFromWindow() { + super.onDetachedFromWindow(); + if (inScrollView) { + inScrollView = false; + captionScrollView.setVisibility(View.GONE); + super.setAlpha(alpha); + } + } + } + + private class CaptionScrollView extends NestedScrollView { + + private final Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); + + private final SpringAnimation springAnimation; + + private boolean nestedScrollStarted; + private float overScrollY; + private float velocitySign; + private float velocityY; + + private Method abortAnimatedScrollMethod; + private OverScroller scroller; + + private boolean isLandscape; + private int textHash; + private int prevHeight; + + private float backgroundAlpha = 1f; + private boolean dontChangeTopMargin; + private int pendingTopMargin = -1; + + public CaptionScrollView(@NonNull Context context) { + super(context); + setClipChildren(false); + setOverScrollMode(View.OVER_SCROLL_NEVER); + + paint.setColor(Color.BLACK); + setFadingEdgeLength(AndroidUtilities.dp(12)); + setVerticalFadingEdgeEnabled(true); + setWillNotDraw(false); + + springAnimation = new SpringAnimation(captionTextViewSwitcher, DynamicAnimation.TRANSLATION_Y, 0); + springAnimation.getSpring().setStiffness(100f); + springAnimation.setMinimumVisibleChange(DynamicAnimation.MIN_VISIBLE_CHANGE_PIXELS); + springAnimation.addUpdateListener((animation, value, velocity) -> { + overScrollY = value; + velocityY = velocity; + }); + springAnimation.getSpring().setDampingRatio(SpringForce.DAMPING_RATIO_NO_BOUNCY); + + try { + abortAnimatedScrollMethod = NestedScrollView.class.getDeclaredMethod("abortAnimatedScroll"); + abortAnimatedScrollMethod.setAccessible(true); + } catch (Exception e) { + abortAnimatedScrollMethod = null; + FileLog.e(e); + } + + try { + final Field scrollerField = NestedScrollView.class.getDeclaredField("mScroller"); + scrollerField.setAccessible(true); + scroller = (OverScroller) scrollerField.get(this); + } catch (Exception e) { + scroller = null; + FileLog.e(e); + } + } + + @Override + public boolean onTouchEvent(MotionEvent ev) { + if (ev.getAction() == MotionEvent.ACTION_DOWN && ev.getY() < captionContainer.getTop() - getScrollY() + captionTextViewSwitcher.getTranslationY()) { + return false; + } + return super.onTouchEvent(ev); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + updateTopMargin(MeasureSpec.getSize(widthMeasureSpec), MeasureSpec.getSize(heightMeasureSpec)); + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + } + + public void applyPendingTopMargin() { + dontChangeTopMargin = false; + if (pendingTopMargin >= 0) { + ((MarginLayoutParams) captionContainer.getLayoutParams()).topMargin = pendingTopMargin; + pendingTopMargin = -1; + requestLayout(); + } + } + + public int getPendingMarginTopDiff() { + if (pendingTopMargin >= 0) { + return pendingTopMargin - ((MarginLayoutParams) captionContainer.getLayoutParams()).topMargin; + } else { + return 0; + } + } + + public void updateTopMargin() { + updateTopMargin(getWidth(), getHeight()); + } + + private void updateTopMargin(int width, int height) { + final int marginTop = calculateNewContainerMarginTop(width, height); + if (marginTop >= 0) { + if (dontChangeTopMargin) { + pendingTopMargin = marginTop; + } else { + ((MarginLayoutParams) captionContainer.getLayoutParams()).topMargin = marginTop; + pendingTopMargin = -1; + } + } + } + + public int calculateNewContainerMarginTop(int width, int height) { + if (width == 0 || height == 0) { + return -1; + } + + final TextView textView = captionTextViewSwitcher.getCurrentView(); + final CharSequence text = textView.getText(); + + final int textHash = text.hashCode(); + final boolean isLandscape = AndroidUtilities.displaySize.x > AndroidUtilities.displaySize.y; + + if (this.textHash == textHash && this.isLandscape == isLandscape && this.prevHeight == height) { + return -1; + } + + this.textHash = textHash; + this.isLandscape = isLandscape; + this.prevHeight = height; + + textView.measure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(height, MeasureSpec.AT_MOST)); + + final Layout layout = textView.getLayout(); + final int lineCount = layout.getLineCount(); + + if (isLandscape && lineCount <= 3 || !isLandscape && lineCount <= 5) { + return height - textView.getMeasuredHeight(); + } + + int i = Math.min(isLandscape ? 3 : 5, lineCount); + + cycle: + while (i > 1) { + for (int j = layout.getLineStart(i - 1); j < layout.getLineEnd(i - 1); j++) { + if (Character.isLetterOrDigit(text.charAt(j))) { + break cycle; + } + } + i--; + } + + final int lineHeight = textView.getPaint().getFontMetricsInt(null); + return height - lineHeight * i - AndroidUtilities.dp(8); + } + + public void reset() { + scrollTo(0, 0); + } + + public void stopScrolling() { + if (abortAnimatedScrollMethod != null) { + try { + abortAnimatedScrollMethod.invoke(this); + } catch (Exception e) { + FileLog.e(e); + } + } + } + + @Override + public void fling(int velocityY) { + super.fling(velocityY); + this.velocitySign = Math.signum(velocityY); + this.velocityY = 0f; + } + + @Override + public boolean dispatchNestedPreScroll(int dx, int dy, int[] consumed, int[] offsetInWindow, int type) { + consumed[1] = 0; + + if (nestedScrollStarted && (overScrollY > 0 && dy > 0 || overScrollY < 0 && dy < 0)) { + final float delta = overScrollY - dy; + + if (overScrollY > 0) { + if (delta < 0) { + overScrollY = 0; + consumed[1] += dy + delta; + } else { + overScrollY = delta; + consumed[1] += dy; + } + } else { + if (delta > 0) { + overScrollY = 0; + consumed[1] += dy + delta; + } else { + overScrollY = delta; + consumed[1] += dy; + } + } + + captionTextViewSwitcher.setTranslationY(overScrollY); + return true; + } + + return false; + } + + @Override + public void dispatchNestedScroll(int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed, @Nullable int[] offsetInWindow, int type, @NonNull int[] consumed) { + if (dyUnconsumed != 0) { + final int topMargin = (Build.VERSION.SDK_INT >= 21 ? AndroidUtilities.statusBarHeight : 0) + ActionBar.getCurrentActionBarHeight(); + final int dy = Math.round(dyUnconsumed * (1f - Math.abs((-overScrollY / (captionContainer.getTop() - topMargin))))); + + if (dy != 0) { + if (!nestedScrollStarted) { + if (!springAnimation.isRunning()) { + int consumedY; + float velocity = scroller != null ? scroller.getCurrVelocity() : Float.NaN; + if (!Float.isNaN(velocity)) { + final float clampedVelocity = Math.min(AndroidUtilities.displaySize.x > AndroidUtilities.displaySize.y ? 3000 : 5000, velocity); + consumedY = (int) (dy * clampedVelocity / velocity); + velocity = clampedVelocity * -velocitySign; + } else { + consumedY = dy; + velocity = 0; + } + if (consumedY != 0) { + overScrollY -= consumedY; + captionTextViewSwitcher.setTranslationY(overScrollY); + } + startSpringAnimationIfNotRunning(velocity); + } + } else { + overScrollY -= dy; + captionTextViewSwitcher.setTranslationY(overScrollY); + } + } + } + } + + private void startSpringAnimationIfNotRunning(float velocityY) { + if (!springAnimation.isRunning()) { + springAnimation.setStartVelocity(velocityY); + springAnimation.start(); + } + } + + @Override + public boolean startNestedScroll(int axes, int type) { + if (type == ViewCompat.TYPE_TOUCH) { + springAnimation.cancel(); + nestedScrollStarted = true; + overScrollY = captionTextViewSwitcher.getTranslationY(); + } + return true; + } + + @Override + public void computeScroll() { + super.computeScroll(); + if (!nestedScrollStarted && overScrollY != 0 && scroller != null && scroller.isFinished()) { + startSpringAnimationIfNotRunning(0); + } + } + + @Override + public void stopNestedScroll(int type) { + if (nestedScrollStarted && type == ViewCompat.TYPE_TOUCH) { + nestedScrollStarted = false; + if (overScrollY != 0 && scroller != null && scroller.isFinished()) { + startSpringAnimationIfNotRunning(velocityY); + } + } + } + + @Override + protected float getTopFadingEdgeStrength() { + return 1f; + } + + @Override + protected float getBottomFadingEdgeStrength() { + return 1f; + } + + @Override + public void draw(Canvas canvas) { + paint.setAlpha((int) (backgroundAlpha * 127)); + canvas.drawRect(0, captionContainer.getTop() + captionTextViewSwitcher.getTranslationY(), getWidth(), getHeight() + getScrollY(), paint); + super.draw(canvas); + } + + @Override + public void invalidate() { + super.invalidate(); + if (isActionBarVisible) { + final int progressBottom = photoProgressViews[0].getY() + photoProgressViews[0].size; + final int topMargin = (Build.VERSION.SDK_INT >= 21 ? AndroidUtilities.statusBarHeight : 0) + ActionBar.getCurrentActionBarHeight(); + final int captionTop = captionContainer.getTop() + (int) captionTextViewSwitcher.getTranslationY() - getScrollY() + topMargin - AndroidUtilities.dp(12); + photoProgressViews[0].setIndexedAlpha(2, captionTop > progressBottom ? 1f : 0f, true); + } + } + } + @SuppressLint("StaticFieldLeak") private static volatile PhotoViewer Instance = null; private static volatile PhotoViewer PipInstance = null; @@ -1541,7 +2368,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat if (pipVideoView != null) { pipVideoView.setBufferedProgress(bufferedProgress); } - videoPlayerControlFrameLayout.invalidate(); + videoPlayerSeekbarView.invalidate(); } checkBufferedProgress(loadProgress); } @@ -1597,7 +2424,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat needSearchImageInArr = false; currentIndex = -1; if (setToImage != -1) { - setImageIndex(setToImage, true); + setImageIndex(setToImage); } else { TLRPC.User user = null; TLRPC.Chat chat = null; @@ -1617,7 +2444,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat imagesArrLocations.add(0, location); avatarsArr.add(0, new TLRPC.TL_photoEmpty()); imagesArrLocationsSizes.add(0, 0); - setImageIndex(0, true); + setImageIndex(0); } } } @@ -1642,7 +2469,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat if (needSearchImageInArr && isFirstLoading) { isFirstLoading = false; loadingMoreImages = true; - MediaDataController.getInstance(currentAccount).loadMedia(currentDialogId, 80, 0, sharedMediaType, 1, classGuid); + MediaDataController.getInstance(currentAccount).loadMedia(currentDialogId, 20, 0, sharedMediaType, 1, classGuid); } else if (!imagesArr.isEmpty()) { if (opennedFromMedia) { actionBar.setTitle(LocaleController.formatString("Of", R.string.Of, currentIndex + 1, totalImagesCount + totalImagesCountMerge)); @@ -1706,7 +2533,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat if (foundIndex >= imagesArr.size()) { foundIndex = imagesArr.size() - 1; } - setImageIndex(foundIndex, true); + setImageIndex(foundIndex); } else { int loadFromMaxId; if (opennedFromMedia) { @@ -1730,9 +2557,9 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat if (!endReached[loadIndex]) { loadingMoreImages = true; if (opennedFromMedia) { - MediaDataController.getInstance(currentAccount).loadMedia(loadIndex == 0 ? currentDialogId : mergeDialogId, 80, loadFromMaxId, sharedMediaType, 1, classGuid); + MediaDataController.getInstance(currentAccount).loadMedia(loadIndex == 0 ? currentDialogId : mergeDialogId, 40, loadFromMaxId, sharedMediaType, 1, classGuid); } else { - MediaDataController.getInstance(currentAccount).loadMedia(loadIndex == 0 ? currentDialogId : mergeDialogId, 80, loadFromMaxId, sharedMediaType, 1, classGuid); + MediaDataController.getInstance(currentAccount).loadMedia(loadIndex == 0 ? currentDialogId : mergeDialogId, 40, loadFromMaxId, sharedMediaType, 1, classGuid); } } } @@ -1758,7 +2585,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat if (added != 0) { int index = currentIndex; currentIndex = -1; - setImageIndex(index + added, true); + setImageIndex(index + added); } else { totalImagesCount = imagesArr.size(); totalImagesCountMerge = 0; @@ -1767,15 +2594,15 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } } } else if (id == NotificationCenter.emojiDidLoad) { - if (captionTextView != null) { - captionTextView.invalidate(); + if (captionTextViewSwitcher != null) { + captionTextViewSwitcher.invalidateViews(); } } else if (id == NotificationCenter.filePreparingFailed) { MessageObject messageObject = (MessageObject) args[0]; if (loadInitialVideo) { loadInitialVideo = false; progressView.setVisibility(View.INVISIBLE); - preparePlayer(currentPlayingVideoFile, false, false); + preparePlayer(currentPlayingVideoFile, false, false, currentSavedFilterState); } else if (tryStartRequestPreviewOnFinish) { releasePlayer(false); tryStartRequestPreviewOnFinish = !MediaController.getInstance().scheduleVideoConvert(videoPreviewMessageObject, true); @@ -1793,8 +2620,8 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat if (finalSize != 0) { requestingPreview = false; photoProgressViews[0].setProgress(1f, true); - photoProgressViews[0].setBackgroundState(3, true); - preparePlayer(Uri.fromFile(new File(finalPath)), false, true); + photoProgressViews[0].setBackgroundState(PROGRESS_PLAY, true); + preparePlayer(Uri.fromFile(new File(finalPath)), false, true, currentSavedFilterState); } } } @@ -1903,11 +2730,16 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat touchSlop = ViewConfiguration.get(parentActivity).getScaledTouchSlop(); if (progressDrawables == null) { - progressDrawables = new Drawable[4]; - progressDrawables[0] = parentActivity.getResources().getDrawable(R.drawable.circle_big); - progressDrawables[1] = parentActivity.getResources().getDrawable(R.drawable.cancel_big); - progressDrawables[2] = parentActivity.getResources().getDrawable(R.drawable.load_big); - progressDrawables[3] = parentActivity.getResources().getDrawable(R.drawable.play_big); + final Drawable circleDrawable = ContextCompat.getDrawable(parentActivity, R.drawable.circle_big); + final CombinedDrawable playDrawable = new CombinedDrawable(circleDrawable.mutate(), ContextCompat.getDrawable(parentActivity, R.drawable.video_play1)); + final CombinedDrawable pauseDrawable = new CombinedDrawable(circleDrawable.mutate(), ContextCompat.getDrawable(parentActivity, R.drawable.video_pause1)); + progressDrawables = new Drawable[] { + circleDrawable, // PROGRESS_EMPTY + ContextCompat.getDrawable(parentActivity, R.drawable.cancel_big), // PROGRESS_CANCEL + ContextCompat.getDrawable(parentActivity, R.drawable.load_big), // PROGRESS_LOAD + playDrawable, // PROGRESS_PLAY + pauseDrawable // PROGRESS_PAUSE + }; } scroller = new Scroller(activity); @@ -1926,6 +2758,33 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat return isVisible && PhotoViewer.this.onTouchEvent(event); } + @Override + public boolean dispatchKeyEvent(KeyEvent event) { + int keyCode = event.getKeyCode(); + if (!muteVideo && isCurrentVideo && videoPlayer != null && event.getRepeatCount() == 0 && event.getAction() == KeyEvent.ACTION_DOWN && (event.getKeyCode() == KeyEvent.KEYCODE_VOLUME_UP || event.getKeyCode() == KeyEvent.KEYCODE_VOLUME_DOWN)) { + videoPlayer.setVolume(1.0f); + } + return super.dispatchKeyEvent(event); + } + + @Override + public boolean dispatchTouchEvent(MotionEvent ev) { + if (videoPlayerControlVisible && isPlaying) { + switch (ev.getActionMasked()) { + case MotionEvent.ACTION_DOWN: + case MotionEvent.ACTION_POINTER_DOWN: + AndroidUtilities.cancelRunOnUIThread(hideActionBarRunnable); + break; + case MotionEvent.ACTION_UP: + case MotionEvent.ACTION_CANCEL: + case MotionEvent.ACTION_POINTER_UP: + AndroidUtilities.runOnUIThread(hideActionBarRunnable, 3000); + break; + } + } + return super.dispatchTouchEvent(ev); + } + @Override protected boolean drawChild(Canvas canvas, View child, long drawingTime) { boolean result; @@ -1981,7 +2840,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat LayoutParams layoutParams = (LayoutParams) checkImageView.getLayoutParams(); WindowManager manager = (WindowManager) ApplicationLoader.applicationContext.getSystemService(Activity.WINDOW_SERVICE); int rotation = manager.getDefaultDisplay().getRotation(); - layoutParams.topMargin = (ActionBar.getCurrentActionBarHeight() - AndroidUtilities.dp(40)) / 2 + (Build.VERSION.SDK_INT >= 21 ? AndroidUtilities.statusBarHeight : 0); + layoutParams.topMargin = (ActionBar.getCurrentActionBarHeight() - AndroidUtilities.dp(34)) / 2 + (Build.VERSION.SDK_INT >= 21 ? AndroidUtilities.statusBarHeight : 0); checkImageView.setLayoutParams(layoutParams); layoutParams = (LayoutParams) photosCounterView.getLayoutParams(); @@ -2051,6 +2910,10 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat if (Build.VERSION.SDK_INT >= 21) { containerView.setFitsSystemWindows(true); containerView.setOnApplyWindowInsetsListener((v, insets) -> { + if (AndroidUtilities.statusBarHeight != insets.getSystemWindowInsetTop()) { + AndroidUtilities.statusBarHeight = insets.getSystemWindowInsetTop(); + ((LaunchActivity) parentActivity).drawerLayoutContainer.requestLayout(); + } WindowInsets oldInsets = (WindowInsets) lastInsets; lastInsets = insets; if (oldInsets == null || !oldInsets.toString().equals(insets.toString())) { @@ -2063,6 +2926,12 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } } containerView.setPadding(insets.getSystemWindowInsetLeft(), 0, insets.getSystemWindowInsetRight(), 0); + if (actionBar != null) { + AndroidUtilities.cancelRunOnUIThread(updateContainerFlagsRunnable); + if (isVisible && animationInProgress == 0) { + AndroidUtilities.runOnUIThread(updateContainerFlagsRunnable, 200); + } + } return insets.consumeSystemWindowInsets(); }); containerView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION); @@ -2086,6 +2955,9 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat windowLayoutParams.flags = WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM; } + paintingOverlay = new PaintingOverlay(parentActivity); + containerView.addView(paintingOverlay, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT)); + actionBar = new ActionBar(activity) { @Override public void setAlpha(float alpha) { @@ -2359,7 +3231,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat index = avatarsArr.size() - 1; } currentIndex = -1; - setImageIndex(index, true); + setImageIndex(index); } } } else if (!secureDocuments.isEmpty()) { @@ -2376,7 +3248,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat index = secureDocuments.size() - 1; } currentIndex = -1; - setImageIndex(index, true); + setImageIndex(index); } } }); @@ -2399,12 +3271,28 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } catch (Exception e) { FileLog.e(e); } - } else if (id == gallery_menu_masks) { - if (parentActivity == null || currentMessageObject == null || currentMessageObject.messageOwner.media == null || currentMessageObject.messageOwner.media.photo == null) { + } else if (id == gallery_menu_masks || id == gallery_menu_masks2) { + if (parentActivity == null || currentMessageObject == null) { return; } - StickersAlert stickersAlert = new StickersAlert(parentActivity, currentMessageObject, currentMessageObject.messageOwner.media.photo); - stickersAlert.show(); + TLObject object; + if (currentMessageObject.messageOwner.media instanceof TLRPC.TL_messageMediaPhoto) { + object = currentMessageObject.messageOwner.media.photo; + } else if (currentMessageObject.messageOwner.media instanceof TLRPC.TL_messageMediaDocument) { + object = currentMessageObject.messageOwner.media.document; + } else { + return; + } + masksAlert = new StickersAlert(parentActivity, currentMessageObject, object) { + @Override + public void dismiss() { + super.dismiss(); + if (masksAlert == this) { + masksAlert = null; + } + } + }; + masksAlert.show(); } else if (id == gallery_menu_pip) { if (pipItem.getAlpha() != 1.0f) { return; @@ -2423,6 +3311,11 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat return; } TLRPC.Document document = currentMessageObject.getDocument(); + if (parentChatActivity != null && parentChatActivity.chatActivityEnterView != null) { + parentChatActivity.chatActivityEnterView.addRecentGif(document); + } else { + MediaDataController.getInstance(currentAccount).addRecentGif(document, (int) (System.currentTimeMillis() / 1000)); + } MessagesController.getInstance(currentAccount).saveGif(currentMessageObject, document); } } @@ -2452,6 +3345,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat allMediaItem.setColors(0xfffafafa, 0xfffafafa); menuItem.addSubItem(gallery_menu_savegif, R.drawable.msg_gif, LocaleController.getString("SaveToGIFs", R.string.SaveToGIFs)).setColors(0xfffafafa, 0xfffafafa); menuItem.addSubItem(gallery_menu_showinchat, R.drawable.msg_message, LocaleController.getString("ShowInChat", R.string.ShowInChat)).setColors(0xfffafafa, 0xfffafafa); + menuItem.addSubItem(gallery_menu_masks2, R.drawable.msg_sticker, LocaleController.getString("ShowStickers", R.string.ShowStickers)).setColors(0xfffafafa, 0xfffafafa); menuItem.addSubItem(gallery_menu_share, R.drawable.msg_shareout, LocaleController.getString("ShareFile", R.string.ShareFile)).setColors(0xfffafafa, 0xfffafafa); menuItem.addSubItem(gallery_menu_save, R.drawable.msg_gallery, LocaleController.getString("SaveToGallery", R.string.SaveToGallery)).setColors(0xfffafafa, 0xfffafafa); menuItem.addSubItem(gallery_menu_delete, R.drawable.msg_delete, LocaleController.getString("Delete", R.string.Delete)).setColors(0xfffafafa, 0xfffafafa); @@ -2459,6 +3353,22 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat menuItem.redrawPopup(0xf9222222); sendItem.setContentDescription(LocaleController.getString("Forward", R.string.Forward)); + menuItem.setSubMenuDelegate(new ActionBarMenuItem.ActionBarSubMenuItemDelegate() { + @Override + public void onShowSubMenu() { + if (videoPlayerControlVisible && isPlaying) { + AndroidUtilities.cancelRunOnUIThread(hideActionBarRunnable); + } + } + + @Override + public void onHideSubMenu() { + if (videoPlayerControlVisible && isPlaying) { + AndroidUtilities.runOnUIThread(hideActionBarRunnable, 3000); + } + } + }); + bottomLayout = new FrameLayout(actvityContext); bottomLayout.setBackgroundColor(0x7f000000); containerView.addView(bottomLayout, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 48, Gravity.BOTTOM | Gravity.LEFT)); @@ -2468,8 +3378,8 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat pressedDrawable[1] = new GradientDrawable(GradientDrawable.Orientation.RIGHT_LEFT, new int[] {0x32000000, 0}); pressedDrawable[1].setShape(GradientDrawable.RECTANGLE); - groupedPhotosListView = new GroupedPhotosListView(actvityContext); - containerView.addView(groupedPhotosListView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 62, Gravity.BOTTOM | Gravity.LEFT, 0, 0, 0, 48)); + groupedPhotosListView = new GroupedPhotosListView(actvityContext, AndroidUtilities.dp(10)); + containerView.addView(groupedPhotosListView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 68, Gravity.BOTTOM | Gravity.LEFT, 0, 0, 0, 48)); groupedPhotosListView.setDelegate(new GroupedPhotosListView.GroupedPhotosListViewDelegate() { @Override public int getCurrentIndex() { @@ -2518,16 +3428,18 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat currentThumb.release(); currentThumb = null; } - setImageIndex(index, true); + setImageIndex(index); } }); - captionTextView = createCaptionTextView(); - switchCaptionTextView = createCaptionTextView(); + captionTextViewSwitcher = new CaptionTextViewSwitcher(containerView.getContext()); + captionTextViewSwitcher.setFactory(this::createCaptionTextView); + captionTextViewSwitcher.setVisibility(View.INVISIBLE); + setCaptionHwLayerEnabled(true); for (int a = 0; a < 3; a++) { - photoProgressViews[a] = new PhotoProgressView(containerView.getContext(), containerView); - photoProgressViews[a].setBackgroundState(0, false); + photoProgressViews[a] = new PhotoProgressView(containerView); + photoProgressViews[a].setBackgroundState(PROGRESS_EMPTY, false); } miniProgressView = new RadialProgressView(actvityContext) { @@ -2563,24 +3475,64 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat shareButton.setOnClickListener(v -> onSharePressed()); shareButton.setContentDescription(LocaleController.getString("ShareFile", R.string.ShareFile)); - nameTextView = new TextView(containerView.getContext()); - nameTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); - nameTextView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); - nameTextView.setSingleLine(true); - nameTextView.setMaxLines(1); - nameTextView.setEllipsize(TextUtils.TruncateAt.END); - nameTextView.setTextColor(0xffffffff); - nameTextView.setGravity(Gravity.LEFT); + nameTextView = new FadingTextViewLayout(containerView.getContext()) { + @Override + protected void onTextViewCreated(TextView textView) { + super.onTextViewCreated(textView); + textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); + textView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); + textView.setEllipsize(TextUtils.TruncateAt.END); + textView.setTextColor(0xffffffff); + textView.setGravity(Gravity.LEFT); + } + }; + bottomLayout.addView(nameTextView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.LEFT, 16, 5, 60, 0)); - dateTextView = new TextView(containerView.getContext()); - dateTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13); - dateTextView.setSingleLine(true); - dateTextView.setMaxLines(1); - dateTextView.setEllipsize(TextUtils.TruncateAt.END); - dateTextView.setTextColor(0xffffffff); - dateTextView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); - dateTextView.setGravity(Gravity.LEFT); + dateTextView = new FadingTextViewLayout(containerView.getContext(), true) { + + private LocaleController.LocaleInfo lastLocaleInfo = null; + private int staticCharsCount = 0; + + @Override + protected void onTextViewCreated(TextView textView) { + super.onTextViewCreated(textView); + textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13); + textView.setEllipsize(TextUtils.TruncateAt.END); + textView.setTextColor(0xffffffff); + textView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); + textView.setGravity(Gravity.LEFT); + } + + @Override + protected int getStaticCharsCount() { + final LocaleController.LocaleInfo localeInfo = LocaleController.getInstance().getCurrentLocaleInfo(); + if (lastLocaleInfo != localeInfo) { + lastLocaleInfo = localeInfo; + staticCharsCount = LocaleController.formatString("formatDateAtTime", R.string.formatDateAtTime, LocaleController.getInstance().formatterYear.format(new Date()), LocaleController.getInstance().formatterDay.format(new Date())).length(); + } + return staticCharsCount; + } + + @Override + public void setText(CharSequence text, boolean animated) { + if (animated) { + boolean dontAnimateUnchangedStaticChars = true; + if (LocaleController.isRTL) { + final int staticCharsCount = getStaticCharsCount(); + if (staticCharsCount > 0) { + if (text.length() != staticCharsCount || getText() == null || getText().length() != staticCharsCount) { + dontAnimateUnchangedStaticChars = false; + } + } + } + setText(text, true, dontAnimateUnchangedStaticChars); + } else { + setText(text, false, false); + } + } + }; + bottomLayout.addView(dateTextView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.LEFT, 16, 25, 50, 0)); createVideoControlsInterface(); @@ -2643,6 +3595,30 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat public boolean onTouchEvent(MotionEvent event) { return bottomTouchEnabled && super.onTouchEvent(event); } + + @Override + public void setTranslationY(float translationY) { + super.setTranslationY(translationY); + if (videoTimelineView != null && videoTimelineView.getVisibility() != GONE) { + videoTimelineView.setTranslationY(translationY); + } + } + + @Override + public void setAlpha(float alpha) { + super.setAlpha(alpha); + if (videoTimelineView != null && videoTimelineView.getVisibility() != GONE) { + videoTimelineView.setAlpha(alpha); + } + } + + @Override + public void setVisibility(int visibility) { + super.setVisibility(visibility); + if (videoTimelineView != null && videoTimelineView.getVisibility() != GONE) { + videoTimelineView.setVisibility(visibility == VISIBLE ? VISIBLE : INVISIBLE); + } + } }; pickerView.setBackgroundColor(0x7f000000); containerView.addView(pickerView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.BOTTOM | Gravity.LEFT)); @@ -2716,7 +3692,9 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } }); - pickerView.addView(videoTimelineView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 58, Gravity.LEFT | Gravity.TOP, 0, 8, 0, 88)); + videoTimelineView.setVisibility(View.GONE); + videoTimelineView.setBackgroundColor(0x7f000000); + containerView.addView(videoTimelineView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 58, Gravity.LEFT | Gravity.BOTTOM, 0, 8, 0, 0)); pickerViewSendButton = new ImageView(parentActivity) { @Override @@ -2756,22 +3734,16 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat sendPopupLayout = new ActionBarPopupWindow.ActionBarPopupWindowLayout(parentActivity); sendPopupLayout.setAnimationEnabled(false); - sendPopupLayout.setOnTouchListener(new View.OnTouchListener() { - - private android.graphics.Rect popupRect = new android.graphics.Rect(); - - @Override - public boolean onTouch(View v, MotionEvent event) { - if (event.getActionMasked() == MotionEvent.ACTION_DOWN) { - if (sendPopupWindow != null && sendPopupWindow.isShowing()) { - v.getHitRect(popupRect); - if (!popupRect.contains((int) event.getX(), (int) event.getY())) { - sendPopupWindow.dismiss(); - } + sendPopupLayout.setOnTouchListener((v, event) -> { + if (event.getActionMasked() == MotionEvent.ACTION_DOWN) { + if (sendPopupWindow != null && sendPopupWindow.isShowing()) { + v.getHitRect(hitRect); + if (!hitRect.contains((int) event.getX(), (int) event.getY())) { + sendPopupWindow.dismiss(); } } - return false; } + return false; }); sendPopupLayout.setDispatchKeyEventListener(keyEvent -> { if (keyEvent.getKeyCode() == KeyEvent.KEYCODE_BACK && keyEvent.getRepeatCount() == 0 && sendPopupWindow != null && sendPopupWindow.isShowing()) { @@ -2886,19 +3858,6 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat }); rotateItem.setContentDescription(LocaleController.getString("AccDescrRotate", R.string.AccDescrRotate)); - paintItem = new ImageView(parentActivity); - paintItem.setScaleType(ImageView.ScaleType.CENTER); - paintItem.setImageResource(R.drawable.photo_paint); - paintItem.setBackgroundDrawable(Theme.createSelectorDrawable(Theme.ACTION_BAR_WHITE_SELECTOR_COLOR)); - itemsLayout.addView(paintItem, LayoutHelper.createLinear(70, 48)); - paintItem.setOnClickListener(v -> { - if (captionEditText.getTag() != null) { - return; - } - switchToEditMode(3); - }); - paintItem.setContentDescription(LocaleController.getString("AccDescrPhotoEditor", R.string.AccDescrPhotoEditor)); - compressItem = new ImageView(parentActivity); compressItem.setTag(1); compressItem.setScaleType(ImageView.ScaleType.CENTER); @@ -2920,7 +3879,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat itemsLayout.addView(compressItem, LayoutHelper.createLinear(70, 48)); compressItem.setPadding(AndroidUtilities.dp(70 - compressIconWidth) / 2, 0, AndroidUtilities.dp(70 - compressIconWidth) / 2, 0); compressItem.setOnClickListener(v -> { - if (captionEditText.getTag() != null) { + if (captionEditText.getTag() != null || muteVideo) { return; } if (compressItem.getTag() == null) { @@ -2933,17 +3892,42 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } return; } - showQualityView(true); requestVideoPreview(1); }); String[] compressionStrings = {"360", "480", "720", "1080"}; compressItem.setContentDescription(LocaleController.getString("AccDescrVideoQuality", R.string.AccDescrVideoQuality) + ", " + compressionStrings[Math.max(0, selectedCompression)]); + paintItem = new ImageView(parentActivity); + paintItem.setScaleType(ImageView.ScaleType.CENTER); + paintItem.setImageResource(R.drawable.photo_paint); + paintItem.setBackgroundDrawable(Theme.createSelectorDrawable(Theme.ACTION_BAR_WHITE_SELECTOR_COLOR)); + itemsLayout.addView(paintItem, LayoutHelper.createLinear(70, 48)); + paintItem.setOnClickListener(v -> { + if (captionEditText.getTag() != null) { + return; + } + if (isCurrentVideo) { + if (!videoConvertSupported) { + return; + } + if (videoTextureView instanceof VideoEditTextureView) { + VideoEditTextureView textureView = (VideoEditTextureView) videoTextureView; + if (textureView.getVideoWidth() <= 0 || textureView.getVideoHeight() <= 0) { + return; + } + } else { + return; + } + } + switchToEditMode(3); + }); + paintItem.setContentDescription(LocaleController.getString("AccDescrPhotoEditor", R.string.AccDescrPhotoEditor)); + muteItem = new ImageView(parentActivity); muteItem.setScaleType(ImageView.ScaleType.CENTER); muteItem.setBackgroundDrawable(Theme.createSelectorDrawable(Theme.ACTION_BAR_WHITE_SELECTOR_COLOR)); - itemsLayout.addView(muteItem, LayoutHelper.createLinear(70, 48)); + containerView.addView(muteItem, LayoutHelper.createFrame(48, 48, Gravity.LEFT | Gravity.BOTTOM, 16, 0, 0, 0)); muteItem.setOnClickListener(v -> { if (captionEditText.getTag() != null) { return; @@ -2955,8 +3939,8 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat checkImageView.callOnClick(); } else { Object object = imagesArrLocals.get(currentIndex); - if (object instanceof MediaController.PhotoEntry) { - ((MediaController.PhotoEntry) object).editedInfo = getCurrentVideoEditedInfo(); + if (object instanceof MediaController.MediaEditState) { + ((MediaController.MediaEditState) object).editedInfo = getCurrentVideoEditedInfo(); } } }); @@ -2984,6 +3968,19 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat if (captionEditText.getTag() != null) { return; } + if (isCurrentVideo) { + if (!videoConvertSupported) { + return; + } + if (videoTextureView instanceof VideoEditTextureView) { + VideoEditTextureView textureView = (VideoEditTextureView) videoTextureView; + if (textureView.getVideoWidth() <= 0 || textureView.getVideoHeight() <= 0) { + return; + } + } else { + return; + } + } switchToEditMode(2); }); tuneItem.setContentDescription(LocaleController.getString("AccDescrPhotoAdjust", R.string.AccDescrPhotoAdjust)); @@ -3009,7 +4006,8 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat titleView.setSingleLine(true); titleView.setText(LocaleController.getString("MessageLifetime", R.string.MessageLifetime)); titleView.setTextColor(0xffffffff); - titleView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); + titleView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); + titleView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); titleView.setEllipsize(TextUtils.TruncateAt.MIDDLE); titleView.setPadding(AndroidUtilities.dp(21), AndroidUtilities.dp(8), AndroidUtilities.dp(21), AndroidUtilities.dp(4)); titleView.setGravity(Gravity.CENTER_VERTICAL); @@ -3066,18 +4064,13 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat @Override protected void onLayout(boolean changed, int left, int top, int right, int bottom) { int count = getChildCount(); - View positiveButton = null; int width = right - left; for (int a = 0; a < count; a++) { View child = getChildAt(a); if ((Integer) child.getTag() == Dialog.BUTTON_POSITIVE) { - positiveButton = child; child.layout(width - getPaddingRight() - child.getMeasuredWidth(), getPaddingTop(), width - getPaddingRight() + child.getMeasuredWidth(), getPaddingTop() + child.getMeasuredHeight()); } else if ((Integer) child.getTag() == Dialog.BUTTON_NEGATIVE) { - int x = width - getPaddingRight() - child.getMeasuredWidth(); - if (positiveButton != null) { - x -= positiveButton.getMeasuredWidth() + AndroidUtilities.dp(8); - } + int x = getPaddingLeft(); child.layout(x, getPaddingTop(), x + child.getMeasuredWidth(), getPaddingTop() + child.getMeasuredHeight()); } else { child.layout(getPaddingLeft(), getPaddingTop(), getPaddingLeft() + child.getMeasuredWidth(), getPaddingTop() + child.getMeasuredHeight()); @@ -3128,11 +4121,11 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat textView.setMinWidth(AndroidUtilities.dp(64)); textView.setTag(Dialog.BUTTON_NEGATIVE); textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); - textView.setTextColor(Theme.getColor(Theme.key_dialogFloatingButton)); + textView.setTextColor(0xffffffff); textView.setGravity(Gravity.CENTER); textView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); textView.setText(LocaleController.getString("Cancel", R.string.Cancel).toUpperCase()); - textView.setBackgroundDrawable(Theme.getRoundRectSelectorDrawable(0xff49bcf2)); + textView.setBackgroundDrawable(Theme.getRoundRectSelectorDrawable(0xffffffff)); textView.setPadding(AndroidUtilities.dp(10), 0, AndroidUtilities.dp(10), 0); buttonsLayout.addView(textView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, 36, Gravity.TOP | Gravity.RIGHT)); textView.setOnClickListener(v14 -> bottomSheet.dismiss()); @@ -3171,10 +4164,15 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat setDoubleTapEnabled(true); ImageReceiver.ImageReceiverDelegate imageReceiverDelegate = (imageReceiver, set, thumb, memCache) -> { - if (imageReceiver == centerImage && set && !thumb && (currentEditMode == 1 || sendPhotoType == SELECT_TYPE_AVATAR) && photoCropView != null) { - Bitmap bitmap = imageReceiver.getBitmap(); - if (bitmap != null) { - photoCropView.setBitmap(bitmap, imageReceiver.getOrientation(), sendPhotoType != SELECT_TYPE_AVATAR, true); + if (imageReceiver == centerImage && set && !thumb) { + if ((currentEditMode == 1 || sendPhotoType == SELECT_TYPE_AVATAR) && photoCropView != null) { + Bitmap bitmap = imageReceiver.getBitmap(); + if (bitmap != null) { + photoCropView.setBitmap(bitmap, imageReceiver.getOrientation(), sendPhotoType != SELECT_TYPE_AVATAR, true, paintingOverlay); + } + } + if (paintingOverlay.getVisibility() == View.VISIBLE) { + containerView.requestLayout(); } } if (imageReceiver == centerImage && set && placeProvider != null && placeProvider.scaleToFill() && !ignoreDidSetImage) { @@ -3210,11 +4208,11 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat }; checkImageView.setDrawBackground(true); checkImageView.setHasBorder(true); - checkImageView.setSize(40); + checkImageView.setSize(34); checkImageView.setCheckOffset(AndroidUtilities.dp(1)); checkImageView.setColor(Theme.getColor(Theme.key_dialogFloatingButton), 0xffffffff); checkImageView.setVisibility(View.GONE); - containerView.addView(checkImageView, LayoutHelper.createFrame(40, 40, Gravity.RIGHT | Gravity.TOP, 0, rotation == Surface.ROTATION_270 || rotation == Surface.ROTATION_90 ? 58 : 68, 10, 0)); + containerView.addView(checkImageView, LayoutHelper.createFrame(34, 34, Gravity.RIGHT | Gravity.TOP, 0, rotation == Surface.ROTATION_270 || rotation == Surface.ROTATION_90 ? 61 : 71, 11, 0)); if (Build.VERSION.SDK_INT >= 21) { ((FrameLayout.LayoutParams) checkImageView.getLayoutParams()).topMargin += AndroidUtilities.statusBarHeight; } @@ -3226,7 +4224,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat }); photosCounterView = new CounterView(parentActivity); - containerView.addView(photosCounterView, LayoutHelper.createFrame(40, 40, Gravity.RIGHT | Gravity.TOP, 0, rotation == Surface.ROTATION_270 || rotation == Surface.ROTATION_90 ? 58 : 68, 66, 0)); + containerView.addView(photosCounterView, LayoutHelper.createFrame(40, 40, Gravity.RIGHT | Gravity.TOP, 0, rotation == Surface.ROTATION_270 || rotation == Surface.ROTATION_90 ? 58 : 68, 64, 0)); if (Build.VERSION.SDK_INT >= 21) { ((FrameLayout.LayoutParams) photosCounterView.getLayoutParams()).topMargin += AndroidUtilities.statusBarHeight; } @@ -3237,41 +4235,36 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat togglePhotosListView(!isPhotosListViewVisible, true); }); - selectedPhotosListView = new RecyclerListView(parentActivity); + selectedPhotosListView = new SelectedPhotosListView(parentActivity); selectedPhotosListView.setVisibility(View.GONE); selectedPhotosListView.setAlpha(0.0f); - selectedPhotosListView.setTranslationY(-AndroidUtilities.dp(10)); - selectedPhotosListView.addItemDecoration(new RecyclerView.ItemDecoration() { - @Override - public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { - int position = parent.getChildAdapterPosition(view); - if (view instanceof PhotoPickerPhotoCell && position == 0) { - outRect.left = AndroidUtilities.dp(3); - } else { - outRect.left = 0; - } - outRect.right = AndroidUtilities.dp(3); - } - }); - ((DefaultItemAnimator) selectedPhotosListView.getItemAnimator()).setDelayAnimations(false); - selectedPhotosListView.setBackgroundColor(0x7f000000); - selectedPhotosListView.setPadding(0, AndroidUtilities.dp(3), 0, AndroidUtilities.dp(3)); - selectedPhotosListView.setLayoutManager(new LinearLayoutManager(parentActivity, LinearLayoutManager.HORIZONTAL, false) { + selectedPhotosListView.setLayoutManager(new LinearLayoutManager(parentActivity, LinearLayoutManager.HORIZONTAL, true) { @Override public void smoothScrollToPosition(RecyclerView recyclerView, RecyclerView.State state, int position) { - LinearSmoothScrollerEnd linearSmoothScroller = new LinearSmoothScrollerEnd(recyclerView.getContext()); + LinearSmoothScrollerEnd linearSmoothScroller = new LinearSmoothScrollerEnd(recyclerView.getContext()) { + @Override + protected int calculateTimeForDeceleration(int dx) { + return Math.max(180, super.calculateTimeForDeceleration(dx)); + } + }; linearSmoothScroller.setTargetPosition(position); startSmoothScroll(linearSmoothScroller); } }); selectedPhotosListView.setAdapter(selectedPhotosAdapter = new ListAdapter(parentActivity)); - containerView.addView(selectedPhotosListView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 88, Gravity.LEFT | Gravity.TOP)); + containerView.addView(selectedPhotosListView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 103, Gravity.LEFT | Gravity.TOP)); selectedPhotosListView.setOnItemClickListener((view, position) -> { + if (!imagesArrLocals.isEmpty() && currentIndex >= 0 && currentIndex < imagesArrLocals.size()) { + Object entry = imagesArrLocals.get(currentIndex); + if (entry instanceof MediaController.MediaEditState) { + ((MediaController.MediaEditState) entry).editedInfo = getCurrentVideoEditedInfo(); + } + } ignoreDidSetImage = true; int idx = imagesArrLocals.indexOf(view.getTag()); if (idx >= 0) { currentIndex = -1; - setImageIndex(idx, true); + setImageIndex(idx); } ignoreDidSetImage = false; }); @@ -3519,6 +4512,12 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } } VideoEditedInfo videoEditedInfo = getCurrentVideoEditedInfo(); + if (!imagesArrLocals.isEmpty() && currentIndex >= 0 && currentIndex < imagesArrLocals.size()) { + Object entry = imagesArrLocals.get(currentIndex); + if (entry instanceof MediaController.MediaEditState) { + ((MediaController.MediaEditState) entry).editedInfo = videoEditedInfo; + } + } placeProvider.sendButtonPressed(currentIndex, videoEditedInfo, notify, scheduleDate); doneButtonPressed = true; closePhoto(false, false); @@ -3547,28 +4546,36 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat return false; } + private View.OnClickListener openCaptionEnter = (v) -> { + if (!needCaptionLayout) { + return; + } + openCaptionEnter(); + }; private TextView createCaptionTextView() { TextView textView = new TextView(actvityContext) { @Override public boolean onTouchEvent(MotionEvent event) { - return bottomTouchEnabled && super.onTouchEvent(event); + boolean b = super.onTouchEvent(event); + return bottomTouchEnabled && b; + } + + @Override + public void scrollTo(int x, int y) { + if (getParent().getParent() == pickerView) { + super.scrollTo(x, y); + setOnClickListener(null); + } } }; textView.setMovementMethod(new LinkMovementMethodMy()); - textView.setPadding(AndroidUtilities.dp(20), AndroidUtilities.dp(8), AndroidUtilities.dp(20), AndroidUtilities.dp(8)); + textView.setPadding(AndroidUtilities.dp(16), AndroidUtilities.dp(8), AndroidUtilities.dp(16), AndroidUtilities.dp(8)); textView.setLinkTextColor(0xff76c2f1); textView.setTextColor(0xffffffff); textView.setHighlightColor(0x33ffffff); - //textView.setEllipsize(TextUtils.TruncateAt.END); textView.setGravity(Gravity.CENTER_VERTICAL | (LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT)); textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); - textView.setVisibility(View.INVISIBLE); - textView.setOnClickListener(v -> { - if (!needCaptionLayout) { - return; - } - openCaptionEnter(); - }); + textView.setOnClickListener(openCaptionEnter); return textView; } @@ -3650,7 +4657,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat ObjectAnimator.ofInt(backgroundDrawable, AnimationProperties.COLOR_DRAWABLE_ALPHA, 0), ObjectAnimator.ofFloat(actionBar, View.ALPHA, 0.0f), ObjectAnimator.ofFloat(bottomLayout, View.ALPHA, 0.0f), - ObjectAnimator.ofFloat(captionTextView, View.ALPHA, 0.0f), + ObjectAnimator.ofFloat(captionTextViewSwitcher, View.ALPHA, 0.0f), ObjectAnimator.ofFloat(groupedPhotosListView, View.ALPHA, 0.0f) ); animatorSet.setInterpolator(new DecelerateInterpolator()); @@ -3738,7 +4745,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } private void updateVideoSeekPreviewPosition() { - int x = videoPlayerSeekbar.getThumbX() + AndroidUtilities.dp(48) - videoPreviewFrame.getMeasuredWidth() / 2; + int x = videoPlayerSeekbar.getThumbX() + AndroidUtilities.dp(2) - videoPreviewFrame.getMeasuredWidth() / 2; int min = AndroidUtilities.dp(10); int max = videoPlayerControlFrameLayout.getMeasuredWidth() - AndroidUtilities.dp(10) - videoPreviewFrame.getMeasuredWidth() / 2; if (x < min) { @@ -3774,73 +4781,21 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } private void createVideoControlsInterface() { - videoPlayerControlFrameLayout = new FrameLayout(containerView.getContext()) { - - @Override - public boolean onTouchEvent(MotionEvent event) { - int x = (int) event.getX(); - int y = (int) event.getY(); - if (videoPlayerSeekbar.onTouch(event.getAction(), event.getX() - AndroidUtilities.dp(48), event.getY())) { - getParent().requestDisallowInterceptTouchEvent(true); - invalidate(); - return true; - } - return true; - } - - @Override - protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - super.onMeasure(widthMeasureSpec, heightMeasureSpec); - long duration; - if (videoPlayer != null) { - duration = videoPlayer.getDuration(); - if (duration == C.TIME_UNSET) { - duration = 0; - } - } else { - duration = 0; - } - duration /= 1000; - int size = (int) Math.ceil(videoPlayerTime.getPaint().measureText(String.format("%02d:%02d / %02d:%02d", duration / 60, duration % 60, duration / 60, duration % 60))); - videoPlayerSeekbar.setSize(getMeasuredWidth() - AndroidUtilities.dp(48 + 16) - size, getMeasuredHeight()); - } - - @Override - protected void onLayout(boolean changed, int left, int top, int right, int bottom) { - super.onLayout(changed, left, top, right, bottom); - float progress = 0; - if (videoPlayer != null) { - progress = videoPlayer.getCurrentPosition() / (float) videoPlayer.getDuration(); - if (!inPreview && videoTimelineView.getVisibility() == View.VISIBLE) { - progress -= videoTimelineView.getLeftProgress(); - if (progress < 0) { - progress = 0; - } - progress /= (videoTimelineView.getRightProgress() - videoTimelineView.getLeftProgress()); - if (progress > 1) { - progress = 1; - } - } - } - videoPlayerSeekbar.setProgress(progress); - videoTimelineView.setProgress(progress); - } + videoPlayerControlFrameLayout = new VideoPlayerControlFrameLayout(containerView.getContext()); + containerView.addView(videoPlayerControlFrameLayout, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 48, Gravity.BOTTOM | Gravity.LEFT)); + videoPlayerSeekbarView = new View(containerView.getContext()) { @Override protected void onDraw(Canvas canvas) { - canvas.save(); - canvas.translate(AndroidUtilities.dp(48), 0); videoPlayerSeekbar.draw(canvas); - canvas.restore(); } }; - videoPlayerControlFrameLayout.setWillNotDraw(false); - bottomLayout.addView(videoPlayerControlFrameLayout, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.TOP | Gravity.LEFT)); + videoPlayerControlFrameLayout.addView(videoPlayerSeekbarView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); - videoPlayerSeekbar = new SeekBar(videoPlayerControlFrameLayout); - videoPlayerSeekbar.setLineHeight(AndroidUtilities.dp(4)); - videoPlayerSeekbar.setColors(0x66ffffff, 0x66ffffff, 0xffd5d0d7, 0xffffffff, 0xffffffff); - videoPlayerSeekbar.setDelegate(new SeekBar.SeekBarDelegate() { + videoPlayerSeekbar = new VideoPlayerSeekBar(videoPlayerSeekbarView); + videoPlayerSeekbar.setHorizontalPadding(AndroidUtilities.dp(2)); + videoPlayerSeekbar.setColors(0x33ffffff, 0x33ffffff, Color.WHITE, Color.WHITE, Color.WHITE, 0x59ffffff); + videoPlayerSeekbar.setDelegate(new VideoPlayerSeekBar.SeekBarDelegate() { @Override public void onSeekBarDrag(float progress) { if (videoPlayer != null) { @@ -3890,37 +4845,11 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat videoPreviewFrame.setAlpha(0.0f); containerView.addView(videoPreviewFrame, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.BOTTOM | Gravity.LEFT, 0, 0, 0, 48 + 10)); - videoPlayButton = new ImageView(containerView.getContext()); - videoPlayButton.setScaleType(ImageView.ScaleType.CENTER); - videoPlayerControlFrameLayout.addView(videoPlayButton, LayoutHelper.createFrame(48, 48, Gravity.LEFT | Gravity.TOP, 4, 0, 0, 0)); - videoPlayButton.setFocusable(true); - videoPlayButton.setContentDescription(LocaleController.getString("AccActionPlay", R.string.AccActionPlay)); - videoPlayButton.setOnClickListener(v -> { - if (videoPlayer == null) { - return; - } - if (isPlaying) { - videoPlayer.pause(); - } else { - if (isCurrentVideo) { - if (Math.abs(videoTimelineView.getProgress() - 1.0f) < 0.01f || videoPlayer.getCurrentPosition() == videoPlayer.getDuration()) { - videoPlayer.seekTo((int) (videoTimelineView.getLeftProgress() * videoPlayer.getDuration())); - } - } else { - if (Math.abs(videoPlayerSeekbar.getProgress() - 1.0f) < 0.01f || videoPlayer.getCurrentPosition() == videoPlayer.getDuration()) { - videoPlayer.seekTo(0); - } - } - videoPlayer.play(); - } - containerView.invalidate(); - }); - videoPlayerTime = new SimpleTextView(containerView.getContext()); videoPlayerTime.setTextColor(0xffffffff); videoPlayerTime.setGravity(Gravity.RIGHT | Gravity.TOP); - videoPlayerTime.setTextSize(13); - videoPlayerControlFrameLayout.addView(videoPlayerTime, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.MATCH_PARENT, Gravity.RIGHT | Gravity.TOP, 0, 17, 7, 0)); + videoPlayerTime.setTextSize(14); + videoPlayerControlFrameLayout.addView(videoPlayerTime, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.RIGHT | Gravity.TOP, 0, 15, 12, 0)); } private void openCaptionEnter() { @@ -3946,6 +4875,44 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } private VideoEditedInfo getCurrentVideoEditedInfo() { + if (!isCurrentVideo && hasAnimatedMediaEntities() && centerImage.getBitmapWidth() > 0) { + VideoEditedInfo videoEditedInfo = new VideoEditedInfo(); + videoEditedInfo.start = videoEditedInfo.startTime = 0; + videoEditedInfo.endTime = Math.min(3000, currentAverageDuration); + while (videoEditedInfo.endTime > 0 && videoEditedInfo.endTime < 1000) { + videoEditedInfo.endTime *= 2; + } + videoEditedInfo.end = videoEditedInfo.endTime; + videoEditedInfo.rotationValue = 0; + videoEditedInfo.originalPath = currentImagePath; + videoEditedInfo.estimatedSize = (int) (videoEditedInfo.endTime / 1000.0f * 115200); + videoEditedInfo.estimatedDuration = videoEditedInfo.endTime; + videoEditedInfo.framerate = 30; + videoEditedInfo.originalDuration = videoEditedInfo.endTime; + videoEditedInfo.filterState = currentSavedFilterState; + videoEditedInfo.paintPath = currentPaintPath; + videoEditedInfo.mediaEntities = currentMediaEntities; + videoEditedInfo.isPhoto = true; + int width = centerImage.getBitmapWidth(); + int height = centerImage.getBitmapHeight(); + float scale = Math.max(width / 854.0f, height / 854.0f); + if (scale < 1) { + scale = 1; + } + width /= scale; + height /= scale; + if (width % 16 != 0) { + width = Math.round(width / 16.0f) * 16; + } + if (height % 16 != 0) { + height = Math.round(height / 16.0f) * 16; + } + videoEditedInfo.originalWidth = videoEditedInfo.resultWidth = width; + videoEditedInfo.originalHeight = videoEditedInfo.resultHeight = height; + videoEditedInfo.bitrate = -1; + videoEditedInfo.muted = true; + return videoEditedInfo; + } if (!isCurrentVideo || currentPlayingVideoFile == null || compressionsCount == 0) { return null; } @@ -3958,11 +4925,14 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat videoEditedInfo.originalWidth = originalWidth; videoEditedInfo.originalHeight = originalHeight; videoEditedInfo.bitrate = bitrate; - videoEditedInfo.originalPath = currentPlayingVideoFile.getPath(); + videoEditedInfo.originalPath = currentPathObject; videoEditedInfo.estimatedSize = estimatedSize != 0 ? estimatedSize : 1; videoEditedInfo.estimatedDuration = estimatedDuration; videoEditedInfo.framerate = videoFramerate; videoEditedInfo.originalDuration = (long) (videoDuration * 1000); + videoEditedInfo.filterState = currentSavedFilterState; + videoEditedInfo.paintPath = currentPaintPath; + videoEditedInfo.mediaEntities = currentMediaEntities != null && !currentMediaEntities.isEmpty() ? currentMediaEntities : null; if (!muteVideo && (compressItem.getTag() == null || (videoEditedInfo.resultWidth == originalWidth && videoEditedInfo.resultHeight == originalHeight))) { videoEditedInfo.resultWidth = originalWidth; @@ -4017,7 +4987,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat lastTitle = null; } if (isCurrentVideo) { - actionBar.setSubtitle(muteVideo ? null : currentSubtitle); + actionBar.setSubtitle(muteVideo ? LocaleController.getString("SoundMuted", R.string.SoundMuted) : currentSubtitle); } updateCaptionTextForCurrentPhoto(object); if (captionEditText.isPopupShowing()) { @@ -4106,9 +5076,6 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat if (tuneItem != null && tuneItem.getColorFilter() != null) { tuneItem.setColorFilter(filter); } - if (muteItem != null && muteItem.getColorFilter() != null) { - muteItem.setColorFilter(filter); - } if (editorDoneLayout != null) { editorDoneLayout.doneButton.setTextColor(color); } @@ -4133,6 +5100,9 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } } } + if (masksAlert != null) { + masksAlert.updateColors(true); + } } public void injectVideoPlayer(VideoPlayer player) { @@ -4157,7 +5127,13 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat skipFirstBufferingProgress = false; } } else { - toggleMiniProgress(seekToProgressPending != 0 || playbackState == ExoPlayer.STATE_BUFFERING, true); + final boolean buffering = seekToProgressPending != 0 || playbackState == ExoPlayer.STATE_BUFFERING; + if (buffering) { + AndroidUtilities.cancelRunOnUIThread(hideActionBarRunnable); + } else { + AndroidUtilities.runOnUIThread(hideActionBarRunnable, 3000); + } + toggleMiniProgress(buffering, true); } } if (playWhenReady && (playbackState != ExoPlayer.STATE_ENDED && playbackState != ExoPlayer.STATE_IDLE)) { @@ -4195,7 +5171,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat if (!pipItem.isEnabled()) { pipAvailable = true; pipItem.setEnabled(true); - pipItem.setAlpha(1.0f); + pipItem.animate().alpha(1.0f).setDuration(175).withEndAction(null).start(); } playerWasReady = true; if (currentMessageObject != null && currentMessageObject.isVideo()) { @@ -4211,41 +5187,49 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } } } - if (videoPlayer.isPlaying() && playbackState != ExoPlayer.STATE_ENDED) { if (!isPlaying) { isPlaying = true; - videoPlayButton.setImageResource(R.drawable.inline_video_pause); + photoProgressViews[0].setBackgroundState(isCurrentVideo ? PROGRESS_NONE : PROGRESS_PAUSE, false); + photoProgressViews[0].setIndexedAlpha(1, !isCurrentVideo && ((playerAutoStarted && !playerWasPlaying) || !isActionBarVisible) ? 0f : 1f, false); + playerWasPlaying = true; AndroidUtilities.runOnUIThread(updateProgressRunnable); } } else if (isPlaying) { isPlaying = false; - videoPlayButton.setImageResource(R.drawable.inline_video_play); + if (currentEditMode != 3) { + photoProgressViews[0].setIndexedAlpha(1, 1f, false); + photoProgressViews[0].setBackgroundState(PROGRESS_PLAY, false); + } AndroidUtilities.cancelRunOnUIThread(updateProgressRunnable); if (playbackState == ExoPlayer.STATE_ENDED) { if (isCurrentVideo) { if (!videoTimelineView.isDragging()) { videoTimelineView.setProgress(0.0f); - if (!inPreview && videoTimelineView.getVisibility() == View.VISIBLE) { + if (!inPreview && (currentEditMode != 0 || videoTimelineView.getVisibility() == View.VISIBLE)) { videoPlayer.seekTo((int) (videoTimelineView.getLeftProgress() * videoPlayer.getDuration())); } else { videoPlayer.seekTo(0); } - videoPlayer.pause(); + if (currentEditMode == 0) { + videoPlayer.pause(); + } else { + videoPlayer.play(); + } containerView.invalidate(); } } else { - if (!isActionBarVisible) { - toggleActionBar(true, true); - } videoPlayerSeekbar.setProgress(0.0f); - videoPlayerControlFrameLayout.invalidate(); + videoPlayerSeekbarView.invalidate(); if (!inPreview && videoTimelineView.getVisibility() == View.VISIBLE) { videoPlayer.seekTo((int) (videoTimelineView.getLeftProgress() * videoPlayer.getDuration())); } else { videoPlayer.seekTo(0); } videoPlayer.pause(); + if (!isActionBarVisible) { + toggleActionBar(true, true); + } } if (pipVideoView != null) { pipVideoView.onVideoCompleted(); @@ -4259,8 +5243,13 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } private void preparePlayer(Uri uri, boolean playWhenReady, boolean preview) { + preparePlayer(uri, playWhenReady, preview, null); + } + + private void preparePlayer(Uri uri, boolean playWhenReady, boolean preview, MediaController.SavedFilterState savedFilterState) { if (!preview) { currentPlayingVideoFile = uri; + currentSavedFilterState = savedFilterState; } if (parentActivity == null) { return; @@ -4272,31 +5261,8 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat firstAnimationDelay = true; inPreview = preview; releasePlayer(false); - if (videoTextureView == null) { - aspectRatioFrameLayout = new AspectRatioFrameLayout(parentActivity) { - @Override - protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - super.onMeasure(widthMeasureSpec, heightMeasureSpec); - if (textureImageView != null) { - ViewGroup.LayoutParams layoutParams = textureImageView.getLayoutParams(); - layoutParams.width = getMeasuredWidth(); - layoutParams.height = getMeasuredHeight(); - } - } - }; - aspectRatioFrameLayout.setVisibility(View.INVISIBLE); - containerView.addView(aspectRatioFrameLayout, 0, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.CENTER)); - - videoTextureView = new TextureView(parentActivity); - if (injectingVideoPlayerSurface != null) { - videoTextureView.setSurfaceTexture(injectingVideoPlayerSurface); - textureUploaded = true; - injectingVideoPlayerSurface = null; - } - videoTextureView.setPivotX(0); - videoTextureView.setPivotY(0); - videoTextureView.setOpaque(false); - aspectRatioFrameLayout.addView(videoTextureView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.CENTER)); + if (imagesArrLocals.isEmpty()) { + createVideoTextureView(null); } if (Build.VERSION.SDK_INT >= 21 && textureImageView == null) { textureImageView = new ImageView(parentActivity); @@ -4308,10 +5274,9 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } textureUploaded = false; videoCrossfadeStarted = false; - videoTextureView.setAlpha(videoCrossfadeAlpha = 0.0f); - videoPlayButton.setImageResource(R.drawable.inline_video_play); boolean newPlayerCreated = false; playerWasReady = false; + playerWasPlaying = false; if (videoPlayer == null) { if (injectingVideoPlayer != null) { videoPlayer = injectingVideoPlayer; @@ -4319,10 +5284,26 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat playerInjected = true; updatePlayerState(videoPlayer.getPlayWhenReady(), videoPlayer.getPlaybackState()); } else { - videoPlayer = new VideoPlayer(); + videoPlayer = new VideoPlayer() { + @Override + public void play() { + super.play(); + playOrStopAnimatedStickers(true); + } + + @Override + public void pause() { + super.pause(); + if (currentEditMode == 0) { + playOrStopAnimatedStickers(false); + } + } + }; newPlayerCreated = true; } - videoPlayer.setTextureView(videoTextureView); + if (videoTextureView != null) { + videoPlayer.setTextureView(videoTextureView); + } videoPlayer.setDelegate(new VideoPlayer.VideoPlayerDelegate() { @Override public void onStateChanged(boolean playWhenReady, int playbackState) { @@ -4330,8 +5311,8 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } @Override - public void onError(Exception e) { - if (videoPlayer == null) { + public void onError(VideoPlayer player, Exception e) { + if (videoPlayer != player) { return; } FileLog.e(e); @@ -4362,6 +5343,9 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat height = temp; } aspectRatioFrameLayout.setAspectRatio(height == 0 ? 1 : (width * pixelWidthHeightRatio) / height, unappliedRotationDegrees); + if (videoTextureView instanceof VideoEditTextureView) { + ((VideoEditTextureView) videoTextureView).setVideoSize((int) (width * pixelWidthHeightRatio), height); + } } } @@ -4407,8 +5391,8 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat aspectRatioFrameLayout.getLocationInWindow(pipPosition); //pipPosition[0] -= getLeftInset(); pipPosition[1] -= containerView.getTranslationY(); - textureImageView.setTranslationX(textureImageView.getTranslationX()+getLeftInset()); - videoTextureView.setTranslationX(videoTextureView.getTranslationX()+getLeftInset()-aspectRatioFrameLayout.getX()); + textureImageView.setTranslationX(textureImageView.getTranslationX() + getLeftInset()); + videoTextureView.setTranslationX(videoTextureView.getTranslationX() + getLeftInset() - aspectRatioFrameLayout.getX()); AnimatorSet animatorSet = new AnimatorSet(); animatorSet.playTogether( @@ -4423,7 +5407,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat ObjectAnimator.ofInt(backgroundDrawable, AnimationProperties.COLOR_DRAWABLE_ALPHA, 255), ObjectAnimator.ofFloat(actionBar, View.ALPHA, 1.0f), ObjectAnimator.ofFloat(bottomLayout, View.ALPHA, 1.0f), - ObjectAnimator.ofFloat(captionTextView, View.ALPHA, 1.0f), + ObjectAnimator.ofFloat(captionTextViewSwitcher, View.ALPHA, 1.0f), ObjectAnimator.ofFloat(groupedPhotosListView, View.ALPHA, 1.0f) ); animatorSet.setInterpolator(new DecelerateInterpolator()); @@ -4444,31 +5428,67 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } }); } + if (!imagesArrLocals.isEmpty()) { + createVideoTextureView(savedFilterState); + } + videoTextureView.setAlpha(videoCrossfadeAlpha = 0.0f); + if (paintingOverlay != null) { + paintingOverlay.setAlpha(videoCrossfadeAlpha); + } shouldSavePositionForCurrentVideo = null; + shouldSavePositionForCurrentVideoShortTerm = null; lastSaveTime = 0; if (newPlayerCreated) { seekToProgressPending = seekToProgressPending2; - videoPlayer.preparePlayer(uri, "other"); videoPlayerSeekbar.setProgress(0); videoTimelineView.setProgress(0); videoPlayerSeekbar.setBufferedProgress(0); - videoPlayer.setPlayWhenReady(playWhenReady); + if (currentMessageObject != null) { - String name = currentMessageObject.getFileName(); - if (!TextUtils.isEmpty(name) && currentMessageObject.getDuration() >= 20 * 60) { - if (currentMessageObject.forceSeekTo < 0) { - SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("media_saved_pos", Activity.MODE_PRIVATE); - float pos = preferences.getFloat(name, -1); - if (pos > 0 && pos < 0.999f) { - currentMessageObject.forceSeekTo = pos; - videoPlayerSeekbar.setProgress(pos); + final int duration = currentMessageObject.getDuration(); + final String name = currentMessageObject.getFileName(); + if (!TextUtils.isEmpty(name)) { + if (duration >= 20 * 60) { + if (currentMessageObject.forceSeekTo < 0) { + SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("media_saved_pos", Activity.MODE_PRIVATE); + float pos = preferences.getFloat(name, -1); + if (pos > 0 && pos < 0.999f) { + currentMessageObject.forceSeekTo = pos; + videoPlayerSeekbar.setProgress(pos); + } } + shouldSavePositionForCurrentVideo = name; + } else if (duration >= 10) { + SavedVideoPosition videoPosition = null; + for (int i = savedVideoPositions.size() - 1; i >= 0; i--) { + final SavedVideoPosition item = savedVideoPositions.valueAt(i); + if (item.timestamp < SystemClock.elapsedRealtime() - 5 * 1000) { + savedVideoPositions.removeAt(i); + } else if (videoPosition == null && savedVideoPositions.keyAt(i).equals(name)) { + videoPosition = item; + } + } + if (currentMessageObject.forceSeekTo < 0 && videoPosition != null) { + float pos = videoPosition.position; + if (pos > 0 && pos < 0.999f) { + currentMessageObject.forceSeekTo = pos; + videoPlayerSeekbar.setProgress(pos); + } + } + shouldSavePositionForCurrentVideoShortTerm = name; } - shouldSavePositionForCurrentVideo = name; } } + + videoPlayer.preparePlayer(uri, "other"); + videoPlayer.setPlayWhenReady(playWhenReady); } + + playerLooping = currentMessageObject != null && currentMessageObject.getDuration() <= 30; + videoPlayerControlFrameLayout.setSeekBarTransitionEnabled(playerLooping); + videoPlayer.setLooping(playerLooping); + if (currentMessageObject != null && currentMessageObject.forceSeekTo >= 0) { seekToProgressPending = currentMessageObject.forceSeekTo; currentMessageObject.forceSeekTo = -1; @@ -4481,25 +5501,67 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } else { bottomLayout.setPadding(0, 0, 0, 0); } - videoPlayerControlFrameLayout.setVisibility(isCurrentVideo ? View.GONE : View.VISIBLE); - - dateTextView.setVisibility(View.GONE); - nameTextView.setVisibility(View.GONE); - if (allowShare) { - shareButton.setVisibility(View.GONE); - menuItem.showSubItem(gallery_menu_share); + setVideoPlayerControlVisible(!isCurrentVideo, true); + if (!isCurrentVideo) { + AndroidUtilities.runOnUIThread(hideActionBarRunnable, playerAutoStarted ? 3000 : 1000); } + inPreview = preview; updateAccessibilityOverlayVisibility(); } + private void createVideoTextureView(MediaController.SavedFilterState savedFilterState) { + if (videoTextureView != null) { + return; + } + aspectRatioFrameLayout = new AspectRatioFrameLayout(parentActivity) { + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + if (textureImageView != null) { + ViewGroup.LayoutParams layoutParams = textureImageView.getLayoutParams(); + layoutParams.width = getMeasuredWidth(); + layoutParams.height = getMeasuredHeight(); + } + } + }; + aspectRatioFrameLayout.setVisibility(View.INVISIBLE); + containerView.addView(aspectRatioFrameLayout, 0, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.CENTER)); + + if (imagesArrLocals.isEmpty()) { + videoTextureView = new TextureView(parentActivity); + } else { + VideoEditTextureView videoEditTextureView = new VideoEditTextureView(parentActivity, videoPlayer); + if (savedFilterState != null) { + videoEditTextureView.setDelegate(thread -> thread.setFilterGLThreadDelegate(FilterShaders.getFilterShadersDelegate(savedFilterState))); + } + videoTextureView = videoEditTextureView; + } + if (injectingVideoPlayerSurface != null) { + videoTextureView.setSurfaceTexture(injectingVideoPlayerSurface); + textureUploaded = true; + injectingVideoPlayerSurface = null; + } + videoTextureView.setPivotX(0); + videoTextureView.setPivotY(0); + videoTextureView.setOpaque(false); + aspectRatioFrameLayout.addView(videoTextureView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.CENTER)); + } + private void releasePlayer(boolean onClose) { if (videoPlayer != null) { AndroidUtilities.cancelRunOnUIThread(setLoadingRunnable); + AndroidUtilities.cancelRunOnUIThread(hideActionBarRunnable); + if (shouldSavePositionForCurrentVideoShortTerm != null) { + final float progress = videoPlayer.getCurrentPosition() / (float) videoPlayer.getDuration(); + savedVideoPositions.put(shouldSavePositionForCurrentVideoShortTerm, new SavedVideoPosition(progress, SystemClock.elapsedRealtime())); + } videoPlayer.releasePlayer(true); videoPlayer = null; updateAccessibilityOverlayVisibility(); + } else { + playerWasPlaying = false; } videoPreviewFrame.close(); toggleMiniProgress(false, false); @@ -4507,7 +5569,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat playerInjected = false; if (pipItem.isEnabled()) { pipItem.setEnabled(false); - pipItem.setAlpha(0.5f); + pipItem.animate().alpha(0.5f).setDuration(175).withEndAction(null).start(); } if (keepScreenOnFlagSet) { try { @@ -4526,22 +5588,83 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat aspectRatioFrameLayout = null; } if (videoTextureView != null) { + if (videoTextureView instanceof VideoEditTextureView) { + ((VideoEditTextureView) videoTextureView).release(); + } videoTextureView = null; } if (isPlaying) { isPlaying = false; - if (!onClose) { - videoPlayButton.setImageResource(R.drawable.inline_video_play); - } AndroidUtilities.cancelRunOnUIThread(updateProgressRunnable); } if (!onClose && !inPreview && !requestingPreview) { - videoPlayerControlFrameLayout.setVisibility(View.GONE); - dateTextView.setVisibility(View.VISIBLE); - nameTextView.setVisibility(View.VISIBLE); + setVideoPlayerControlVisible(false, true); + } + photoProgressViews[0].resetAlphas(); + } + + private void setVideoPlayerControlVisible(boolean visible, boolean animated) { + if (videoPlayerControlVisible != visible) { + if (videoPlayerControlAnimator != null) { + videoPlayerControlAnimator.cancel(); + } + videoPlayerControlVisible = visible; + if (animated) { + if (visible) { + videoPlayerControlFrameLayout.setVisibility(View.VISIBLE); + } else { + dateTextView.setVisibility(View.VISIBLE); + nameTextView.setVisibility(View.VISIBLE); + if (allowShare) { + shareButton.setVisibility(View.VISIBLE); + } + } + final boolean shareWasAllowed = allowShare; + final ValueAnimator anim = ValueAnimator.ofFloat(videoPlayerControlFrameLayout.getAlpha(), visible ? 1f : 0f); + anim.setDuration(200); + anim.addUpdateListener(a -> { + final float alpha = (float) a.getAnimatedValue(); + videoPlayerControlFrameLayout.setAlpha(alpha); + dateTextView.setAlpha(1f - alpha); + nameTextView.setAlpha(1f - alpha); + if (shareWasAllowed) { + shareButton.setAlpha(1f - alpha); + } + }); + anim.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + if (!visible) { + videoPlayerControlFrameLayout.setVisibility(View.GONE); + } else { + dateTextView.setVisibility(View.GONE); + nameTextView.setVisibility(View.GONE); + if (shareWasAllowed) { + shareButton.setVisibility(View.GONE); + } + } + } + }); + videoPlayerControlAnimator = anim; + anim.start(); + } else { + videoPlayerControlFrameLayout.setVisibility(visible ? View.VISIBLE : View.GONE); + videoPlayerControlFrameLayout.setAlpha(visible ? 1f : 0f); + dateTextView.setVisibility(visible ? View.GONE : View.VISIBLE); + dateTextView.setAlpha(visible ? 0f : 1f); + nameTextView.setVisibility(visible ? View.GONE : View.VISIBLE); + nameTextView.setAlpha(visible ? 0f : 1f); + if (allowShare) { + shareButton.setVisibility(visible ? View.GONE : View.VISIBLE); + shareButton.setAlpha(visible ? 0f : 1f); + } + } if (allowShare) { - shareButton.setVisibility(View.VISIBLE); - menuItem.hideSubItem(gallery_menu_share); + if (visible) { + menuItem.showSubItem(gallery_menu_share); + } else { + menuItem.hideSubItem(gallery_menu_share); + } } } } @@ -4584,77 +5707,300 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } } + private static final int thumbSize = 512; + + private void mergeThumbs(String finalPath, String thumbPath, Bitmap thumb, Bitmap bitmap, boolean reverse) { + try { + boolean recycle = false; + if (thumb == null) { + thumb = BitmapFactory.decodeFile(thumbPath); + recycle = true; + } + int w = thumb.getWidth(); + int h = thumb.getHeight(); + float size = thumbSize; + if (w > size || h > size) { + float scale = Math.max(w, h) / size; + w /= scale; + h /= scale; + } + Bitmap dst = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888); + Canvas canvas = new Canvas(dst); + Rect dstRect = new Rect(0, 0, w, h); + if (reverse) { + canvas.drawBitmap(bitmap, null, dstRect, bitmapPaint); + canvas.drawBitmap(thumb, null, dstRect, bitmapPaint); + } else { + canvas.drawBitmap(thumb, null, dstRect, bitmapPaint); + canvas.drawBitmap(bitmap, null, dstRect, bitmapPaint); + } + FileOutputStream stream = new FileOutputStream(new File(finalPath)); + dst.compress(Bitmap.CompressFormat.JPEG, 83, stream); + try { + stream.close(); + } catch (Exception e) { + FileLog.e(e); + } + if (recycle) { + thumb.recycle(); + } + dst.recycle(); + } catch (Throwable e) { + FileLog.e(e); + } + } + + private void playOrStopAnimatedStickers(boolean play) { + if (currentMediaEntities != null) { + for (int a = 0, N = currentMediaEntities.size(); a < N; a++) { + VideoEditedInfo.MediaEntity entity = currentMediaEntities.get(a); + if (entity.type == 0 && (entity.subType & 1) != 0 && entity.view instanceof BackupImageView) { + ImageReceiver imageReceiver = ((BackupImageView) entity.view).getImageReceiver(); + RLottieDrawable drawable = imageReceiver.getLottieAnimation(); + if (drawable == null) { + continue; + } + if (play) { + drawable.start(); + } else { + drawable.stop(); + } + } + } + } + } + + private boolean hasAnimatedMediaEntities() { + if (currentMediaEntities != null) { + for (int a = 0, N = currentMediaEntities.size(); a < N; a++) { + VideoEditedInfo.MediaEntity entity = currentMediaEntities.get(a); + if (entity.type == 0 && (entity.subType & 1) != 0) { + return true; + } + } + } + return false; + } + private void applyCurrentEditMode() { Bitmap bitmap = null; + Bitmap[] paintThumbBitmap = new Bitmap[1]; ArrayList stickers = null; MediaController.SavedFilterState savedFilterState = null; - boolean removeSavedState = false; + ArrayList entities = null; + MediaController.MediaEditState entry = (MediaController.MediaEditState) imagesArrLocals.get(currentIndex); if (currentEditMode == 1 || currentEditMode == 0 && sendPhotoType == SELECT_TYPE_AVATAR) { - bitmap = photoCropView.getBitmap(); - removeSavedState = true; + bitmap = photoCropView.getBitmap(entry); } else if (currentEditMode == 2) { bitmap = photoFilterView.getBitmap(); savedFilterState = photoFilterView.getSavedFilterState(); } else if (currentEditMode == 3) { - bitmap = photoPaintView.getBitmap(); + if (Build.VERSION.SDK_INT >= 18 && (sendPhotoType == 0 || sendPhotoType == 2)) { + entities = new ArrayList<>(); + } + bitmap = photoPaintView.getBitmap(entities, paintThumbBitmap); stickers = photoPaintView.getMasks(); - removeSavedState = true; } if (bitmap != null) { - TLRPC.PhotoSize size = ImageLoader.scaleAndSaveImage(bitmap, AndroidUtilities.getPhotoSize(), AndroidUtilities.getPhotoSize(), 80, false, 101, 101); + TLRPC.PhotoSize size = ImageLoader.scaleAndSaveImage(bitmap, currentEditMode == 3 ? Bitmap.CompressFormat.PNG : Bitmap.CompressFormat.JPEG, AndroidUtilities.getPhotoSize(), AndroidUtilities.getPhotoSize(), 80, false, 101, 101); if (size != null) { - Object object = imagesArrLocals.get(currentIndex); - if (object instanceof MediaController.PhotoEntry) { - MediaController.PhotoEntry entry = (MediaController.PhotoEntry) object; - entry.imagePath = FileLoader.getPathToAttach(size, true).toString(); - size = ImageLoader.scaleAndSaveImage(bitmap, AndroidUtilities.dp(120), AndroidUtilities.dp(120), 70, false, 101, 101); - if (size != null) { + if (entry.thumbPath != null) { + new File(entry.thumbPath).delete(); + entry.thumbPath = null; + } + + if (currentEditMode == 1 || currentEditMode == 0 && sendPhotoType == SELECT_TYPE_AVATAR) { + if (entry.filterPath == null) { + if (entry.croppedPath != null) { + new File(entry.croppedPath).delete(); + } + entry.croppedPath = currentImagePath = FileLoader.getPathToAttach(size, true).toString(); + } else { + if (entry.filterPath != null) { + new File(entry.filterPath).delete(); + } + entry.filterPath = currentImagePath = FileLoader.getPathToAttach(size, true).toString(); + } + if (entry.imagePath != null) { + new File(entry.imagePath).delete(); + } + if (entry.paintPath != null) { + File f = new File(FileLoader.getDirectory(FileLoader.MEDIA_DIR_CACHE), SharedConfig.getLastLocalId() + "_temp.jpg"); + mergeThumbs(entry.thumbPath = f.getAbsolutePath(), entry.fullPaintPath, null, bitmap, true); + + Bitmap paintBitmap = BitmapFactory.decodeFile(entry.paintPath); + paintingOverlay.setBitmap(paintBitmap); + if (entry.fullPaintPath != null && !entry.paintPath.equals(entry.fullPaintPath)) { + paintBitmap = BitmapFactory.decodeFile(hasAnimatedMediaEntities() ? entry.paintPath : entry.fullPaintPath); + } + Bitmap canvasBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888); + Canvas b = new Canvas(canvasBitmap); + b.drawBitmap(bitmap, null, new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()), bitmapPaint); + b.drawBitmap(paintBitmap, null, new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()), bitmapPaint); + size = ImageLoader.scaleAndSaveImage(canvasBitmap, AndroidUtilities.getPhotoSize(), AndroidUtilities.getPhotoSize(), 80, false, 101, 101); + entry.imagePath = FileLoader.getPathToAttach(size, true).toString(); + canvasBitmap.recycle(); + paintingOverlay.setEntities(currentMediaEntities, isCurrentVideo, true); + } else { + size = ImageLoader.scaleAndSaveImage(bitmap, thumbSize, thumbSize, 70, false, 101, 101); entry.thumbPath = FileLoader.getPathToAttach(size, true).toString(); + + try { + File f = new File(FileLoader.getDirectory(FileLoader.MEDIA_DIR_CACHE), SharedConfig.getLastLocalId() + "_temp.jpg"); + AndroidUtilities.copyFile(new File(entry.croppedPath), f); + entry.imagePath = f.getAbsolutePath(); + } catch (Exception e) { + FileLog.e(e); + } } - if (stickers != null) { - entry.stickers.addAll(stickers); + } else if (currentEditMode == 2) { + if (entry.filterPath != null) { + new File(entry.filterPath).delete(); } - if (currentEditMode == 1) { - cropItem.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_dialogFloatingButton), PorterDuff.Mode.MULTIPLY)); - entry.isCropped = true; - } else if (currentEditMode == 2) { - tuneItem.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_dialogFloatingButton), PorterDuff.Mode.MULTIPLY)); - entry.isFiltered = true; - } else if (currentEditMode == 3) { - paintItem.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_dialogFloatingButton), PorterDuff.Mode.MULTIPLY)); - entry.isPainted = true; - } - if (savedFilterState != null) { - entry.savedFilterState = savedFilterState; - } else if (removeSavedState) { - entry.savedFilterState = null; - } - } else if (object instanceof MediaController.SearchImage) { - MediaController.SearchImage entry = (MediaController.SearchImage) object; - entry.imagePath = FileLoader.getPathToAttach(size, true).toString(); - size = ImageLoader.scaleAndSaveImage(bitmap, AndroidUtilities.dp(120), AndroidUtilities.dp(120), 70, false, 101, 101); - if (size != null) { + entry.filterPath = currentImagePath = FileLoader.getPathToAttach(size, true).toString(); + if (entry.paintPath != null && !hasAnimatedMediaEntities() && !isCurrentVideo) { + Bitmap paintBitmap; + boolean recycle; + if (entry.paintPath.equals(entry.fullPaintPath)) { + paintBitmap = paintingOverlay.getBitmap(); + recycle = false; + } else { + paintBitmap = BitmapFactory.decodeFile(entry.fullPaintPath); + recycle = true; + } + Bitmap canvasBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888); + Canvas b = new Canvas(canvasBitmap); + b.drawBitmap(bitmap, null, new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()), bitmapPaint); + b.drawBitmap(paintBitmap, null, new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()), bitmapPaint); + size = ImageLoader.scaleAndSaveImage(canvasBitmap, AndroidUtilities.getPhotoSize(), AndroidUtilities.getPhotoSize(), 80, false, 101, 101); + if (entry.imagePath != null) { + new File(entry.imagePath).delete(); + } + entry.imagePath = FileLoader.getPathToAttach(size, true).toString(); + + size = ImageLoader.scaleAndSaveImage(canvasBitmap, thumbSize, thumbSize, 70, false, 101, 101); entry.thumbPath = FileLoader.getPathToAttach(size, true).toString(); + if (recycle) { + paintBitmap.recycle(); + } + canvasBitmap.recycle(); + } else if (entry.paintPath == null) { + try { + File f = new File(FileLoader.getDirectory(FileLoader.MEDIA_DIR_CACHE), SharedConfig.getLastLocalId() + "_temp.jpg"); + AndroidUtilities.copyFile(new File(entry.filterPath), f); + entry.thumbPath = f.getAbsolutePath(); + } catch (Exception e) { + FileLog.e(e); + } + if (!hasAnimatedMediaEntities()) { + if (entry.imagePath != null) { + new File(entry.imagePath).delete(); + } + try { + File f = new File(FileLoader.getDirectory(FileLoader.MEDIA_DIR_CACHE), SharedConfig.getLastLocalId() + "_temp.jpg"); + AndroidUtilities.copyFile(new File(entry.filterPath), f); + entry.imagePath = f.getAbsolutePath(); + } catch (Exception e) { + FileLog.e(e); + } + } + } else { + File f = new File(FileLoader.getDirectory(FileLoader.MEDIA_DIR_CACHE), SharedConfig.getLastLocalId() + "_temp.jpg"); + mergeThumbs(entry.thumbPath = f.getAbsolutePath(), entry.fullPaintPath, entry.paintPath.equals(entry.fullPaintPath) ? paintingOverlay.getThumb() : null, paintThumbBitmap[0] != null ? paintThumbBitmap[0] : bitmap, true); } - if (stickers != null) { - entry.stickers.addAll(stickers); + } else if (currentEditMode == 3) { + if (entry.paintPath != null) { + new File(entry.paintPath).delete(); + if (!entry.paintPath.equals(entry.fullPaintPath)) { + new File(entry.fullPaintPath).delete(); + } } - if (currentEditMode == 1) { - cropItem.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_dialogFloatingButton), PorterDuff.Mode.MULTIPLY)); - entry.isCropped = true; - } else if (currentEditMode == 2) { - tuneItem.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_dialogFloatingButton), PorterDuff.Mode.MULTIPLY)); - entry.isFiltered = true; - } else if (currentEditMode == 3) { - paintItem.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_dialogFloatingButton), PorterDuff.Mode.MULTIPLY)); - entry.isPainted = true; + entry.paintPath = currentPaintPath = FileLoader.getPathToAttach(size, true).toString(); + paintingOverlay.setEntities(entry.mediaEntities = currentMediaEntities = entities == null || entities.isEmpty() ? null : entities, isCurrentVideo, true); + entry.averageDuration = currentAverageDuration = photoPaintView.getLcm(); + if (entry.mediaEntities != null && paintThumbBitmap[0] != null) { + size = ImageLoader.scaleAndSaveImage(paintThumbBitmap[0], Bitmap.CompressFormat.PNG, AndroidUtilities.getPhotoSize(), AndroidUtilities.getPhotoSize(), 80, false, 101, 101); + entry.fullPaintPath = FileLoader.getPathToAttach(size, true).toString(); + } else { + entry.fullPaintPath = entry.paintPath; } - if (savedFilterState != null) { - entry.savedFilterState = savedFilterState; - } else if (removeSavedState) { - entry.savedFilterState = null; + paintingOverlay.setBitmap(bitmap); + + if (!hasAnimatedMediaEntities() && !isCurrentVideo) { + String path; + if (entry.filterPath != null) { + path = entry.filterPath; + } else if (entry.croppedPath != null) { + path = entry.croppedPath; + } else { + path = entry.getPath(); + } + Bitmap originalBitmap = ImageLoader.loadBitmap(path, null, AndroidUtilities.getPhotoSize(), AndroidUtilities.getPhotoSize(), true); + if (originalBitmap != null && !originalBitmap.isMutable()) { + originalBitmap = originalBitmap.copy(Bitmap.Config.ARGB_8888, true); + } + if (originalBitmap != null) { + Canvas b = new Canvas(originalBitmap); + b.drawBitmap(paintThumbBitmap[0] != null ? paintThumbBitmap[0] : bitmap, null, new Rect(0, 0, originalBitmap.getWidth(), originalBitmap.getHeight()), bitmapPaint); + size = ImageLoader.scaleAndSaveImage(originalBitmap, AndroidUtilities.getPhotoSize(), AndroidUtilities.getPhotoSize(), 80, false, 101, 101); + if (entry.imagePath != null) { + new File(entry.imagePath).delete(); + } + entry.imagePath = FileLoader.getPathToAttach(size, true).toString(); + + size = ImageLoader.scaleAndSaveImage(originalBitmap, thumbSize, thumbSize, 70, false, 101, 101); + entry.thumbPath = FileLoader.getPathToAttach(size, true).toString(); + } + } else if (entry.filterPath == null) { + if (entry.imagePath != null) { + new File(entry.imagePath).delete(); + entry.imagePath = null; + } + Bitmap originalBitmap; + if (isCurrentVideo) { + VideoEditTextureView textureView = (VideoEditTextureView) videoTextureView; + originalBitmap = SendMessagesHelper.createVideoThumbnailAtTime(entry.getPath(), (long) (videoTimelineView.getLeftProgress() * videoPlayer.getDuration() * 1000L)); + } else { + String path; + if (entry.croppedPath != null) { + path = entry.croppedPath; + } else { + path = entry.getPath(); + } + originalBitmap = ImageLoader.loadBitmap(path, null, thumbSize, thumbSize, true); + if (originalBitmap != null && !originalBitmap.isMutable()) { + originalBitmap = originalBitmap.copy(Bitmap.Config.ARGB_8888, true); + } + } + if (originalBitmap != null) { + Canvas b = new Canvas(originalBitmap); + b.drawBitmap(paintThumbBitmap[0] != null ? paintThumbBitmap[0] : bitmap, null, new Rect(0, 0, originalBitmap.getWidth(), originalBitmap.getHeight()), bitmapPaint); + size = ImageLoader.scaleAndSaveImage(originalBitmap, thumbSize, thumbSize, 70, false, 101, 101); + entry.thumbPath = FileLoader.getPathToAttach(size, true).toString(); + } + } else { + File f = new File(FileLoader.getDirectory(FileLoader.MEDIA_DIR_CACHE), SharedConfig.getLastLocalId() + "_temp.jpg"); + mergeThumbs(entry.thumbPath = f.getAbsolutePath(), entry.filterPath, null, paintThumbBitmap[0] != null ? paintThumbBitmap[0] : bitmap, false); } } + + SharedConfig.saveConfig(); + + entry.stickers = stickers; + if (savedFilterState != null) { + entry.savedFilterState = currentSavedFilterState = savedFilterState; + } + if (currentEditMode == 1) { + entry.isCropped = true; + cropItem.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_dialogFloatingButton), PorterDuff.Mode.MULTIPLY)); + } else if (currentEditMode == 2) { + entry.isFiltered = true; + tuneItem.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_dialogFloatingButton), PorterDuff.Mode.MULTIPLY)); + } else if (currentEditMode == 3) { + entry.isPainted = true; + paintItem.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_dialogFloatingButton), PorterDuff.Mode.MULTIPLY)); + } + if ((sendPhotoType == 0 || sendPhotoType == 4) && placeProvider != null) { placeProvider.updatePhotoAtIndex(currentIndex); if (!placeProvider.isPhotoChecked(currentIndex)) { @@ -4673,9 +6019,12 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat photoCropView.onDisappear(); } centerImage.setParentView(null); - centerImage.setOrientation(0, true); ignoreDidSetImage = true; - centerImage.setImageBitmap(bitmap); + if (!isCurrentVideo && currentEditMode != 3) { + centerImage.setImageBitmap(bitmap); + centerImage.setOrientation(0, true); + containerView.requestLayout(); + } ignoreDidSetImage = false; centerImage.setParentView(containerView); if (sendPhotoType == SELECT_TYPE_AVATAR) { @@ -4705,6 +6054,9 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat selectedPhotosListView.smoothScrollToPosition(num); } else { selectedPhotosAdapter.notifyItemRemoved(num); + if (num == 0) { + selectedPhotosAdapter.notifyItemChanged(0); + } } } updateSelectedCount(); @@ -4723,7 +6075,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } private void switchToEditMode(final int mode) { - if (currentEditMode == mode || centerImage.getBitmap() == null || changeModeAnimation != null || imageMoveAnimation != null || photoProgressViews[0].backgroundState != -1 || captionEditText.getTag() != null) { + if (currentEditMode == mode || (isCurrentVideo && photoProgressViews[0].backgroundState != 3) && !isCurrentVideo && (centerImage.getBitmap() == null || photoProgressViews[0].backgroundState != -1) || changeModeAnimation != null || imageMoveAnimation != null || captionEditText.getTag() != null) { return; } if (mode == 0) { // no edit mode @@ -4770,8 +6122,12 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } else if (currentEditMode == 2) { photoFilterView.shutdown(); animators.add(ObjectAnimator.ofFloat(photoFilterView.getToolsView(), View.TRANSLATION_Y, AndroidUtilities.dp(186))); + animators.add(ObjectAnimator.ofFloat(photoFilterView.getCurveControl(), View.ALPHA, 0.0f)); + animators.add(ObjectAnimator.ofFloat(photoFilterView.getBlurControl(), View.ALPHA, 0.0f)); animators.add(ObjectAnimator.ofFloat(PhotoViewer.this, AnimationProperties.PHOTO_VIEWER_ANIMATION_VALUE, 0, 1)); } else if (currentEditMode == 3) { + paintingOverlay.showAll(); + containerView.invalidate(); photoPaintView.shutdown(); animators.add(ObjectAnimator.ofFloat(photoPaintView.getToolsView(), View.TRANSLATION_Y, AndroidUtilities.dp(126))); animators.add(ObjectAnimator.ofFloat(photoPaintView.getColorPicker(), View.TRANSLATION_Y, AndroidUtilities.dp(126))); @@ -4795,7 +6151,9 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat imageMoveAnimation = null; currentEditMode = mode; applying = false; - if (sendPhotoType != SELECT_TYPE_AVATAR) { + if (sendPhotoType == SELECT_TYPE_AVATAR) { + photoCropView.setVisibility(View.VISIBLE); + } else { animateToScale = 1; animateToX = 0; animateToY = 0; @@ -4812,7 +6170,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat arrayList.add(ObjectAnimator.ofFloat(actionBar, View.TRANSLATION_Y, 0)); } if (needCaptionLayout) { - arrayList.add(ObjectAnimator.ofFloat(captionTextView, View.TRANSLATION_Y, 0)); + arrayList.add(ObjectAnimator.ofFloat(captionTextViewSwitcher, View.TRANSLATION_Y, 0)); } if (sendPhotoType == 0 || sendPhotoType == 4) { arrayList.add(ObjectAnimator.ofFloat(checkImageView, View.ALPHA, 1)); @@ -4824,6 +6182,10 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat cameraItem.setVisibility(View.VISIBLE); arrayList.add(ObjectAnimator.ofFloat(cameraItem, View.ALPHA, 1)); } + if (muteItem.getTag() != null) { + muteItem.setVisibility(View.VISIBLE); + arrayList.add(ObjectAnimator.ofFloat(muteItem, View.ALPHA, 1)); + } animatorSet.playTogether(arrayList); animatorSet.setDuration(200); animatorSet.addListener(new AnimatorListenerAdapter() { @@ -4833,7 +6195,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat pickerViewSendButton.setVisibility(View.VISIBLE); actionBar.setVisibility(View.VISIBLE); if (needCaptionLayout) { - captionTextView.setVisibility(captionTextView.getTag() != null ? View.VISIBLE : View.INVISIBLE); + captionTextViewSwitcher.setVisibility(captionTextViewSwitcher.getTag() != null ? View.VISIBLE : View.INVISIBLE); } if (sendPhotoType == 0 || sendPhotoType == 4 || (sendPhotoType == 2 || sendPhotoType == 5) && imagesArrLocals.size() > 1) { checkImageView.setVisibility(View.VISIBLE); @@ -4856,11 +6218,11 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat changeModeAnimation = new AnimatorSet(); ArrayList arrayList = new ArrayList<>(); - arrayList.add(ObjectAnimator.ofFloat(pickerView, View.TRANSLATION_Y, 0, AndroidUtilities.dp(96))); - arrayList.add(ObjectAnimator.ofFloat(pickerViewSendButton, View.TRANSLATION_Y, 0, AndroidUtilities.dp(96))); + arrayList.add(ObjectAnimator.ofFloat(pickerView, View.TRANSLATION_Y, 0, AndroidUtilities.dp(isCurrentVideo ? 154 : 96))); + arrayList.add(ObjectAnimator.ofFloat(pickerViewSendButton, View.TRANSLATION_Y, 0, AndroidUtilities.dp(isCurrentVideo ? 154 : 96))); arrayList.add(ObjectAnimator.ofFloat(actionBar, View.TRANSLATION_Y, 0, -actionBar.getHeight())); if (needCaptionLayout) { - arrayList.add(ObjectAnimator.ofFloat(captionTextView, View.TRANSLATION_Y, 0, AndroidUtilities.dp(96))); + arrayList.add(ObjectAnimator.ofFloat(captionTextViewSwitcher, View.TRANSLATION_Y, 0, AndroidUtilities.dp(isCurrentVideo ? 154 : 96))); } if (sendPhotoType == 0 || sendPhotoType == 4) { arrayList.add(ObjectAnimator.ofFloat(checkImageView, View.ALPHA, 1, 0)); @@ -4872,6 +6234,9 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat if (cameraItem.getTag() != null) { arrayList.add(ObjectAnimator.ofFloat(cameraItem, View.ALPHA, 1, 0)); } + if (muteItem.getTag() != null) { + arrayList.add(ObjectAnimator.ofFloat(muteItem, View.ALPHA, 1, 0)); + } changeModeAnimation.playTogether(arrayList); changeModeAnimation.setDuration(200); changeModeAnimation.addListener(new AnimatorListenerAdapter() { @@ -4881,6 +6246,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat pickerView.setVisibility(View.GONE); pickerViewSendButton.setVisibility(View.GONE); cameraItem.setVisibility(View.GONE); + muteItem.setVisibility(View.GONE); selectedPhotosListView.setVisibility(View.GONE); selectedPhotosListView.setAlpha(0.0f); selectedPhotosListView.setTranslationY(-AndroidUtilities.dp(10)); @@ -4888,7 +6254,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat selectedPhotosListView.setEnabled(false); isPhotosListViewVisible = false; if (needCaptionLayout) { - captionTextView.setVisibility(View.INVISIBLE); + captionTextViewSwitcher.setVisibility(View.INVISIBLE); } if (sendPhotoType == 0 || sendPhotoType == 4 || (sendPhotoType == 2 || sendPhotoType == 5) && imagesArrLocals.size() > 1) { checkImageView.setVisibility(View.GONE); @@ -4897,7 +6263,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat final Bitmap bitmap = centerImage.getBitmap(); if (bitmap != null) { - photoCropView.setBitmap(bitmap, centerImage.getOrientation(), sendPhotoType != SELECT_TYPE_AVATAR, false); + photoCropView.setBitmap(bitmap, centerImage.getOrientation(), sendPhotoType != SELECT_TYPE_AVATAR, false, paintingOverlay); photoCropView.onDisappear(); int bitmapWidth = centerImage.getBitmapWidth(); int bitmapHeight = centerImage.getBitmapHeight(); @@ -4956,6 +6322,12 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat }); changeModeAnimation.start(); } else if (mode == 2) { // filter + if (isCurrentVideo && videoPlayer != null && !videoPlayer.isPlaying()) { + if (!muteVideo) { + videoPlayer.setVolume(0); + } + toggleVideoPlayer(); + } if (photoFilterView == null) { MediaController.SavedFilterState state = null; Bitmap bitmap; @@ -4965,25 +6337,29 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat Object object = imagesArrLocals.get(currentIndex); if (object instanceof MediaController.PhotoEntry) { MediaController.PhotoEntry entry = (MediaController.PhotoEntry) object; - if (entry.imagePath == null) { - originalPath = entry.path; - state = entry.savedFilterState; - } orientation = entry.orientation; - } else if (object instanceof MediaController.SearchImage) { - MediaController.SearchImage entry = (MediaController.SearchImage) object; - state = entry.savedFilterState; - originalPath = entry.imageUrl; + } + MediaController.MediaEditState editState = (MediaController.MediaEditState) object; + state = editState.savedFilterState; + if (editState.croppedPath != null) { + originalPath = editState.croppedPath; + orientation = 0; + } else { + originalPath = editState.getPath(); } } - if (state == null) { - bitmap = centerImage.getBitmap(); - orientation = centerImage.getOrientation(); + if (videoTextureView != null) { + bitmap = null; } else { - bitmap = BitmapFactory.decodeFile(originalPath); + if (state == null) { + bitmap = centerImage.getBitmap(); + orientation = centerImage.getOrientation(); + } else { + bitmap = BitmapFactory.decodeFile(originalPath); + } } - photoFilterView = new PhotoFilterView(parentActivity, bitmap, orientation, state); + photoFilterView = new PhotoFilterView(parentActivity, videoTextureView != null ? (VideoEditTextureView) videoTextureView : null, bitmap, orientation, state, isCurrentVideo ? null : paintingOverlay); containerView.addView(photoFilterView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); photoFilterView.getDoneTextView().setOnClickListener(v -> { applyCurrentEditMode(); @@ -5009,8 +6385,8 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat changeModeAnimation = new AnimatorSet(); ArrayList arrayList = new ArrayList<>(); - arrayList.add(ObjectAnimator.ofFloat(pickerView, View.TRANSLATION_Y, 0, AndroidUtilities.dp(96))); - arrayList.add(ObjectAnimator.ofFloat(pickerViewSendButton, View.TRANSLATION_Y, 0, AndroidUtilities.dp(96))); + arrayList.add(ObjectAnimator.ofFloat(pickerView, View.TRANSLATION_Y, 0, AndroidUtilities.dp(isCurrentVideo ? 154 : 96))); + arrayList.add(ObjectAnimator.ofFloat(pickerViewSendButton, View.TRANSLATION_Y, 0, AndroidUtilities.dp(isCurrentVideo ? 154 : 96))); arrayList.add(ObjectAnimator.ofFloat(actionBar, View.TRANSLATION_Y, 0, -actionBar.getHeight())); if (sendPhotoType == 0 || sendPhotoType == 4) { arrayList.add(ObjectAnimator.ofFloat(checkImageView, View.ALPHA, 1, 0)); @@ -5024,6 +6400,9 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat if (cameraItem.getTag() != null) { arrayList.add(ObjectAnimator.ofFloat(cameraItem, View.ALPHA, 1, 0)); } + if (muteItem.getTag() != null) { + arrayList.add(ObjectAnimator.ofFloat(muteItem, View.ALPHA, 1, 0)); + } changeModeAnimation.playTogether(arrayList); changeModeAnimation.setDuration(200); changeModeAnimation.addListener(new AnimatorListenerAdapter() { @@ -5034,6 +6413,10 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat pickerViewSendButton.setVisibility(View.GONE); actionBar.setVisibility(View.GONE); cameraItem.setVisibility(View.GONE); + muteItem.setVisibility(View.GONE); + if (photoCropView != null) { + photoCropView.setVisibility(View.INVISIBLE); + } selectedPhotosListView.setVisibility(View.GONE); selectedPhotosListView.setAlpha(0.0f); selectedPhotosListView.setTranslationY(-AndroidUtilities.dp(10)); @@ -5041,7 +6424,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat selectedPhotosListView.setEnabled(false); isPhotosListViewVisible = false; if (needCaptionLayout) { - captionTextView.setVisibility(View.INVISIBLE); + captionTextViewSwitcher.setVisibility(View.INVISIBLE); } if (sendPhotoType == 0 || sendPhotoType == 4 || (sendPhotoType == 2 || sendPhotoType == 5) && imagesArrLocals.size() > 1) { checkImageView.setVisibility(View.GONE); @@ -5101,8 +6484,43 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat }); changeModeAnimation.start(); } else if (mode == 3) { + if (isCurrentVideo && videoPlayer != null && !videoPlayer.isPlaying()) { + if (!muteVideo) { + videoPlayer.setVolume(0); + } + toggleVideoPlayer(); + } if (photoPaintView == null) { - photoPaintView = new PhotoPaintView(parentActivity, centerImage.getBitmap(), centerImage.getOrientation()); + int w; + int h; + if (videoTextureView != null) { + VideoEditTextureView textureView = (VideoEditTextureView) videoTextureView; + w = textureView.getVideoWidth(); + h = textureView.getVideoHeight(); + while (w > 1280 || h > 1280) { + w /= 2; + h /= 2; + } + } else { + w = centerImage.getBitmapWidth(); + h = centerImage.getBitmapHeight(); + } + Bitmap bitmap = paintingOverlay.getBitmap(); + if (bitmap == null) { + bitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888); + } + photoPaintView = new PhotoPaintView(parentActivity, bitmap, isCurrentVideo ? null : centerImage.getBitmap(), centerImage.getOrientation(), currentMediaEntities, () -> paintingOverlay.hideBitmap()) { + @Override + protected void onOpenCloseStickersAlert(boolean open) { + if (videoPlayer != null) { + if (open) { + videoPlayer.pause(); + } else { + videoPlayer.play(); + } + } + } + }; containerView.addView(photoPaintView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); photoPaintView.getDoneTextView().setOnClickListener(v -> { applyCurrentEditMode(); @@ -5115,12 +6533,12 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat changeModeAnimation = new AnimatorSet(); ArrayList arrayList = new ArrayList<>(); - arrayList.add(ObjectAnimator.ofFloat(pickerView, View.TRANSLATION_Y, 0, AndroidUtilities.dp(96))); - arrayList.add(ObjectAnimator.ofFloat(pickerViewSendButton, View.TRANSLATION_Y, 0, AndroidUtilities.dp(96))); + arrayList.add(ObjectAnimator.ofFloat(pickerView, View.TRANSLATION_Y, 0, AndroidUtilities.dp(isCurrentVideo ? 154 : 96))); + arrayList.add(ObjectAnimator.ofFloat(pickerViewSendButton, View.TRANSLATION_Y, 0, AndroidUtilities.dp(isCurrentVideo ? 154 : 96))); arrayList.add(ObjectAnimator.ofFloat(actionBar, View.TRANSLATION_Y, 0, -actionBar.getHeight())); if (needCaptionLayout) { - arrayList.add(ObjectAnimator.ofFloat(captionTextView, View.TRANSLATION_Y, 0, AndroidUtilities.dp(96))); + arrayList.add(ObjectAnimator.ofFloat(captionTextViewSwitcher, View.TRANSLATION_Y, 0, AndroidUtilities.dp(isCurrentVideo ? 154 : 96))); } if (sendPhotoType == 0 || sendPhotoType == 4) { arrayList.add(ObjectAnimator.ofFloat(checkImageView, View.ALPHA, 1, 0)); @@ -5134,6 +6552,9 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat if (cameraItem.getTag() != null) { arrayList.add(ObjectAnimator.ofFloat(cameraItem, View.ALPHA, 1, 0)); } + if (muteItem.getTag() != null) { + arrayList.add(ObjectAnimator.ofFloat(muteItem, View.ALPHA, 1, 0)); + } changeModeAnimation.playTogether(arrayList); changeModeAnimation.setDuration(200); changeModeAnimation.addListener(new AnimatorListenerAdapter() { @@ -5143,6 +6564,10 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat pickerView.setVisibility(View.GONE); pickerViewSendButton.setVisibility(View.GONE); cameraItem.setVisibility(View.GONE); + muteItem.setVisibility(View.GONE); + if (photoCropView != null) { + photoCropView.setVisibility(View.INVISIBLE); + } selectedPhotosListView.setVisibility(View.GONE); selectedPhotosListView.setAlpha(0.0f); selectedPhotosListView.setTranslationY(-AndroidUtilities.dp(10)); @@ -5150,7 +6575,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat selectedPhotosListView.setEnabled(false); isPhotosListViewVisible = false; if (needCaptionLayout) { - captionTextView.setVisibility(View.INVISIBLE); + captionTextViewSwitcher.setVisibility(View.INVISIBLE); } if (sendPhotoType == 0 || sendPhotoType == 4 || (sendPhotoType == 2 || sendPhotoType == 5) && imagesArrLocals.size() > 1) { checkImageView.setVisibility(View.GONE); @@ -5192,6 +6617,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat @Override public void onAnimationEnd(Animator animation) { photoPaintView.init(); + paintingOverlay.hideEntities(); imageMoveAnimation = null; currentEditMode = mode; animateToScale = 1; @@ -5216,14 +6642,16 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat private void toggleCheckImageView(boolean show) { AnimatorSet animatorSet = new AnimatorSet(); ArrayList arrayList = new ArrayList<>(); + final float offsetY = AndroidUtilities.dpf2(24); arrayList.add(ObjectAnimator.ofFloat(pickerView, View.ALPHA, show ? 1.0f : 0.0f)); + arrayList.add(ObjectAnimator.ofFloat(pickerView, View.TRANSLATION_Y, show ? 0.0f : offsetY)); arrayList.add(ObjectAnimator.ofFloat(pickerViewSendButton, View.ALPHA, show ? 1.0f : 0.0f)); - if (needCaptionLayout) { - arrayList.add(ObjectAnimator.ofFloat(captionTextView, View.ALPHA, show ? 1.0f : 0.0f)); - } + arrayList.add(ObjectAnimator.ofFloat(pickerViewSendButton, View.TRANSLATION_Y, show ? 0.0f : offsetY)); if (sendPhotoType == 0 || sendPhotoType == 4) { arrayList.add(ObjectAnimator.ofFloat(checkImageView, View.ALPHA, show ? 1.0f : 0.0f)); + arrayList.add(ObjectAnimator.ofFloat(checkImageView, View.TRANSLATION_Y, show ? 0.0f : -offsetY)); arrayList.add(ObjectAnimator.ofFloat(photosCounterView, View.ALPHA, show ? 1.0f : 0.0f)); + arrayList.add(ObjectAnimator.ofFloat(photosCounterView, View.TRANSLATION_Y, show ? 0.0f : -offsetY)); } animatorSet.playTogether(arrayList); animatorSet.setDuration(200); @@ -5259,6 +6687,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } private void toggleMiniProgress(final boolean show, final boolean animated) { + AndroidUtilities.cancelRunOnUIThread(miniProgressShowRunnable); if (animated) { toggleMiniProgressInternal(show); if (show) { @@ -5266,7 +6695,6 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat miniProgressAnimator.cancel(); miniProgressAnimator = null; } - AndroidUtilities.cancelRunOnUIThread(miniProgressShowRunnable); if (firstAnimationDelay) { firstAnimationDelay = false; toggleMiniProgressInternal(true); @@ -5274,7 +6702,6 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat AndroidUtilities.runOnUIThread(miniProgressShowRunnable, 500); } } else { - AndroidUtilities.cancelRunOnUIThread(miniProgressShowRunnable); if (miniProgressAnimator != null) { miniProgressAnimator.cancel(); toggleMiniProgressInternal(false); @@ -5290,6 +6717,19 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } } + private void updateContainerFlags(boolean actionBarVisible) { + if (Build.VERSION.SDK_INT >= 21 && sendPhotoType != SELECT_TYPE_AVATAR && containerView != null) { + int flags = View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION; + if (!actionBarVisible) { + flags |= View.SYSTEM_UI_FLAG_FULLSCREEN; + if (containerView.getPaddingLeft() > 0 || containerView.getPaddingRight() > 0) { + flags |= View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY; + } + } + containerView.setSystemUiVisibility(flags); + } + } + private void toggleActionBar(final boolean show, final boolean animated) { if (actionBarAnimator != null) { actionBarAnimator.cancel(); @@ -5299,32 +6739,50 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat if (bottomLayout.getTag() != null) { bottomLayout.setVisibility(View.VISIBLE); } - if (captionTextView.getTag() != null) { - captionTextView.setVisibility(View.VISIBLE); + if (captionTextViewSwitcher.getTag() != null) { + captionTextViewSwitcher.setVisibility(View.VISIBLE); if (videoPreviewFrame != null) { videoPreviewFrame.requestLayout(); } } } isActionBarVisible = show; - if (Build.VERSION.SDK_INT >= 21 && sendPhotoType != SELECT_TYPE_AVATAR) { - int flags = View.SYSTEM_UI_FLAG_FULLSCREEN | (containerView.getPaddingLeft() > 0 || containerView.getPaddingRight() > 0 ? (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY) : 0); - if (show) { - containerView.setSystemUiVisibility(containerView.getSystemUiVisibility() & ~flags); - } else { - containerView.setSystemUiVisibility(containerView.getSystemUiVisibility() | flags); - } + updateContainerFlags(show); + + if (videoPlayerControlVisible && isPlaying && show) { + AndroidUtilities.runOnUIThread(hideActionBarRunnable, 3000); + } else { + AndroidUtilities.cancelRunOnUIThread(hideActionBarRunnable); } + final float offsetY = AndroidUtilities.dpf2(24); + if (animated) { ArrayList arrayList = new ArrayList<>(); arrayList.add(ObjectAnimator.ofFloat(actionBar, View.ALPHA, show ? 1.0f : 0.0f)); + arrayList.add(ObjectAnimator.ofFloat(actionBar, View.TRANSLATION_Y, show ? 0 : -offsetY)); if (bottomLayout != null) { arrayList.add(ObjectAnimator.ofFloat(bottomLayout, View.ALPHA, show ? 1.0f : 0.0f)); + arrayList.add(ObjectAnimator.ofFloat(bottomLayout, View.TRANSLATION_Y, show ? 0 : offsetY)); + } + if (videoPlayerControlVisible) { + arrayList.add(ObjectAnimator.ofFloat(videoPlayerControlFrameLayout, VPC_PROGRESS, show ? 1.0f : 0.0f)); + } else { + videoPlayerControlFrameLayout.setProgress(show ? 1.0f : 0.0f); } arrayList.add(ObjectAnimator.ofFloat(groupedPhotosListView, View.ALPHA, show ? 1.0f : 0.0f)); - if (captionTextView.getTag() != null) { - arrayList.add(ObjectAnimator.ofFloat(captionTextView, View.ALPHA, show ? 1.0f : 0.0f)); + arrayList.add(ObjectAnimator.ofFloat(groupedPhotosListView, View.TRANSLATION_Y, show ? 0 : offsetY)); + if (!needCaptionLayout && captionScrollView != null) { + arrayList.add(ObjectAnimator.ofFloat(captionScrollView, View.ALPHA, show ? 1.0f : 0.0f)); + arrayList.add(ObjectAnimator.ofFloat(captionScrollView, View.TRANSLATION_Y, show ? 0 : offsetY)); + } + if (videoPlayerControlVisible && isPlaying) { + final ValueAnimator anim = ValueAnimator.ofFloat(photoProgressViews[0].animAlphas[1], show ? 1.0f : 0.0f); + anim.addUpdateListener(a -> photoProgressViews[0].setIndexedAlpha(1, (float) a.getAnimatedValue(), false)); + arrayList.add(anim); + } + if (muteItem.getTag() != null) { + arrayList.add(ObjectAnimator.ofFloat(muteItem, View.ALPHA, show ? 1.0f : 0.0f)); } actionBarAnimator = new AnimatorSet(); actionBarAnimator.playTogether(arrayList); @@ -5338,8 +6796,8 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat if (bottomLayout.getTag() != null) { bottomLayout.setVisibility(View.INVISIBLE); } - if (captionTextView.getTag() != null) { - captionTextView.setVisibility(View.INVISIBLE); + if (captionTextViewSwitcher.getTag() != null) { + captionTextViewSwitcher.setVisibility(View.INVISIBLE); } } actionBarAnimator = null; @@ -5356,9 +6814,22 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat actionBarAnimator.start(); } else { actionBar.setAlpha(show ? 1.0f : 0.0f); + actionBar.setTranslationY(show ? 0 : -offsetY); bottomLayout.setAlpha(show ? 1.0f : 0.0f); + bottomLayout.setTranslationY(show ? 0 : offsetY); groupedPhotosListView.setAlpha(show ? 1.0f : 0.0f); - captionTextView.setAlpha(show ? 1.0f : 0.0f); + groupedPhotosListView.setTranslationY(show ? 0 : offsetY); + if (!needCaptionLayout && captionScrollView != null) { + captionScrollView.setAlpha(show ? 1.0f : 0.0f); + captionScrollView.setTranslationY(show ? 0 : offsetY); + } + videoPlayerControlFrameLayout.setProgress(show ? 1.0f : 0.0f); + if (muteItem.getTag() != null) { + muteItem.setAlpha(show ? 1.0f : 0.0f); + } + if (videoPlayerControlVisible && isPlaying) { + photoProgressViews[0].setIndexedAlpha(1, show ? 1f : 0f, false); + } } } @@ -5402,6 +6873,29 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } } + private void toggleVideoPlayer() { + if (videoPlayer == null) { + return; + } + AndroidUtilities.cancelRunOnUIThread(hideActionBarRunnable); + if (isPlaying) { + videoPlayer.pause(); + } else { + if (isCurrentVideo) { + if (Math.abs(videoTimelineView.getProgress() - 1.0f) < 0.01f || videoPlayer.getCurrentPosition() == videoPlayer.getDuration()) { + videoPlayer.seekTo((int) (videoTimelineView.getLeftProgress() * videoPlayer.getDuration())); + } + } else { + if (Math.abs(videoPlayerSeekbar.getProgress() - 1.0f) < 0.01f || videoPlayer.getCurrentPosition() == videoPlayer.getDuration()) { + videoPlayer.seekTo(0); + } + AndroidUtilities.runOnUIThread(hideActionBarRunnable, 1000); + } + videoPlayer.play(); + } + containerView.invalidate(); + } + private String getFileName(int index) { if (index < 0) { return null; @@ -5615,6 +7109,32 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } } + private void setItemVisible(View itemView, boolean visible, boolean animate) { + setItemVisible(itemView, visible, animate, 1.0f); + } + + private void setItemVisible(View itemView, boolean visible, boolean animate, float maxAlpha) { + Boolean visibleNow = actionBarItemsVisibility.get(itemView); + if (visibleNow == null || visibleNow != visible) { + actionBarItemsVisibility.put(itemView, visible); + itemView.animate().cancel(); + final float alpha = (visible ? 1f : 0f) * maxAlpha; + if (animate && visibleNow != null) { + if (visible) { + itemView.setVisibility(View.VISIBLE); + } + itemView.animate().alpha(alpha).setDuration(100).setInterpolator(new LinearInterpolator()).withEndAction(() -> { + if (!visible) { + itemView.setVisibility(View.GONE); + } + }).start(); + } else { + itemView.setVisibility(visible ? View.VISIBLE : View.GONE); + itemView.setAlpha(alpha); + } + } + } + private void onPhotoShow(final MessageObject messageObject, final TLRPC.FileLocation fileLocation, ImageLocation imageLocation, final ArrayList messages, final ArrayList documents, final ArrayList photos, int index, final PlaceProviderObject object) { classGuid = ConnectionsManager.generateClassGuid(); currentMessageObject = null; @@ -5639,6 +7159,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat opennedFromMedia = false; needCaptionLayout = false; containerView.setTag(1); + playerAutoStarted = false; isCurrentVideo = false; imagesArr.clear(); imagesArrLocations.clear(); @@ -5661,14 +7182,14 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat sharedMediaType = MediaDataController.MEDIA_PHOTOVIDEO; allMediaItem.setText(LocaleController.getString("ShowAllMedia", R.string.ShowAllMedia)); menuItem.setVisibility(View.VISIBLE); - sendItem.setVisibility(View.GONE); - pipItem.setVisibility(View.GONE); + setItemVisible(sendItem, false, false); + setItemVisible(pipItem, false, true); cameraItem.setVisibility(View.GONE); cameraItem.setTag(null); bottomLayout.setVisibility(View.VISIBLE); bottomLayout.setTag(1); bottomLayout.setTranslationY(0); - captionTextView.setTranslationY(0); + captionTextViewSwitcher.setTranslationY(0); shareButton.setVisibility(View.GONE); if (qualityChooseView != null) { qualityChooseView.setVisibility(View.INVISIBLE); @@ -5689,12 +7210,15 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat menuItem.hideSubItem(gallery_menu_share); menuItem.hideSubItem(gallery_menu_openin); menuItem.hideSubItem(gallery_menu_savegif); + menuItem.hideSubItem(gallery_menu_masks2); actionBar.setTranslationY(0); checkImageView.setAlpha(1.0f); + checkImageView.setTranslationY(0.0f); checkImageView.setVisibility(View.GONE); actionBar.setTitleRightMargin(0); photosCounterView.setAlpha(1.0f); + photosCounterView.setTranslationY(0.0f); photosCounterView.setVisibility(View.GONE); pickerView.setVisibility(View.GONE); @@ -5705,8 +7229,10 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat pickerView.setTranslationY(0); paintItem.setVisibility(View.GONE); + paintItem.setTag(null); cropItem.setVisibility(View.GONE); tuneItem.setVisibility(View.GONE); + tuneItem.setTag(null); timeItem.setVisibility(View.GONE); rotateItem.setVisibility(View.GONE); @@ -5718,13 +7244,14 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat captionEditText.setVisibility(View.GONE); mentionListView.setVisibility(View.GONE); muteItem.setVisibility(View.GONE); + muteItem.setTag(null); actionBar.setSubtitle(null); - masksItem.setVisibility(View.GONE); + setItemVisible(masksItem, false, true); muteVideo = false; - muteItem.setImageResource(R.drawable.volume_on); + muteItem.setImageResource(R.drawable.video_send_unmute); editorDoneLayout.setVisibility(View.GONE); - captionTextView.setTag(null); - captionTextView.setVisibility(View.INVISIBLE); + captionTextViewSwitcher.setTag(null); + captionTextViewSwitcher.setVisibility(View.INVISIBLE); if (photoCropView != null) { photoCropView.setVisibility(View.GONE); } @@ -5734,7 +7261,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat for (int a = 0; a < 3; a++) { if (photoProgressViews[a] != null) { - photoProgressViews[a].setBackgroundState(-1, false); + photoProgressViews[a].setBackgroundState(PROGRESS_NONE, false); } } @@ -5767,7 +7294,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat if (idx < 0) { idx = 0; } - setImageIndex(idx, true); + setImageIndex(idx); } } } @@ -5785,19 +7312,21 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat needSearchImageInArr = false; } else if (currentAnimation != null) { needSearchImageInArr = false; - sendItem.setVisibility(View.VISIBLE); + if (messageObject.canForwardMessage()) { + setItemVisible(sendItem, true, false); + } } else if (!messageObject.scheduled && !(messageObject.messageOwner.media instanceof TLRPC.TL_messageMediaInvoice) && !(messageObject.messageOwner.media instanceof TLRPC.TL_messageMediaWebPage) && (messageObject.messageOwner.action == null || messageObject.messageOwner.action instanceof TLRPC.TL_messageActionEmpty)) { needSearchImageInArr = true; imagesByIds[0].put(messageObject.getId(), messageObject); menuItem.showSubItem(gallery_menu_showinchat); menuItem.showSubItem(gallery_menu_showall); - sendItem.setVisibility(View.VISIBLE); + setItemVisible(sendItem, true, false); } - setImageIndex(0, true); + setImageIndex(0); } } else if (documents != null) { secureDocuments.addAll(documents); - setImageIndex(index, true); + setImageIndex(index); } else if (fileLocation != null) { avatarsDialogId = object.dialogId; if (imageLocation == null) { @@ -5816,7 +7345,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat currentUserAvatarLocation = imageLocation; imagesArrLocationsSizes.add(object.size); avatarsArr.add(new TLRPC.TL_photoEmpty()); - shareButton.setVisibility(videoPlayerControlFrameLayout.getVisibility() != View.VISIBLE ? View.VISIBLE : View.GONE); + shareButton.setVisibility(!videoPlayerControlVisible ? View.VISIBLE : View.GONE); allowShare = true; menuItem.hideSubItem(gallery_menu_showall); if (shareButton.getVisibility() == View.VISIBLE) { @@ -5824,7 +7353,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } else { menuItem.showSubItem(gallery_menu_share); } - setImageIndex(0, true); + setImageIndex(0); } else if (messages != null) { imagesArr.addAll(messages); for (int a = 0; a < imagesArr.size(); a++) { @@ -5835,7 +7364,9 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat if (!openingObject.scheduled) { opennedFromMedia = true; menuItem.showSubItem(gallery_menu_showinchat); - sendItem.setVisibility(View.VISIBLE); + if (openingObject.canForwardMessage()) { + setItemVisible(sendItem, true, false); + } if (openingObject.canPreviewDocument()) { sharedMediaType = MediaDataController.MEDIA_FILE; allMediaItem.setText(LocaleController.getString("ShowAllFiles", R.string.ShowAllFiles)); @@ -5846,7 +7377,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } else { totalImagesCount = imagesArr.size(); } - setImageIndex(index, true); + setImageIndex(index); } else if (photos != null) { if (sendPhotoType == 0 || sendPhotoType == 4 || (sendPhotoType == 2 || sendPhotoType == 5) && photos.size() > 1) { checkImageView.setVisibility(View.VISIBLE); @@ -5908,13 +7439,13 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat bottomLayout.setVisibility(View.GONE); bottomLayout.setTag(null); containerView.setTag(null); - setImageIndex(index, true); + setImageIndex(index); if (sendPhotoType == SELECT_TYPE_AVATAR) { paintItem.setVisibility(View.VISIBLE); tuneItem.setVisibility(View.VISIBLE); } else if (sendPhotoType != 4 && sendPhotoType != 5) { - paintItem.setVisibility(cropItem.getVisibility()); - tuneItem.setVisibility(cropItem.getVisibility()); + paintItem.setVisibility(paintItem.getTag() != null ? View.VISIBLE : View.GONE); + tuneItem.setVisibility(tuneItem.getTag() != null ? View.VISIBLE : View.GONE); } else { paintItem.setVisibility(View.GONE); tuneItem.setVisibility(View.GONE); @@ -5933,6 +7464,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } } if (currentMessageObject != null && currentMessageObject.isVideo() || currentBotInlineResult != null && (currentBotInlineResult.type.equals("video") || MessageObject.isVideoDocument(currentBotInlineResult.document))) { + playerAutoStarted = true; onActionClick(false); } else if (!imagesArrLocals.isEmpty()) { Object entry = imagesArrLocals.get(index); @@ -5942,10 +7474,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat if (entry instanceof TLRPC.BotInlineResult) { allowTimeItem = false; } else if (entry instanceof MediaController.PhotoEntry) { - MediaController.PhotoEntry photoEntry = ((MediaController.PhotoEntry) entry); - if (photoEntry.isVideo) { - preparePlayer(Uri.fromFile(new File(photoEntry.path)), false, false); - } + } else if (allowTimeItem && entry instanceof MediaController.SearchImage) { allowTimeItem = ((MediaController.SearchImage) entry).type == 0; } @@ -5972,7 +7501,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } } - private void setIsAboutToSwitchToIndex(int index, boolean init) { + private void setIsAboutToSwitchToIndex(int index, boolean init, boolean animateCaption) { if (!init && switchingToIndex == index) { return; } @@ -5992,16 +7521,15 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat isVideo = newMessageObject.isVideo(); boolean isInvoice = newMessageObject.isInvoice(); if (isInvoice) { - masksItem.setVisibility(View.GONE); + setItemVisible(masksItem, false, true); menuItem.hideSubItem(gallery_menu_delete); menuItem.hideSubItem(gallery_menu_openin); caption = newMessageObject.messageOwner.media.description; allowShare = false; bottomLayout.setTranslationY(AndroidUtilities.dp(48)); - captionTextView.setTranslationY(AndroidUtilities.dp(48)); + captionTextViewSwitcher.setTranslationY(AndroidUtilities.dp(48)); } else { - masksItem.setVisibility(newMessageObject.hasPhotoStickers() && (int) newMessageObject.getDialogId() != 0 ? View.VISIBLE : View.GONE); - if (newMessageObject.isNewGif()) { + if (newMessageObject.isNewGif() && ((int) currentDialogId) != 0) { menuItem.showSubItem(gallery_menu_savegif); } if (newMessageObject.canDeleteMessage(parentChatActivity != null && parentChatActivity.isInScheduleMode(), null) && slideshowMessageId == 0) { @@ -6011,52 +7539,67 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } if (isVideo) { menuItem.showSubItem(gallery_menu_openin); - if (pipItem.getVisibility() != View.VISIBLE) { - pipItem.setVisibility(View.VISIBLE); + final boolean masksItemVisible = masksItem.getVisibility() == View.VISIBLE; + if (masksItemVisible) { + setItemVisible(masksItem, false, false); } if (!pipAvailable) { pipItem.setEnabled(false); - pipItem.setAlpha(0.5f); + setItemVisible(pipItem, true, !masksItemVisible, 0.5f); + } else { + setItemVisible(pipItem, true, !masksItemVisible); + } + if (newMessageObject.hasAttachedStickers() && (int) newMessageObject.getDialogId() != 0) { + menuItem.showSubItem(gallery_menu_masks2); + } else { + menuItem.hideSubItem(gallery_menu_masks2); } } else { menuItem.hideSubItem(gallery_menu_openin); - if (pipItem.getVisibility() != View.GONE) { - pipItem.setVisibility(View.GONE); + final boolean pipItemVisible = pipItem.getVisibility() == View.VISIBLE; + final boolean shouldMasksItemBeVisible = newMessageObject.hasAttachedStickers() && (int) newMessageObject.getDialogId() != 0; + if (pipItemVisible) { + setItemVisible(pipItem, false, !shouldMasksItemBeVisible); } + setItemVisible(masksItem, shouldMasksItemBeVisible, !pipItemVisible); } - if (nameOverride != null) { - nameTextView.setText(nameOverride); - } else { - if (newMessageObject.isFromUser()) { - TLRPC.User user = MessagesController.getInstance(currentAccount).getUser(newMessageObject.messageOwner.from_id); - if (user != null) { - nameTextView.setText(UserObject.getUserName(user)); - } else { - nameTextView.setText(""); - } + final boolean shouldAutoPlayed = shouldMessageObjectAutoPlayed(newMessageObject); + if (!shouldAutoPlayed) { + final boolean animated = !playerWasPlaying; + if (nameOverride != null) { + nameTextView.setText(nameOverride); } else { - TLRPC.Chat chat = MessagesController.getInstance(currentAccount).getChat(newMessageObject.messageOwner.to_id.channel_id); - if (ChatObject.isChannel(chat) && chat.megagroup && newMessageObject.isForwardedChannelPost()) { - chat = MessagesController.getInstance(currentAccount).getChat(newMessageObject.messageOwner.fwd_from.channel_id); - } - if (chat != null) { - nameTextView.setText(chat.title); + if (newMessageObject.isFromUser()) { + TLRPC.User user = MessagesController.getInstance(currentAccount).getUser(newMessageObject.messageOwner.from_id); + if (user != null) { + nameTextView.setText(UserObject.getUserName(user), animated); + } else { + nameTextView.setText("", animated); + } } else { - nameTextView.setText(""); + TLRPC.Chat chat = MessagesController.getInstance(currentAccount).getChat(newMessageObject.messageOwner.to_id.channel_id); + if (ChatObject.isChannel(chat) && chat.megagroup && newMessageObject.isForwardedChannelPost()) { + chat = MessagesController.getInstance(currentAccount).getChat(newMessageObject.messageOwner.fwd_from.channel_id); + } + if (chat != null) { + nameTextView.setText(chat.title, animated); + } else { + nameTextView.setText("", animated); + } } } - } - long date; - if (dateOverride != 0) { - date = (long) dateOverride * 1000; - } else { - date = (long) newMessageObject.messageOwner.date * 1000; - } - String dateString = LocaleController.formatString("formatDateAtTime", R.string.formatDateAtTime, LocaleController.getInstance().formatterYear.format(new Date(date)), LocaleController.getInstance().formatterDay.format(new Date(date))); - if (newFileName != null && isVideo) { - dateTextView.setText(String.format("%s (%s)", dateString, AndroidUtilities.formatFileSize(newMessageObject.getDocument().size))); - } else { - dateTextView.setText(dateString); + long date; + if (dateOverride != 0) { + date = (long) dateOverride * 1000; + } else { + date = (long) newMessageObject.messageOwner.date * 1000; + } + String dateString = LocaleController.formatString("formatDateAtTime", R.string.formatDateAtTime, LocaleController.getInstance().formatterYear.format(new Date(date)), LocaleController.getInstance().formatterDay.format(new Date(date))); + if (newFileName != null && isVideo) { + dateTextView.setText(String.format("%s (%s)", dateString, AndroidUtilities.formatFileSize(newMessageObject.getDocument().size)), animated); + } else { + dateTextView.setText(dateString, animated); + } } caption = newMessageObject.caption; } @@ -6083,7 +7626,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } } - MediaDataController.getInstance(currentAccount).loadMedia(loadIndex == 0 ? currentDialogId : mergeDialogId, 80, loadFromMaxId, sharedMediaType, 1, classGuid); + MediaDataController.getInstance(currentAccount).loadMedia(loadIndex == 0 ? currentDialogId : mergeDialogId, 40, loadFromMaxId, sharedMediaType, 1, classGuid); loadingMoreImages = true; } actionBar.setTitle(LocaleController.formatString("Of", R.string.Of, switchingToIndex + 1, totalImagesCount + totalImagesCountMerge)); @@ -6119,7 +7662,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat actionBar.setTitle(LocaleController.getString("AttachDocument", R.string.AttachDocument)); } if ((int) currentDialogId == 0) { - sendItem.setVisibility(View.GONE); + setItemVisible(sendItem, false, false); } if (newMessageObject.messageOwner.ttl != 0 && newMessageObject.messageOwner.ttl < 60 * 60) { allowShare = false; @@ -6129,7 +7672,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } else { allowShare = true; menuItem.showSubItem(gallery_menu_save); - shareButton.setVisibility(videoPlayerControlFrameLayout.getVisibility() != View.VISIBLE ? View.VISIBLE : View.GONE); + shareButton.setVisibility(!videoPlayerControlVisible ? View.VISIBLE : View.GONE); if (shareButton.getVisibility() == View.VISIBLE) { menuItem.hideSubItem(gallery_menu_share); } else { @@ -6162,7 +7705,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } menuItem.showSubItem(gallery_menu_save); allowShare = true; - shareButton.setVisibility(videoPlayerControlFrameLayout.getVisibility() != View.VISIBLE ? View.VISIBLE : View.GONE); + shareButton.setVisibility(!videoPlayerControlVisible ? View.VISIBLE : View.GONE); if (shareButton.getVisibility() == View.VISIBLE) { menuItem.hideSubItem(gallery_menu_share); } else { @@ -6186,20 +7729,22 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat isVideo = botInlineResult.type.equals("video"); } } else { - String pathObject = null; boolean isAnimation = false; if (object instanceof MediaController.PhotoEntry) { MediaController.PhotoEntry photoEntry = ((MediaController.PhotoEntry) object); - pathObject = photoEntry.path; + currentPathObject = photoEntry.path; isVideo = photoEntry.isVideo; } else if (object instanceof MediaController.SearchImage) { MediaController.SearchImage searchImage = (MediaController.SearchImage) object; - pathObject = searchImage.getPathToAttach(); + currentPathObject = searchImage.getPathToAttach(); if (searchImage.type == 1) { isAnimation = true; } } if (isVideo) { + if (!isCurrentVideo) { + animateCaption = false; + } isCurrentVideo = true; updateAccessibilityOverlayVisibility(); boolean isMuted = false; @@ -6213,38 +7758,59 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat end = photoEntry.editedInfo.end; } } - processOpenVideo(pathObject, isMuted, start, end); + processOpenVideo(currentPathObject, isMuted, start, end); if (isDocumentsPicker) { videoTimelineView.setVisibility(View.GONE); muteItem.setVisibility(View.GONE); + muteItem.setTag(null); compressItem.setVisibility(View.GONE); } else { videoTimelineView.setVisibility(View.VISIBLE); muteItem.setVisibility(View.VISIBLE); + muteItem.setTag(1); compressItem.setVisibility(View.VISIBLE); } - paintItem.setVisibility(View.GONE); cropItem.setVisibility(View.GONE); - tuneItem.setVisibility(View.GONE); + if (isDocumentsPicker || Build.VERSION.SDK_INT < 18) { + tuneItem.setVisibility(View.GONE); + tuneItem.setTag(null); + paintItem.setVisibility(View.GONE); + paintItem.setTag(null); + } else { + tuneItem.setVisibility(View.VISIBLE); + tuneItem.setTag(1); + paintItem.setVisibility(View.VISIBLE); + paintItem.setTag(1); + } rotateItem.setVisibility(View.GONE); } else { videoTimelineView.setVisibility(View.GONE); muteItem.setVisibility(View.GONE); + muteItem.setTag(null); + if (isCurrentVideo) { + animateCaption = false; + } isCurrentVideo = false; updateAccessibilityOverlayVisibility(); compressItem.setVisibility(View.GONE); if (isAnimation || sendPhotoType == SELECT_TYPE_QR || isDocumentsPicker) { paintItem.setVisibility(View.GONE); + paintItem.setTag(null); cropItem.setVisibility(View.GONE); rotateItem.setVisibility(View.GONE); tuneItem.setVisibility(View.GONE); + tuneItem.setTag(null); } else { if (sendPhotoType == 4 || sendPhotoType == 5) { paintItem.setVisibility(View.GONE); + paintItem.setTag(null); tuneItem.setVisibility(View.GONE); + tuneItem.setTag(null); } else { paintItem.setVisibility(View.VISIBLE); + paintItem.setTag(1); tuneItem.setVisibility(View.VISIBLE); + tuneItem.setTag(1); } cropItem.setVisibility(sendPhotoType != SELECT_TYPE_AVATAR ? View.VISIBLE : View.GONE); rotateItem.setVisibility(sendPhotoType != SELECT_TYPE_AVATAR ? View.GONE : View.VISIBLE); @@ -6307,7 +7873,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat cropItem.setColorFilter(isCropped ? filter : null); tuneItem.setColorFilter(isFiltered ? filter : null); } - setCurrentCaption(newMessageObject, caption, !init); + setCurrentCaption(newMessageObject, caption, animateCaption); } private TLRPC.FileLocation getFileLocation(ImageLocation location) { @@ -6317,7 +7883,11 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat return location.location; } - private void setImageIndex(int index, boolean init) { + private void setImageIndex(int index) { + setImageIndex(index, true, false); + } + + private void setImageIndex(int index, boolean init, boolean animateCaption) { if (currentIndex == index || placeProvider == null) { return; } @@ -6335,11 +7905,14 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat int prevIndex = currentIndex; currentIndex = index; - setIsAboutToSwitchToIndex(currentIndex, init); + setIsAboutToSwitchToIndex(currentIndex, init, animateCaption); boolean isVideo = false; boolean sameImage = false; Uri videoPath = null; + MediaController.SavedFilterState savedFilterState = null; + currentPaintPath = null; + currentMediaEntities = null; if (!imagesArr.isEmpty()) { if (currentIndex < 0 || currentIndex >= imagesArr.size()) { @@ -6403,6 +7976,10 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat return; } isVideo = entry.isVideo; + savedFilterState = entry.savedFilterState; + currentPaintPath = entry.paintPath; + currentAverageDuration = entry.averageDuration; + currentMediaEntities = entry.mediaEntities; File file = new File(entry.path); videoPath = Uri.fromFile(file); if (isDocumentsPicker) { @@ -6432,6 +8009,20 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } else if (object instanceof MediaController.SearchImage) { MediaController.SearchImage searchImage = (MediaController.SearchImage) object; currentPathObject = searchImage.getPathToAttach(); + savedFilterState = searchImage.savedFilterState; + currentPaintPath = searchImage.paintPath; + currentAverageDuration = searchImage.averageDuration; + currentMediaEntities = searchImage.mediaEntities; + } + if (object instanceof MediaController.MediaEditState) { + MediaController.MediaEditState state = (MediaController.MediaEditState) object; + if (state.filterPath != null) { + currentImagePath = state.filterPath; + } else if (state.croppedPath != null) { + currentImagePath = state.croppedPath; + } else { + currentImagePath = currentPathObject; + } } } } @@ -6477,6 +8068,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat moveStartY = 0; zooming = false; moving = false; + paintViewTouched = 0; doubleTap = false; invalidCoords = false; canDragDown = true; @@ -6490,7 +8082,16 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } if (isVideo && videoPath != null) { isStreaming = false; - preparePlayer(videoPath, false, false); + preparePlayer(videoPath, false, false, savedFilterState); + } + + if (!imagesArrLocals.isEmpty()) { + paintingOverlay.setVisibility(View.VISIBLE); + paintingOverlay.setData(currentPaintPath, currentMediaEntities, isCurrentVideo, false); + } else { + paintingOverlay.setVisibility(View.GONE); + currentPaintPath = null; + currentMediaEntities = null; } if (prevIndex == -1) { @@ -6533,36 +8134,194 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat private void setCurrentCaption(MessageObject messageObject, final CharSequence caption, boolean animated) { if (needCaptionLayout) { - if (captionTextView.getParent() != pickerView) { - captionTextView.setBackgroundDrawable(null); - containerView.removeView(captionTextView); - pickerView.addView(captionTextView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.BOTTOM | Gravity.LEFT, 0, 0, 76, 48)); + if (captionTextViewSwitcher.getParent() != pickerView) { + if (captionContainer != null) { + captionContainer.removeView(captionTextViewSwitcher); + } + captionTextViewSwitcher.setMeasureAllChildren(false); + pickerView.addView(captionTextViewSwitcher, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.BOTTOM | Gravity.LEFT, 0, 0, 76, 48)); } } else { - if (captionTextView.getParent() != containerView) { - captionTextView.setBackgroundColor(0x7f000000); - pickerView.removeView(captionTextView); - containerView.addView(captionTextView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.BOTTOM | Gravity.LEFT, 0, 0, 0, 48)); + if (captionScrollView == null) { + captionScrollView = new CaptionScrollView(containerView.getContext()); + captionContainer = new FrameLayout(containerView.getContext()); + captionContainer.setClipChildren(false); + captionScrollView.addView(captionContainer, new ViewGroup.LayoutParams(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); + containerView.addView(captionScrollView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.BOTTOM)); + } + if (captionTextViewSwitcher.getParent() != captionContainer) { + pickerView.removeView(captionTextViewSwitcher); + captionTextViewSwitcher.setMeasureAllChildren(true); + captionContainer.addView(captionTextViewSwitcher, LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT); + videoPreviewFrame.bringToFront(); } } + + final boolean isCaptionEmpty = TextUtils.isEmpty(caption); + final boolean isCurrentCaptionEmpty = TextUtils.isEmpty(captionTextViewSwitcher.getCurrentView().getText()); + + TextView captionTextView = animated ? captionTextViewSwitcher.getNextView() : captionTextViewSwitcher.getCurrentView(); + if (isCurrentVideo) { if (captionTextView.getMaxLines() != 1) { - captionTextView.setMaxLines(1); - } - if (!isSingleLine) { - captionTextView.setSingleLine(isSingleLine = true); + captionTextViewSwitcher.getCurrentView().setMaxLines(1); + captionTextViewSwitcher.getNextView().setMaxLines(1); + captionTextViewSwitcher.getCurrentView().setSingleLine(true); + captionTextViewSwitcher.getNextView().setSingleLine(true); + captionTextViewSwitcher.getCurrentView().setEllipsize(TextUtils.TruncateAt.END); + captionTextViewSwitcher.getNextView().setEllipsize(TextUtils.TruncateAt.END); } } else { - if (isSingleLine) { - captionTextView.setSingleLine(isSingleLine = false); + final int maxLines = captionTextView.getMaxLines(); + if (maxLines == 1) { + captionTextViewSwitcher.getCurrentView().setSingleLine(false); + captionTextViewSwitcher.getNextView().setSingleLine(false); } - int newCount = AndroidUtilities.displaySize.x > AndroidUtilities.displaySize.y ? 5 : 10; - if (captionTextView.getMaxLines() != newCount) { - captionTextView.setMaxLines(newCount); + final int newCount; + if (needCaptionLayout) { + newCount = AndroidUtilities.displaySize.x > AndroidUtilities.displaySize.y ? 5 : 10; + } else { + newCount = Integer.MAX_VALUE; + } + if (maxLines != newCount) { + captionTextViewSwitcher.getCurrentView().setMaxLines(newCount); + captionTextViewSwitcher.getNextView().setMaxLines(newCount); + captionTextViewSwitcher.getCurrentView().setEllipsize(null); + captionTextViewSwitcher.getNextView().setEllipsize(null); } } - boolean wasVisisble = captionTextView.getTag() != null; - if (!TextUtils.isEmpty(caption)) { + + captionTextView.setScrollX(0); + dontChangeCaptionPosition = !needCaptionLayout && animated && isCaptionEmpty; + boolean withTransition = false; + + if (!needCaptionLayout) { + captionScrollView.dontChangeTopMargin = false; + } + + if (animated && Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { + withTransition = true; + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + TransitionManager.endTransitions(needCaptionLayout ? pickerView : captionScrollView); + } + if (needCaptionLayout) { + final TransitionSet transitionSet = new TransitionSet(); + transitionSet.setOrdering(TransitionSet.ORDERING_TOGETHER); + transitionSet.addTransition(new ChangeBounds()); + transitionSet.addTransition(new Fade(Fade.OUT)); + transitionSet.addTransition(new Fade(Fade.IN)); + transitionSet.setDuration(200); + TransitionManager.beginDelayedTransition(pickerView, transitionSet); + } else { + final TransitionSet transition = new TransitionSet() + .addTransition(new Fade(Fade.OUT) { + @Override + public Animator onDisappear(ViewGroup sceneRoot, View view, TransitionValues startValues, TransitionValues endValues) { + final Animator animator = super.onDisappear(sceneRoot, view, startValues, endValues); + if (!isCurrentCaptionEmpty && isCaptionEmpty && view == captionTextViewSwitcher) { + animator.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + captionScrollView.setVisibility(View.INVISIBLE); + captionScrollView.backgroundAlpha = 1f; + } + }); + ((ObjectAnimator) animator).addUpdateListener(animation -> { + captionScrollView.backgroundAlpha = (float) animation.getAnimatedValue(); + captionScrollView.invalidate(); + }); + } + return animator; + } + }) + .addTransition(new Fade(Fade.IN) { + @Override + public Animator onAppear(ViewGroup sceneRoot, View view, TransitionValues startValues, TransitionValues endValues) { + final Animator animator = super.onAppear(sceneRoot, view, startValues, endValues); + if (isCurrentCaptionEmpty && !isCaptionEmpty && view == captionTextViewSwitcher) { + animator.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + captionScrollView.backgroundAlpha = 1f; + } + }); + ((ObjectAnimator) animator).addUpdateListener(animation -> { + captionScrollView.backgroundAlpha = (float) animation.getAnimatedValue(); + captionScrollView.invalidate(); + }); + } + return animator; + } + }) + .setDuration(200); + + if (!isCurrentCaptionEmpty) { + captionScrollView.dontChangeTopMargin = true; + transition.addTransition(new Transition() { + @Override + public void captureStartValues(TransitionValues transitionValues) { + if (transitionValues.view == captionScrollView) { + transitionValues.values.put("scrollY", captionScrollView.getScrollY()); + } + } + + @Override + public void captureEndValues(TransitionValues transitionValues) { + if (transitionValues.view == captionTextViewSwitcher) { + transitionValues.values.put("translationY", captionScrollView.getPendingMarginTopDiff()); + } + } + + @Override + public Animator createAnimator(ViewGroup sceneRoot, TransitionValues startValues, TransitionValues endValues) { + if (startValues.view == captionScrollView) { + final ValueAnimator animator = ValueAnimator.ofInt((Integer) startValues.values.get("scrollY"), 0); + animator.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + captionTextViewSwitcher.getNextView().setText(null); + captionScrollView.applyPendingTopMargin(); + } + + @Override + public void onAnimationStart(Animator animation) { + captionScrollView.stopScrolling(); + } + }); + animator.addUpdateListener(a -> captionScrollView.scrollTo(0, (Integer) a.getAnimatedValue())); + return animator; + } else if (endValues.view == captionTextViewSwitcher) { + final int endValue = (int) endValues.values.get("translationY"); + if (endValue != 0) { + final ObjectAnimator animator = ObjectAnimator.ofFloat(captionTextViewSwitcher, View.TRANSLATION_Y, 0, endValue); + animator.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + captionTextViewSwitcher.setTranslationY(0); + } + }); + return animator; + } + } + return null; + } + }); + } + + if (isCurrentCaptionEmpty && !isCaptionEmpty) { + transition.addTarget(captionTextViewSwitcher); + } + + TransitionManager.beginDelayedTransition(captionScrollView, transition); + } + } else { + captionTextViewSwitcher.getCurrentView().setText(null); + if (captionScrollView != null) { + captionScrollView.scrollTo(0, 0); + } + } + + if (!isCaptionEmpty) { Theme.createChatResources(null, true); CharSequence str; if (messageObject != null && !messageObject.messageOwner.entities.isEmpty()) { @@ -6575,94 +8334,41 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } else { str = Emoji.replaceEmoji(new SpannableStringBuilder(caption), captionTextView.getPaint().getFontMetricsInt(), AndroidUtilities.dp(20), false); } - captionTextView.setTag(str); - if (currentCaptionAnimation != null) { - currentCaptionAnimation.cancel(); - currentCaptionAnimation = null; - } - /*if (animated) { - TextView temp = switchCaptionTextView; - switchCaptionTextView = captionTextView; - captionTextView = temp; - try { - switchCaptionTextView.setText(str); - } catch (Exception e) { - FileLog.e(e); - } - }*/ + captionTextViewSwitcher.setTag(str); try { - captionTextView.setText(str); + captionTextViewSwitcher.setText(str, animated); + captionScrollView.updateTopMargin(); } catch (Exception e) { FileLog.e(e); } captionTextView.setScrollY(0); captionTextView.setTextColor(0xffffffff); boolean visible = isActionBarVisible && (bottomLayout.getVisibility() == View.VISIBLE || pickerView.getVisibility() == View.VISIBLE); - if (visible) { - captionTextView.setVisibility(View.VISIBLE); - if (animated && !wasVisisble) { - currentCaptionAnimation = new AnimatorSet(); - currentCaptionAnimation.setDuration(200); - currentCaptionAnimation.setInterpolator(decelerateInterpolator); - currentCaptionAnimation.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - if (animation.equals(currentCaptionAnimation)) { - currentCaptionAnimation = null; - } - } - }); - currentCaptionAnimation.playTogether( - ObjectAnimator.ofFloat(captionTextView, View.ALPHA, 0.0f, 1.0f), - ObjectAnimator.ofFloat(captionTextView, View.TRANSLATION_Y, AndroidUtilities.dp(5), 0.0f)); - currentCaptionAnimation.start(); - } else { - captionTextView.setAlpha(1.0f); - } - } else if (captionTextView.getVisibility() == View.VISIBLE) { - captionTextView.setVisibility(View.INVISIBLE); - captionTextView.setAlpha(0.0f); - } + captionTextViewSwitcher.setVisibility(visible ? View.VISIBLE : View.INVISIBLE); } else { if (needCaptionLayout) { - captionTextView.setText(LocaleController.getString("AddCaption", R.string.AddCaption)); - captionTextView.setTag("empty"); - captionTextView.setVisibility(View.VISIBLE); - captionTextView.setTextColor(0xb2ffffff); + captionTextViewSwitcher.setText(LocaleController.getString("AddCaption", R.string.AddCaption), animated); + captionTextViewSwitcher.getCurrentView().setTextColor(0xb2ffffff); + captionTextViewSwitcher.setTag("empty"); + captionTextViewSwitcher.setVisibility(View.VISIBLE); } else { - captionTextView.setTextColor(0xffffffff); - captionTextView.setTag(null); - if (animated && wasVisisble) { - currentCaptionAnimation = new AnimatorSet(); - currentCaptionAnimation.setDuration(200); - currentCaptionAnimation.setInterpolator(decelerateInterpolator); - currentCaptionAnimation.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - if (animation.equals(currentCaptionAnimation)) { - captionTextView.setVisibility(View.INVISIBLE); - currentCaptionAnimation = null; - } - } - - @Override - public void onAnimationCancel(Animator animation) { - if (animation.equals(currentCaptionAnimation)) { - currentCaptionAnimation = null; - } - } - }); - currentCaptionAnimation.playTogether( - ObjectAnimator.ofFloat(captionTextView, View.ALPHA, 0.0f), - ObjectAnimator.ofFloat(captionTextView, View.TRANSLATION_Y, AndroidUtilities.dp(5))); - currentCaptionAnimation.start(); - } else { - captionTextView.setVisibility(View.INVISIBLE); - } + captionTextViewSwitcher.setText(null, animated); + captionTextViewSwitcher.getCurrentView().setTextColor(0xffffffff); + captionTextViewSwitcher.setVisibility(View.INVISIBLE, !withTransition || isCurrentCaptionEmpty); + captionTextViewSwitcher.setTag(null); } } } + private void setCaptionHwLayerEnabled(boolean enabled) { + if (captionHwLayerEnabled != enabled) { + captionHwLayerEnabled = enabled; + captionTextViewSwitcher.setLayerType(View.LAYER_TYPE_HARDWARE, null); + captionTextViewSwitcher.getCurrentView().setLayerType(View.LAYER_TYPE_HARDWARE, null); + captionTextViewSwitcher.getNextView().setLayerType(View.LAYER_TYPE_HARDWARE, null); + } + } + private void checkProgress(int a, boolean scroll, boolean animated) { int index = currentIndex; if (a == 1) { @@ -6675,14 +8381,15 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat File f2 = null; boolean isVideo = false; boolean canStream = false; + MessageObject messageObject = null; if (currentMessageObject != null) { if (index < 0 || index >= imagesArr.size()) { - photoProgressViews[a].setBackgroundState(-1, animated); + photoProgressViews[a].setBackgroundState(PROGRESS_NONE, animated); return; } - MessageObject messageObject = imagesArr.get(index); + messageObject = imagesArr.get(index); if (sharedMediaType == MediaDataController.MEDIA_FILE && !messageObject.canPreviewDocument()) { - photoProgressViews[a].setBackgroundState(-1, animated); + photoProgressViews[a].setBackgroundState(PROGRESS_NONE, animated); return; } if (!TextUtils.isEmpty(messageObject.messageOwner.attachPath)) { @@ -6694,11 +8401,14 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } else { f2 = FileLoader.getPathToMessage(messageObject.messageOwner); } - canStream = SharedConfig.streamMedia && messageObject.isVideo() && messageObject.canStreamVideo() && (int) messageObject.getDialogId() != 0; - isVideo = messageObject.isVideo(); + if (messageObject.isVideo()) { + canStream = SharedConfig.streamMedia && messageObject.canStreamVideo() && (int) messageObject.getDialogId() != 0; + isVideo = true; + } + } else if (currentBotInlineResult != null) { if (index < 0 || index >= imagesArrLocals.size()) { - photoProgressViews[a].setBackgroundState(-1, animated); + photoProgressViews[a].setBackgroundState(PROGRESS_NONE, animated); return; } TLRPC.BotInlineResult botInlineResult = (TLRPC.BotInlineResult) imagesArrLocals.get(index); @@ -6717,14 +8427,14 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat f2 = new File(FileLoader.getDirectory(FileLoader.MEDIA_DIR_CACHE), currentFileNames[a]); } else if (currentFileLocation != null) { if (index < 0 || index >= imagesArrLocations.size()) { - photoProgressViews[a].setBackgroundState(-1, animated); + photoProgressViews[a].setBackgroundState(PROGRESS_NONE, animated); return; } ImageLocation location = imagesArrLocations.get(index); f1 = FileLoader.getPathToAttach(location.location, avatarsDialogId != 0 || isEvent); } else if (currentSecureDocument != null) { if (index < 0 || index >= secureDocuments.size()) { - photoProgressViews[a].setBackgroundState(-1, animated); + photoProgressViews[a].setBackgroundState(PROGRESS_NONE, animated); return; } SecureDocument location = secureDocuments.get(index); @@ -6735,8 +8445,9 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } File f1Final = f1; File f2Final = f2; + MessageObject messageObjectFinal = messageObject; boolean canStreamFinal = canStream; - boolean isVideoFianl = isVideo; + boolean isVideoFinal = isVideo; Utilities.globalQueue.postRunnable(() -> { boolean exists = false; if (f1Final != null) { @@ -6745,13 +8456,25 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat if (!exists && f2Final != null) { exists = f2Final.exists(); } + if (!exists && a != 0 && messageObjectFinal != null && canStreamFinal) { + if (DownloadController.getInstance(currentAccount).canDownloadMedia(messageObjectFinal.messageOwner) != 0) { + if ((parentChatActivity == null || parentChatActivity.getCurrentEncryptedChat() == null) && !messageObjectFinal.shouldEncryptPhotoOrVideo()) { + final TLRPC.Document document = messageObjectFinal.getDocument(); + if (document != null) { + FileLoader.getInstance(currentAccount).loadFile(document, messageObjectFinal, 0, 10); + } + } + } + } boolean existsFinal = exists; AndroidUtilities.runOnUIThread(() -> { if ((f1Final != null || f2Final != null) && (existsFinal || canStreamFinal)) { - if (isVideoFianl) { - photoProgressViews[a].setBackgroundState(3, animated); - } else { - photoProgressViews[a].setBackgroundState(-1, animated); + if (a != 0 || !isPlaying) { + if (isVideoFinal && (!shouldMessageObjectAutoPlayed(messageObjectFinal) || a == 0 && playerWasPlaying)) { + photoProgressViews[a].setBackgroundState(PROGRESS_PLAY, animated); + } else { + photoProgressViews[a].setBackgroundState(PROGRESS_NONE, animated); + } } if (a == 0) { if (!existsFinal) { @@ -6765,14 +8488,14 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } } } else { - if (isVideoFianl) { + if (isVideoFinal) { if (!FileLoader.getInstance(currentAccount).isLoadingFile(currentFileNames[a])) { - photoProgressViews[a].setBackgroundState(2, false); + photoProgressViews[a].setBackgroundState(PROGRESS_LOAD, false); } else { - photoProgressViews[a].setBackgroundState(1, false); + photoProgressViews[a].setBackgroundState(PROGRESS_CANCEL, false); } } else { - photoProgressViews[a].setBackgroundState(0, animated); + photoProgressViews[a].setBackgroundState(PROGRESS_EMPTY, animated); } Float progress = ImageLoader.getInstance().getFileProgress(currentFileNames[a]); if (progress == null) { @@ -6795,9 +8518,9 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } } if (isLocalVideo) { - photoProgressViews[a].setBackgroundState(3, animated); + photoProgressViews[a].setBackgroundState(PROGRESS_PLAY, animated); } else { - photoProgressViews[a].setBackgroundState(-1, animated); + photoProgressViews[a].setBackgroundState(PROGRESS_NONE, animated); } } } @@ -6837,6 +8560,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat String path = null; TLRPC.Document document = null; WebFile webDocument = null; + ImageLocation videoThumb = null; TLRPC.PhotoSize photo = null; TLObject photoObject = null; int imageSize = 0; @@ -6846,20 +8570,22 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat if (object instanceof MediaController.PhotoEntry) { MediaController.PhotoEntry photoEntry = (MediaController.PhotoEntry) object; isVideo = photoEntry.isVideo; - if (!photoEntry.isVideo) { - if (photoEntry.imagePath != null) { - path = photoEntry.imagePath; - } else { - imageReceiver.setOrientation(photoEntry.orientation, false); - path = photoEntry.path; - } - filter = String.format(Locale.US, "%d_%d", size, size); - } else { + if (photoEntry.isVideo) { if (photoEntry.thumbPath != null) { path = photoEntry.thumbPath; } else { path = "vthumb://" + photoEntry.imageId + ":" + photoEntry.path; } + } else { + if (photoEntry.filterPath != null) { + path = photoEntry.filterPath; + } else if (photoEntry.croppedPath != null) { + path = photoEntry.croppedPath; + } else { + imageReceiver.setOrientation(photoEntry.orientation, false); + path = photoEntry.path; + } + filter = String.format(Locale.US, "%d_%d", size, size); } } else if (object instanceof TLRPC.BotInlineResult) { cacheType = 1; @@ -6874,6 +8600,10 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } else if (botInlineResult.type.equals("gif") && botInlineResult.document != null) { document = botInlineResult.document; imageSize = botInlineResult.document.size; + TLRPC.TL_videoSize videoSize = MessageObject.getDocumentVideoThumb(botInlineResult.document); + if (videoSize != null) { + videoThumb = ImageLocation.getForDocument(videoSize, document); + } filter = "d"; } else if (botInlineResult.photo != null) { TLRPC.PhotoSize sizeFull = FileLoader.getClosestPhotoSizeWithSize(botInlineResult.photo.sizes, AndroidUtilities.getPhotoSize()); @@ -6884,6 +8614,9 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } else if (botInlineResult.content instanceof TLRPC.TL_webDocument) { if (botInlineResult.type.equals("gif")) { filter = "d"; + if (botInlineResult.thumb instanceof TLRPC.TL_webDocument && "video/mp4".equals(botInlineResult.thumb.mime_type)) { + videoThumb = ImageLocation.getForWebFile(WebFile.createWithWebDocument(botInlineResult.thumb)); + } } else { filter = String.format(Locale.US, "%d_%d", size, size); } @@ -6896,8 +8629,10 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat photo = photoEntry.photoSize; photoObject = photoEntry.photo; imageSize = photoEntry.photoSize.size; - } else if (photoEntry.imagePath != null) { - path = photoEntry.imagePath; + } else if (photoEntry.filterPath != null) { + path = photoEntry.filterPath; + } else if (photoEntry.croppedPath != null) { + path = photoEntry.croppedPath; } else if (photoEntry.document != null) { document = photoEntry.document; imageSize = photoEntry.document.size; @@ -6909,11 +8644,19 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } if (document != null) { TLRPC.PhotoSize thumb = FileLoader.getClosestPhotoSizeWithSize(document.thumbs, 90); - imageReceiver.setImage(ImageLocation.getForDocument(document), "d", placeHolder == null ? ImageLocation.getForDocument(thumb, document) : null, String.format(Locale.US, "%d_%d", size, size), placeHolder != null ? new BitmapDrawable(placeHolder.bitmap) : null, imageSize, null, object, cacheType); + if (videoThumb != null) { + imageReceiver.setImage(ImageLocation.getForDocument(document), "d", videoThumb, null, placeHolder == null ? ImageLocation.getForDocument(thumb, document) : null, String.format(Locale.US, "%d_%d", size, size), placeHolder != null ? new BitmapDrawable(placeHolder.bitmap) : null, imageSize, null, object, cacheType); + } else { + imageReceiver.setImage(ImageLocation.getForDocument(document), "d", placeHolder == null ? ImageLocation.getForDocument(thumb, document) : null, String.format(Locale.US, "%d_%d", size, size), placeHolder != null ? new BitmapDrawable(placeHolder.bitmap) : null, imageSize, null, object, cacheType); + } } else if (photo != null) { imageReceiver.setImage(ImageLocation.getForObject(photo, photoObject), filter, placeHolder != null ? new BitmapDrawable(placeHolder.bitmap) : null, imageSize, null, object, cacheType); } else if (webDocument != null) { - imageReceiver.setImage(ImageLocation.getForWebFile(webDocument), filter, placeHolder != null ? new BitmapDrawable(placeHolder.bitmap) : (isVideo && parentActivity != null ? parentActivity.getResources().getDrawable(R.drawable.nophotos) : null), null, object, cacheType); + if (videoThumb != null) { + imageReceiver.setImage(ImageLocation.getForWebFile(webDocument), filter, videoThumb, null, null, object, cacheType); + } else { + imageReceiver.setImage(ImageLocation.getForWebFile(webDocument), filter, placeHolder != null ? new BitmapDrawable(placeHolder.bitmap) : (isVideo && parentActivity != null ? parentActivity.getResources().getDrawable(R.drawable.nophotos) : null), null, object, cacheType); + } } else { imageReceiver.setImage(path, filter, placeHolder != null ? new BitmapDrawable(placeHolder.bitmap) : (isVideo && parentActivity != null ? parentActivity.getResources().getDrawable(R.drawable.nophotos) : null), null, imageSize); } @@ -6931,13 +8674,13 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat if (messageObject != null) { if (messageObject.isVideo()) { - imageReceiver.setNeedsQualityThumb(true); if (messageObject.photoThumbs != null && !messageObject.photoThumbs.isEmpty()) { ImageReceiver.BitmapHolder placeHolder = null; if (currentThumb != null && imageReceiver == centerImage) { placeHolder = currentThumb; } - TLRPC.PhotoSize thumbLocation = FileLoader.getClosestPhotoSizeWithSize(messageObject.photoThumbs, 100); + TLRPC.PhotoSize thumbLocation = FileLoader.getClosestPhotoSizeWithSize(messageObject.photoThumbs, 320); + imageReceiver.setNeedsQualityThumb(thumbLocation.w < 100 && thumbLocation.h < 100); imageReceiver.setImage(null, null, placeHolder == null ? ImageLocation.getForObject(thumbLocation, messageObject.photoThumbsObject) : null, "b", placeHolder != null ? new BitmapDrawable(placeHolder.bitmap) : null, 0, null, messageObject, 1); } else { imageReceiver.setImageBitmap(parentActivity.getResources().getDrawable(R.drawable.photoview_placeholder)); @@ -6992,8 +8735,16 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } boolean cacheOnly = messageObject != null && messageObject.isWebpage() || avatarsDialogId != 0 || isEvent; Object parentObject; + ImageLocation videoThumb = null; if (messageObject != null) { parentObject = messageObject; + if (sharedMediaType == MediaDataController.MEDIA_GIF) { + TLRPC.Document document = messageObject.getDocument(); + TLRPC.TL_videoSize videoSize = MessageObject.getDocumentVideoThumb(document); + if (videoSize != null) { + videoThumb = ImageLocation.getForDocument(videoSize, document); + } + } } else if (avatarsDialogId != 0) { if (avatarsDialogId > 0) { parentObject = MessagesController.getInstance(currentAccount).getUser(avatarsDialogId); @@ -7003,7 +8754,11 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } else { parentObject = null; } - imageReceiver.setImage(imageLocation, null, placeHolder == null ? ImageLocation.getForObject(thumbLocation, photoObject) : null, "b", placeHolder != null ? new BitmapDrawable(placeHolder.bitmap) : null, size[0], null, parentObject, cacheOnly ? 1 : 0); + if (videoThumb != null) { + imageReceiver.setImage(imageLocation, null, videoThumb, null, placeHolder == null ? ImageLocation.getForObject(thumbLocation, photoObject) : null, "b", placeHolder != null ? new BitmapDrawable(placeHolder.bitmap) : null, size[0], null, parentObject, cacheOnly ? 1 : 0); + } else { + imageReceiver.setImage(imageLocation, null, placeHolder == null ? ImageLocation.getForObject(thumbLocation, photoObject) : null, "b", placeHolder != null ? new BitmapDrawable(placeHolder.bitmap) : null, size[0], null, parentObject, cacheOnly ? 1 : 0); + } } else { imageReceiver.setNeedsQualityThumb(true); if (size[0] == 0) { @@ -7175,7 +8930,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat orientation = animatingImageView.getOrientation(); } if (bitmap != null) { - photoCropView.setBitmap(bitmap, orientation, false, false); + photoCropView.setBitmap(bitmap, orientation, false, false, paintingOverlay); if (currentEditMode == 0) { setCropTranslations(false); } @@ -7186,7 +8941,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat if (sendPhotoType != SELECT_TYPE_AVATAR) { return; } - photoCropView.setBitmap(null, 0, false, false); + photoCropView.setBitmap(null, 0, false, false, null); photoCropView.onAppear(); photoCropView.setVisibility(View.VISIBLE); photoCropView.setAlpha(1.0f); @@ -7498,21 +9253,22 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat @Override public void onAnimationEnd(Animator animation) { AndroidUtilities.runOnUIThread(() -> { - NotificationCenter.getInstance(currentAccount).setAnimationInProgress(false); + NotificationCenter.getInstance(currentAccount).onAnimationFinish(transitionIndex); if (animationEndRunnable != null) { animationEndRunnable.run(); animationEndRunnable = null; } + setCaptionHwLayerEnabled(true); }); } }); if (Build.VERSION.SDK_INT >= 18) { containerView.setLayerType(View.LAYER_TYPE_HARDWARE, null); } + setCaptionHwLayerEnabled(false); transitionAnimationStartTime = System.currentTimeMillis(); AndroidUtilities.runOnUIThread(() -> { - NotificationCenter.getInstance(currentAccount).setAllowedNotificationsDutingAnimation(new int[]{NotificationCenter.dialogsNeedReload, NotificationCenter.closeChats, NotificationCenter.mediaCountDidLoad, NotificationCenter.mediaDidLoad, NotificationCenter.dialogPhotosLoaded}); - NotificationCenter.getInstance(currentAccount).setAnimationInProgress(true); + transitionIndex = NotificationCenter.getInstance(currentAccount).setAnimationInProgress(transitionIndex, new int[]{NotificationCenter.dialogsNeedReload, NotificationCenter.closeChats, NotificationCenter.mediaCountDidLoad, NotificationCenter.mediaDidLoad, NotificationCenter.dialogPhotosLoaded}); animatorSet.start(); }); } else { @@ -7571,6 +9327,9 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat public void injectVideoPlayerToMediaController() { if (videoPlayer.isPlaying()) { + if (playerLooping) { + videoPlayer.setLooping(false); + } MediaController.getInstance().injectVideoPlayer(videoPlayer, currentMessageObject); videoPlayer = null; updateAccessibilityOverlayVisibility(); @@ -7599,11 +9358,9 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } catch (Exception e) { FileLog.e(e); } - if (Build.VERSION.SDK_INT >= 21 && actionBar != null) { - int flagsToClear = containerView.getSystemUiVisibility() & (View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); - if (flagsToClear != 0) { - containerView.setSystemUiVisibility(containerView.getSystemUiVisibility() & ~flagsToClear); - } + if (Build.VERSION.SDK_INT >= 21 && containerView != null) { + AndroidUtilities.cancelRunOnUIThread(updateContainerFlagsRunnable); + updateContainerFlags(true); } if (currentEditMode != 0) { if (currentEditMode == 2) { @@ -7629,6 +9386,12 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat if (captionEditText.hideActionMode() && !fromEditMode) { return; } + if (!doneButtonPressed && !imagesArrLocals.isEmpty() && currentIndex >= 0 && currentIndex < imagesArrLocals.size()) { + Object entry = imagesArrLocals.get(currentIndex); + if (entry instanceof MediaController.MediaEditState) { + ((MediaController.MediaEditState) entry).editedInfo = getCurrentVideoEditedInfo(); + } + } final PlaceProviderObject object = placeProvider.getPlaceForPhoto(currentMessageObject, getFileLocation(currentFileLocation), currentIndex, true); if (videoPlayer != null && object != null) { AnimatedFileDrawable animation = object.imageReceiver.getAnimation(); @@ -7647,7 +9410,9 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } } if (currentMessageObject != null) { - animation.seekTo(videoPlayer.getCurrentPosition(), !FileLoader.getInstance(currentMessageObject.currentAccount).isLoadingVideo(currentMessageObject.getDocument(), true)); + long startTime = animation.getStartTime(); + long seekTo = videoPlayer.getCurrentPosition() + (startTime > 0 ? startTime : 0); + animation.seekTo(seekTo, !FileLoader.getInstance(currentMessageObject.currentAccount).isLoadingVideo(currentMessageObject.getDocument(), true)); } object.imageReceiver.setAllowStartAnimation(true); object.imageReceiver.startAnimation(); @@ -7701,8 +9466,8 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat animatingImageViews[i].setImageBitmap(object.thumb); } } else { - layoutParams.width = centerImage.getImageWidth(); - layoutParams.height = centerImage.getImageHeight(); + layoutParams.width = (int) centerImage.getImageWidth(); + layoutParams.height = (int) centerImage.getImageHeight(); for (int i = 0; i < animatingImageViews.length; i++) { animatingImageViews[i].setOrientation(centerImage.getOrientation()); animatingImageViews[i].setImageBitmap(centerImage.getBitmapSafe()); @@ -7940,9 +9705,13 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat currentSecureDocument = null; currentPathObject = null; if (videoPlayerControlFrameLayout != null) { - videoPlayerControlFrameLayout.setVisibility(View.GONE); - dateTextView.setVisibility(View.VISIBLE); - nameTextView.setVisibility(View.VISIBLE); + setVideoPlayerControlVisible(false, false); + } + if (captionScrollView != null) { + captionScrollView.reset(); + } + if (groupedPhotosListView != null) { + groupedPhotosListView.reset(); } sendPhotoType = 0; isDocumentsPicker = false; @@ -7957,7 +9726,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } for (int a = 0; a < 3; a++) { if (photoProgressViews[a] != null) { - photoProgressViews[a].setBackgroundState(-1, false); + photoProgressViews[a].setBackgroundState(PROGRESS_NONE, false); } } requestVideoPreview(0); @@ -8008,6 +9777,12 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat redraw(0); //workaround for camera bug if (videoPlayer != null) { videoPlayer.seekTo(videoPlayer.getCurrentPosition() + 1); + if (playerLooping) { + videoPlayer.setLooping(true); + } + } + if (photoPaintView != null) { + photoPaintView.onResume(); } } @@ -8025,6 +9800,9 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat if (lastTitle != null) { closeCaptionEnter(true); } + if (videoPlayer != null && playerLooping) { + videoPlayer.setLooping(false); + } } public boolean isVisible() { @@ -8032,8 +9810,12 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } private void updateMinMax(float scale) { + if (currentEditMode == 3 && aspectRatioFrameLayout != null && aspectRatioFrameLayout.getVisibility() == View.VISIBLE && textureUploaded) { + scale *= Math.min(getContainerViewWidth() / (float) videoTextureView.getMeasuredWidth(), getContainerViewHeight() / (float) videoTextureView.getMeasuredHeight()); + } int maxW = (int) (centerImage.getImageWidth() * scale - getContainerViewWidth()) / 2; int maxH = (int) (centerImage.getImageHeight() * scale - getContainerViewHeight()) / 2; + if (maxW > 0) { minX = -maxW; maxX = maxW; @@ -8081,9 +9863,18 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } private int getContainerViewHeight(int mode) { - int height = AndroidUtilities.displaySize.y; - if (mode == 0 && Build.VERSION.SDK_INT >= 21) { - height += AndroidUtilities.statusBarHeight; + return getContainerViewHeight(false, mode); + } + + private int getContainerViewHeight(boolean trueHeight, int mode) { + int height; + if (trueHeight) { + height = containerView.getMeasuredHeight(); + } else { + height = AndroidUtilities.displaySize.y; + if (mode == 0 && Build.VERSION.SDK_INT >= 21) { + height += AndroidUtilities.statusBarHeight; + } } if (mode == 1) { height -= AndroidUtilities.dp(48 + 32 + 64); @@ -8096,6 +9887,13 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } private boolean onTouchEvent(MotionEvent ev) { + if (currentEditMode == 3 && animationStartTime != 0 && (ev.getActionMasked() == MotionEvent.ACTION_DOWN || ev.getActionMasked() == MotionEvent.ACTION_POINTER_DOWN)) { + if (ev.getPointerCount() >= 2) { + cancelMoveZoomAnimation(); + } else { + return true; + } + } if (animationInProgress != 0 || animationStartTime != 0) { return false; } @@ -8103,7 +9901,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat if (currentEditMode == 2) { photoFilterView.onTouch(ev); return true; - } else if (currentEditMode == 1 || sendPhotoType == SELECT_TYPE_AVATAR) { + } else if (currentEditMode == 1 || currentEditMode != 3 && sendPhotoType == SELECT_TYPE_AVATAR) { return true; } @@ -8135,6 +9933,12 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } if (!draggingDown && !changingPage) { if (canZoom && ev.getPointerCount() == 2) { + if (paintViewTouched == 1) { + MotionEvent event = MotionEvent.obtain(0, 0, MotionEvent.ACTION_CANCEL, 0, 0, 0); + photoPaintView.onTouch(event); + event.recycle(); + paintViewTouched = 2; + } pinchStartDistance = (float) Math.hypot(ev.getX(1) - ev.getX(0), ev.getY(1) - ev.getY(0)); pinchStartScale = scale; pinchCenterX = (ev.getX(0) + ev.getX(1)) / 2.0f; @@ -8143,29 +9947,76 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat pinchStartY = translationY; zooming = true; moving = false; + if (currentEditMode == 3) { + moveStartX = pinchCenterX; + moveStartY = pinchCenterY; + draggingDown = false; + canDragDown = false; + } hidePressedDrawables(); if (velocityTracker != null) { velocityTracker.clear(); } } else if (ev.getPointerCount() == 1) { - moveStartX = ev.getX(); - dragY = moveStartY = ev.getY(); - draggingDown = false; - canDragDown = true; - if (velocityTracker != null) { - velocityTracker.clear(); + if (currentEditMode == 3) { + if (paintViewTouched == 0) { + photoPaintView.getHitRect(hitRect); + if (hitRect.contains((int) ev.getX(), (int) ev.getY())) { + MotionEvent event = MotionEvent.obtain(ev); + event.offsetLocation(-photoPaintView.getX(), -photoPaintView.getY()); + photoPaintView.onTouch(event); + event.recycle(); + paintViewTouched = 1; + } + } + } else { + moveStartX = ev.getX(); + dragY = moveStartY = ev.getY(); + draggingDown = false; + canDragDown = true; + if (velocityTracker != null) { + velocityTracker.clear(); + } } } } } else if (ev.getActionMasked() == MotionEvent.ACTION_MOVE) { if (canZoom && ev.getPointerCount() == 2 && !draggingDown && zooming && !changingPage) { discardTap = true; + if (currentEditMode == 3) { + float newPinchCenterX = (ev.getX(0) + ev.getX(1)) / 2.0f; + float newPinchCenterY = (ev.getY(0) + ev.getY(1)) / 2.0f; + float moveDx = moveStartX - newPinchCenterX; + float moveDy = moveStartY - newPinchCenterY; + moveStartX = newPinchCenterX; + moveStartY = newPinchCenterY; + if (translationX < minX || translationX > maxX) { + moveDx /= 3.0f; + } + if (translationY < minY || translationY > maxY) { + moveDy /= 3.0f; + } + pinchStartX = (pinchCenterX - getContainerViewWidth() / 2) - ((pinchCenterX - getContainerViewWidth() / 2) - translationX) / (scale / pinchStartScale) - moveDx; + pinchStartY = (pinchCenterY - getContainerViewHeight() / 2) - ((pinchCenterY - getContainerViewHeight() / 2) - translationY) / (scale / pinchStartScale) - moveDy; + pinchCenterX = newPinchCenterX; + pinchCenterY = newPinchCenterY; + } scale = (float) Math.hypot(ev.getX(1) - ev.getX(0), ev.getY(1) - ev.getY(0)) / pinchStartDistance * pinchStartScale; translationX = (pinchCenterX - getContainerViewWidth() / 2) - ((pinchCenterX - getContainerViewWidth() / 2) - pinchStartX) * (scale / pinchStartScale); translationY = (pinchCenterY - getContainerViewHeight() / 2) - ((pinchCenterY - getContainerViewHeight() / 2) - pinchStartY) * (scale / pinchStartScale); + if (currentEditMode == 3) { + photoPaintView.setTransform(scale, translationX, translationY); + } updateMinMax(scale); containerView.invalidate(); } else if (ev.getPointerCount() == 1) { + if (paintViewTouched == 1) { + MotionEvent event = MotionEvent.obtain(ev); + event.offsetLocation(-photoPaintView.getX(), -photoPaintView.getY()); + photoPaintView.onTouch(event); + event.recycle(); + return true; + } if (velocityTracker != null) { velocityTracker.addMovement(ev); } @@ -8230,6 +10081,9 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat if (scale != 1 || currentEditMode != 0) { translationY -= moveDy; } + if (currentEditMode == 3) { + photoPaintView.setTransform(scale, translationX, translationY); + } containerView.invalidate(); } @@ -8240,6 +10094,17 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } } } else if (ev.getActionMasked() == MotionEvent.ACTION_CANCEL || ev.getActionMasked() == MotionEvent.ACTION_UP || ev.getActionMasked() == MotionEvent.ACTION_POINTER_UP) { + if (paintViewTouched == 1) { + if (photoPaintView != null) { + MotionEvent event = MotionEvent.obtain(ev); + event.offsetLocation(-photoPaintView.getX(), -photoPaintView.getY()); + photoPaintView.onTouch(event); + event.recycle(); + } + paintViewTouched = 0; + return true; + } + paintViewTouched = 0; if (zooming) { invalidCoords = true; if (scale < 1.0f) { @@ -8262,8 +10127,25 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat animateTo(3.0f, atx, aty, true); } else { checkMinMax(true); + if (currentEditMode == 3) { + float moveToX = translationX; + float moveToY = translationY; + updateMinMax(scale); + if (translationX < minX) { + moveToX = minX; + } else if (translationX > maxX) { + moveToX = maxX; + } + if (translationY < minY) { + moveToY = minY; + } else if (translationY > maxY) { + moveToY = maxY; + } + animateTo(scale, moveToX, moveToY, false); + } } zooming = false; + moving = false; } else if (draggingDown) { if (Math.abs(dragY - ev.getY()) > getContainerViewHeight() / 6.0f) { closePhoto(true, false); @@ -8349,6 +10231,24 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat animateTo(scale, maxX + getContainerViewWidth() + extra + AndroidUtilities.dp(30) / 2, translationY, false); } + private void cancelMoveZoomAnimation() { + if (imageMoveAnimation == null) { + return; + } + + float ts = scale + (animateToScale - scale) * animationValue; + float tx = translationX + (animateToX - translationX) * animationValue; + float ty = translationY + (animateToY - translationY) * animationValue; + imageMoveAnimation.cancel(); + scale = ts; + translationX = tx; + translationY = ty; + animationStartTime = 0; + updateMinMax(scale); + zoomAnimation = false; + containerView.invalidate(); + } + private void animateTo(float newScale, float newTx, float newTy, boolean isZoom) { animateTo(newScale, newTx, newTy, isZoom, 250); } @@ -8394,13 +10294,19 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat releasePlayer(false); FileLoader.getInstance(currentAccount).cancelLoadFile(currentMessageObject.getDocument()); } - setImageIndex(currentIndex + add, init); - if (currentMessageObject != null && currentMessageObject.isVideo() && (currentMessageObject.mediaExists || currentMessageObject.attachPathExists || currentMessageObject.canStreamVideo() && SharedConfig.streamMedia) && SharedConfig.autoplayVideo) { + playerAutoStarted = false; + setImageIndex(currentIndex + add, init, true); + if (shouldMessageObjectAutoPlayed(currentMessageObject)) { + playerAutoStarted = true; onActionClick(true); checkProgress(0, false, true); } } + private boolean shouldMessageObjectAutoPlayed(MessageObject messageObject) { + return messageObject != null && messageObject.isVideo() && (messageObject.mediaExists || messageObject.attachPathExists || messageObject.canStreamVideo() && SharedConfig.streamMedia) && SharedConfig.autoplayVideo; + } + @SuppressLint({"NewApi", "DrawAllocation"}) private void onDraw(Canvas canvas) { if (animationInProgress == 1 || animationInProgress == 3 || !isVisible && animationInProgress != 2 && !pipAnimationInProgress) { @@ -8463,8 +10369,8 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat openedFullScreenVideo = false; if (!imagesArrLocals.isEmpty() && currentIndex >= 0 && currentIndex < imagesArrLocals.size()) { Object object = imagesArrLocals.get(currentIndex); - if (object instanceof MediaController.PhotoEntry) { - ((MediaController.PhotoEntry) object).editedInfo = getCurrentVideoEditedInfo(); + if (object instanceof MediaController.MediaEditState) { + ((MediaController.MediaEditState) object).editedInfo = getCurrentVideoEditedInfo(); } } if (switchImageAfterAnimation == 1) { @@ -8481,6 +10387,9 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat aty = translationY; } } + if (currentEditMode == 3) { + photoPaintView.setTransform(currentScale, currentTranslationX, currentTranslationY); + } if (animationInProgress != 2 && !pipAnimationInProgress && !isInline) { if (currentEditMode == 0 && sendPhotoType != SELECT_TYPE_AVATAR && scale == 1 && aty != -1 && !zoomAnimation) { @@ -8560,6 +10469,13 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat canvas.translate(getContainerViewWidth() / 2 + getAdditionX(), getContainerViewHeight() / 2 + getAdditionY()); canvas.translate(translateX, currentTranslationY + currentPanTranslationY); canvas.scale(currentScale - scaleDiff, currentScale - scaleDiff); + if (currentEditMode == 3 && keyboardSize > AndroidUtilities.dp(20)) { + int trueH = getContainerViewHeight(true, 0); + int h = getContainerViewHeight(false, 0); + if (trueH != h) { + canvas.translate(0, (trueH - h) / 2); + } + } int bitmapWidth; int bitmapHeight; @@ -8582,19 +10498,22 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat centerImage.setImageCoords(-width / 2, -height / 2, width, height); centerImage.draw(canvas); } + if (drawTextureView || paintingOverlay.getVisibility() == View.VISIBLE) { + canvas.translate(-width / 2, -height / 2); + canvas.scale(scale, scale); + } if (drawTextureView) { - scaleX = (float) canvas.getWidth() / (float) bitmapWidth; - scaleY = (float) canvas.getHeight() / (float) bitmapHeight; - scale = Math.min(scaleX, scaleY); - height = (int) (bitmapHeight * scale); if (!videoCrossfadeStarted && textureUploaded) { videoCrossfadeStarted = true; videoCrossfadeAlpha = 0.0f; videoCrossfadeAlphaLastTime = System.currentTimeMillis(); + containerView.getMeasuredHeight(); } - canvas.translate(-width / 2, -height / 2); videoTextureView.setAlpha(alpha * videoCrossfadeAlpha); aspectRatioFrameLayout.draw(canvas); + if (videoTextureView instanceof VideoEditTextureView) { + ((VideoEditTextureView) videoTextureView).setViewRect((getContainerViewWidth() - width) / 2 + getAdditionX() + translateX, (getContainerViewHeight() - height) / 2 + getAdditionY() + currentTranslationY + currentPanTranslationY, width, height); + } if (videoCrossfadeStarted && videoCrossfadeAlpha < 1.0f) { videoCrossfadeAlpha += dt / (playerInjected ? 100.0f : 200.0f); containerView.invalidate(); @@ -8602,6 +10521,11 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat videoCrossfadeAlpha = 1.0f; } } + paintingOverlay.setAlpha(alpha * videoCrossfadeAlpha); + } + if (paintingOverlay.getVisibility() == View.VISIBLE) { + canvas.clipRect(0, 0, paintingOverlay.getMeasuredWidth(), paintingOverlay.getMeasuredHeight()); + paintingOverlay.draw(canvas); } canvas.restore(); for (int a = 0; a < pressedDrawable.length; a++) { @@ -8637,20 +10561,29 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat if (isCurrentVideo) { drawProgress = videoPlayer == null || !videoPlayer.isPlaying(); } else { - drawProgress = !drawTextureView && videoPlayerControlFrameLayout.getVisibility() != View.VISIBLE; - if (drawProgress && currentAnimation != null && !currentAnimation.isLoadingStream()) { - drawProgress = false; - } + drawProgress = true; } + boolean drawMiniProgress = miniProgressView.getVisibility() == View.VISIBLE || miniProgressAnimator != null; if (drawProgress) { + final float tx = !zoomAnimation && -translateX > maxX ? translateX + maxX : 0; + float ty = currentScale == 1.0f ? currentTranslationY : 0; + float progressAlpha = alpha; + if (drawMiniProgress) { + progressAlpha *= 1f - miniProgressView.getAlpha(); + } + if (pipAnimationInProgress) { + progressAlpha *= actionBar.getAlpha(); + } else if (photoProgressViews[0].backgroundState == PROGRESS_PAUSE) { + ty += AndroidUtilities.dpf2(8) * (1f - actionBar.getAlpha()); + } canvas.save(); - canvas.translate(translateX, currentTranslationY / currentScale); + canvas.translate(tx, ty); photoProgressViews[0].setScale(1.0f - scaleDiff); - photoProgressViews[0].setAlpha(alpha); + photoProgressViews[0].setAlpha(progressAlpha); photoProgressViews[0].onDraw(canvas); canvas.restore(); } - if (!pipAnimationInProgress && (miniProgressView.getVisibility() == View.VISIBLE || miniProgressAnimator != null)) { + if (drawMiniProgress && !pipAnimationInProgress) { canvas.save(); canvas.translate(miniProgressView.getLeft() + translateX, miniProgressView.getTop() + currentTranslationY / currentScale); miniProgressView.draw(canvas); @@ -8927,14 +10860,23 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } } } else { - if (photoProgressViews[0] != null && containerView != null && !drawTextureView) { + if (photoProgressViews[0] != null && containerView != null) { int state = photoProgressViews[0].backgroundState; - if (state > 0 && state <= 3) { - if (x >= (getContainerViewWidth() - AndroidUtilities.dp(100)) / 2.0f && x <= (getContainerViewWidth() + AndroidUtilities.dp(100)) / 2.0f && - y >= (getContainerViewHeight() - AndroidUtilities.dp(100)) / 2.0f && y <= (getContainerViewHeight() + AndroidUtilities.dp(100)) / 2.0f) { - onActionClick(true); - checkProgress(0, false, true); - return true; + if (x >= (getContainerViewWidth() - AndroidUtilities.dp(100)) / 2.0f && x <= (getContainerViewWidth() + AndroidUtilities.dp(100)) / 2.0f && + y >= (getContainerViewHeight() - AndroidUtilities.dp(100)) / 2.0f && y <= (getContainerViewHeight() + AndroidUtilities.dp(100)) / 2.0f) { + if (!drawTextureView) { + if (state > PROGRESS_EMPTY && state <= PROGRESS_PLAY) { + onActionClick(true); + checkProgress(0, false, true); + return true; + } + } else { + if (state == PROGRESS_PLAY || state == PROGRESS_PAUSE) { + if (photoProgressViews[0].isVisible()) { + toggleVideoPlayer(); + return true; + } + } } } } @@ -8942,7 +10884,10 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat toggleActionBar(!isActionBarVisible, true); } else if (sendPhotoType == 0 || sendPhotoType == 4) { if (isCurrentVideo) { - videoPlayButton.callOnClick(); + if (videoPlayer != null && !muteVideo) { + videoPlayer.setVolume(1.0f); + } + toggleVideoPlayer(); } else { checkImageView.performClick(); } @@ -8959,7 +10904,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } } else if (sendPhotoType == 2) { if (isCurrentVideo) { - videoPlayButton.callOnClick(); + toggleVideoPlayer(); } } return true; @@ -8979,7 +10924,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat @Override public boolean onDoubleTap(MotionEvent e) { - if (videoPlayer != null && videoPlayerControlFrameLayout.getVisibility() == View.VISIBLE) { + if (videoPlayer != null && videoPlayerControlVisible) { long current = videoPlayer.getCurrentPosition(); long total = videoPlayer.getDuration(); float x = e.getX(); @@ -9002,7 +10947,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat videoPlayer.seekTo(current); containerView.invalidate(); videoPlayerSeekbar.setProgress(current / (float) total); - videoPlayerControlFrameLayout.invalidate(); + videoPlayerSeekbarView.invalidate(); return true; } } @@ -9193,23 +11138,23 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat muteItem.setClickable(true); muteItem.animate().alpha(1f).setDuration(180).start(); if (muteVideo) { - actionBar.setSubtitle(null); - muteItem.setImageResource(R.drawable.volume_off); - muteItem.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_dialogFloatingButton), PorterDuff.Mode.MULTIPLY)); + actionBar.setSubtitle(LocaleController.getString("SoundMuted", R.string.SoundMuted)); + muteItem.setImageResource(R.drawable.video_send_mute); if (compressItem.getTag() != null) { compressItem.setAlpha(0.5f); + compressItem.setEnabled(false); } - videoTimelineView.setMaxProgressDiff(30000.0f / videoDuration); + //videoTimelineView.setMaxProgressDiff(30000.0f / videoDuration); muteItem.setContentDescription(LocaleController.getString("NoSound", R.string.NoSound)); } else { - muteItem.setColorFilter(null); actionBar.setSubtitle(currentSubtitle); - muteItem.setImageResource(R.drawable.volume_on); + muteItem.setImageResource(R.drawable.video_send_unmute); muteItem.setContentDescription(LocaleController.getString("Sound", R.string.Sound)); if (compressItem.getTag() != null) { compressItem.setAlpha(1.0f); + compressItem.setEnabled(true); } - videoTimelineView.setMaxProgressDiff(1.0f); + //videoTimelineView.setMaxProgressDiff(1.0f); } } } @@ -9284,7 +11229,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat String videoDimension = String.format("%dx%d", width, height); String videoTimeSize = String.format("%s, ~%s", AndroidUtilities.formatShortDuration((int) (estimatedDuration / 1000)), AndroidUtilities.formatFileSize(estimatedSize)); currentSubtitle = String.format("%s, %s", videoDimension, videoTimeSize); - actionBar.setSubtitle(muteVideo ? null : currentSubtitle); + actionBar.setSubtitle(muteVideo ? LocaleController.getString("SoundMuted", R.string.SoundMuted) : currentSubtitle); } private void requestVideoPreview(int request) { @@ -9299,9 +11244,9 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat if (resultHeight == originalHeight && resultWidth == originalWidth) { tryStartRequestPreviewOnFinish = false; photoProgressViews[0].setProgress(0,photoProgressViews[0].backgroundState == 0 || photoProgressViews[0].previousBackgroundState == 0); - photoProgressViews[0].setBackgroundState(3,false); + photoProgressViews[0].setBackgroundState(PROGRESS_PLAY, false); if (!wasRequestingPreview) { - preparePlayer(currentPlayingVideoFile, false, false); + preparePlayer(currentPlayingVideoFile, false, false, currentSavedFilterState); videoPlayer.seekTo((long) (videoTimelineView.getLeftProgress() * videoDuration)); } else { loadInitialVideo = true; @@ -9347,13 +11292,13 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat requestingPreview = true; photoProgressViews[0].setProgress(0,photoProgressViews[0].backgroundState == 0 || photoProgressViews[0].previousBackgroundState == 0); - photoProgressViews[0].setBackgroundState(0,false); + photoProgressViews[0].setBackgroundState(PROGRESS_EMPTY, false); } } else { tryStartRequestPreviewOnFinish = false; - photoProgressViews[0].setBackgroundState(3,false); + photoProgressViews[0].setBackgroundState(PROGRESS_PLAY, false); if (request == 2) { - preparePlayer(currentPlayingVideoFile, false, false); + preparePlayer(currentPlayingVideoFile, false, false, currentSavedFilterState); videoPlayer.seekTo((long) (videoTimelineView.getLeftProgress() * videoDuration)); } } @@ -9457,7 +11402,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } }); qualityChooseViewAnimation.setDuration(200); - qualityChooseViewAnimation.setInterpolator(new AccelerateInterpolator()); + qualityChooseViewAnimation.setInterpolator(AndroidUtilities.decelerateInterpolator); qualityChooseViewAnimation.start(); } @@ -9467,7 +11412,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } }); qualityChooseViewAnimation.setDuration(200); - qualityChooseViewAnimation.setInterpolator(new DecelerateInterpolator()); + qualityChooseViewAnimation.setInterpolator(AndroidUtilities.accelerateInterpolator); qualityChooseViewAnimation.start(); if (cameraItem.getVisibility() == View.VISIBLE) { @@ -9476,6 +11421,12 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat .alpha(show ? 0 : 1) .setDuration(200); } + if (muteItem.getVisibility() == View.VISIBLE) { + muteItem.animate().scaleX(show ? 0.25f : 1f) + .scaleY(show ? 0.25f : 1f) + .alpha(show ? 0 : 1) + .setDuration(200); + } } private ByteArrayInputStream cleanBuffer(byte[] data) { @@ -9505,10 +11456,6 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat videoTimelineView.setVideoPath(videoPath, start, end); videoPreviewMessageObject = null; muteVideo = muted; - Object object = imagesArrLocals.get(currentIndex); - if (object instanceof MediaController.PhotoEntry) { - ((MediaController.PhotoEntry) object).editedInfo = getCurrentVideoEditedInfo(); - } compressionsCount = -1; rotationValue = 0; @@ -9554,7 +11501,9 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat selectedCompression = preferences.getInt("compress_video2", selectCompression()); updateWidthHeightBitrateForCompression(); - if (selectedCompression > compressionsCount - 1) selectedCompression = compressionsCount - 1; + if (selectedCompression > compressionsCount - 1) { + selectedCompression = compressionsCount - 1; + } setCompressItemEnabled(compressionsCount > 1, true); if (BuildVars.LOGS_ENABLED) { @@ -9641,7 +11590,10 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } if (animated) { compressItemAnimation = new AnimatorSet(); - compressItemAnimation.playTogether(ObjectAnimator.ofFloat(compressItem, View.ALPHA, enabled ? 1.0f : 0.5f)); + compressItemAnimation.playTogether( + ObjectAnimator.ofFloat(compressItem, View.ALPHA, enabled ? 1.0f : 0.5f), + ObjectAnimator.ofFloat(paintItem, View.ALPHA, videoConvertSupported ? 1.0f : 0.5f), + ObjectAnimator.ofFloat(tuneItem, View.ALPHA, videoConvertSupported ? 1.0f : 0.5f)); compressItemAnimation.setDuration(180); compressItemAnimation.setInterpolator(decelerateInterpolator); compressItemAnimation.start(); @@ -9670,7 +11622,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat @Override public boolean isEnabled(RecyclerView.ViewHolder holder) { - return true; + return false; } @Override @@ -9683,7 +11635,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { - PhotoPickerPhotoCell cell = new PhotoPickerPhotoCell(mContext, false); + PhotoPickerPhotoCell cell = new PhotoPickerPhotoCell(mContext); cell.checkFrame.setOnClickListener(v -> { Object photoEntry = ((View) v.getParent()).getTag(); int idx = imagesArrLocals.indexOf(photoEntry); @@ -9695,12 +11647,18 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } if (num >= 0) { selectedPhotosAdapter.notifyItemRemoved(num); + if (num == 0) { + selectedPhotosAdapter.notifyItemChanged(0); + } } updateSelectedCount(); } else { int num = placeProvider.setPhotoUnchecked(photoEntry); if (num >= 0) { selectedPhotosAdapter.notifyItemRemoved(num); + if (num == 0) { + selectedPhotosAdapter.notifyItemChanged(0); + } updateSelectedCount(); } } @@ -9711,7 +11669,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { PhotoPickerPhotoCell cell = (PhotoPickerPhotoCell) holder.itemView; - cell.itemWidth = AndroidUtilities.dp(82); + cell.setItemWidth(AndroidUtilities.dp(85), position != 0 ? AndroidUtilities.dp(6) : 0); BackupImageView imageView = cell.imageView; boolean showing; imageView.setOrientation(0, true); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/PopupNotificationActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/PopupNotificationActivity.java index 0ace93a10..5601530b2 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/PopupNotificationActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/PopupNotificationActivity.java @@ -187,7 +187,7 @@ public class PopupNotificationActivity extends Activity implements NotificationC setMeasuredDimension(widthSize, heightSize); - int keyboardSize = getKeyboardHeight(); + int keyboardSize = measureKeyboardHeight(); if (keyboardSize <= AndroidUtilities.dp(20)) { heightSize -= chatActivityEnterView.getEmojiPadding(); @@ -213,7 +213,7 @@ public class PopupNotificationActivity extends Activity implements NotificationC protected void onLayout(boolean changed, int l, int t, int r, int b) { final int count = getChildCount(); - int paddingBottom = getKeyboardHeight() <= AndroidUtilities.dp(20) ? chatActivityEnterView.getEmojiPadding() : 0; + int paddingBottom = measureKeyboardHeight() <= AndroidUtilities.dp(20) ? chatActivityEnterView.getEmojiPadding() : 0; for (int i = 0; i < count; i++) { final View child = getChildAt(i); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/PrivacySettingsActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/PrivacySettingsActivity.java index 36d6b1c20..c33d9f09b 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/PrivacySettingsActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/PrivacySettingsActivity.java @@ -10,6 +10,7 @@ package org.telegram.ui; import android.content.Context; import android.content.DialogInterface; +import android.text.TextUtils; import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; @@ -56,6 +57,8 @@ public class PrivacySettingsActivity extends BaseFragment implements Notificatio @SuppressWarnings("FieldCanBeLocal") private LinearLayoutManager layoutManager; + private TLRPC.TL_account_password currentPassword; + private int privacySectionRow; private int blockedRow; private int phoneNumberRow; @@ -111,6 +114,7 @@ public class PrivacySettingsActivity extends BaseFragment implements Notificatio getNotificationCenter().addObserver(this, NotificationCenter.privacyRulesUpdated); getNotificationCenter().addObserver(this, NotificationCenter.blockedUsersDidLoad); + getNotificationCenter().addObserver(this, NotificationCenter.didSetOrRemoveTwoStepPassword); return true; } @@ -120,6 +124,7 @@ public class PrivacySettingsActivity extends BaseFragment implements Notificatio super.onFragmentDestroy(); getNotificationCenter().removeObserver(this, NotificationCenter.privacyRulesUpdated); getNotificationCenter().removeObserver(this, NotificationCenter.blockedUsersDidLoad); + getNotificationCenter().removeObserver(this, NotificationCenter.didSetOrRemoveTwoStepPassword); if (currentSync != newSync) { getUserConfig().syncContacts = newSync; getUserConfig().saveConfig(false); @@ -284,7 +289,25 @@ public class PrivacySettingsActivity extends BaseFragment implements Notificatio } else if (position == forwardsRow) { presentFragment(new PrivacyControlActivity(ContactsController.PRIVACY_RULES_TYPE_FORWARDS)); } else if (position == passwordRow) { - presentFragment(new TwoStepVerificationActivity(0)); + if (currentPassword == null) { + return; + } + if (!TwoStepVerificationActivity.canHandleCurrentPassword(currentPassword, false)) { + AlertsCreator.showUpdateAppAlert(getParentActivity(), LocaleController.getString("UpdateAppAlert", R.string.UpdateAppAlert), true); + } + if (currentPassword.has_password) { + TwoStepVerificationActivity fragment = new TwoStepVerificationActivity(); + fragment.setPassword(currentPassword); + presentFragment(fragment); + } else { + int type; + if (TextUtils.isEmpty(currentPassword.email_unconfirmed_pattern)) { + type = TwoStepVerificationSetupActivity.TYPE_INTRO; + } else { + type = TwoStepVerificationSetupActivity.TYPE_EMAIL_CONFIRM; + } + presentFragment(new TwoStepVerificationSetupActivity(type, currentPassword)); + } } else if (position == passcodeRow) { if (SharedConfig.passcodeHash.length() > 0) { presentFragment(new PasscodeActivity(2)); @@ -447,6 +470,15 @@ public class PrivacySettingsActivity extends BaseFragment implements Notificatio } } else if (id == NotificationCenter.blockedUsersDidLoad) { listAdapter.notifyItemChanged(blockedRow); + } else if (id == NotificationCenter.didSetOrRemoveTwoStepPassword) { + if (args.length > 0) { + currentPassword = (TLRPC.TL_account_password) args[0]; + if (listAdapter != null) { + listAdapter.notifyItemChanged(passwordRow); + } + } else { + loadPasswordSettings(); + } } } @@ -494,20 +526,23 @@ public class PrivacySettingsActivity extends BaseFragment implements Notificatio } private void loadPasswordSettings() { - if (getUserConfig().hasSecureData) { - return; - } TLRPC.TL_account_getPassword req = new TLRPC.TL_account_getPassword(); getConnectionsManager().sendRequest(req, (response, error) -> { if (response != null) { TLRPC.TL_account_password password = (TLRPC.TL_account_password) response; - if (password.has_secure_values) { - AndroidUtilities.runOnUIThread(() -> { + AndroidUtilities.runOnUIThread(() -> { + currentPassword = password; + TwoStepVerificationActivity.initPasswordNewAlgo(currentPassword); + if (!getUserConfig().hasSecureData && password.has_secure_values) { getUserConfig().hasSecureData = true; getUserConfig().saveConfig(false); updateRows(); - }); - } + } else { + if (listAdapter != null) { + listAdapter.notifyItemChanged(passwordRow); + } + } + }); } }, ConnectionsManager.RequestFlagFailOnServerErrors | ConnectionsManager.RequestFlagWithoutLogin); } @@ -696,7 +731,15 @@ public class PrivacySettingsActivity extends BaseFragment implements Notificatio } else if (position == webSessionsRow) { textCell.setText(LocaleController.getString("WebSessionsTitle", R.string.WebSessionsTitle), false); } else if (position == passwordRow) { - textCell.setText(LocaleController.getString("TwoStepVerification", R.string.TwoStepVerification), true); + String value; + if (currentPassword == null) { + value = LocaleController.getString("Loading", R.string.Loading); + } else if (currentPassword.has_password) { + value = LocaleController.getString("PasswordOn", R.string.PasswordOn); + } else { + value = LocaleController.getString("PasswordOff", R.string.PasswordOff); + } + textCell.setTextAndValue(LocaleController.getString("TwoStepVerification", R.string.TwoStepVerification), value, true); } else if (position == passcodeRow) { textCell.setText(LocaleController.getString("Passcode", R.string.Passcode), true); } else if (position == phoneNumberRow) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ProfileActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ProfileActivity.java index f098fc29e..bb5258de2 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ProfileActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ProfileActivity.java @@ -292,6 +292,8 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter. private int joinRow; private int lastSectionRow; + private int transitionIndex; + private final Property HEADER_SHADOW = new AnimationProperties.FloatProperty("headerShadow") { @Override public void setValue(ProfileActivity object, float value) { @@ -1480,6 +1482,7 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter. nameTextView[1].setTextColor(Color.WHITE); onlineTextView[1].setTextColor(Color.argb(179, 255, 255, 255)); actionBar.setItemsBackgroundColor(Theme.ACTION_BAR_WHITE_SELECTOR_COLOR, false); + actionBar.setItemsColor(Color.WHITE, false); overlaysView.setOverlaysVisible(); overlaysView.setAlphaValue(1.0f, false); avatarImage.setForegroundAlpha(1.0f); @@ -2600,6 +2603,18 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter. otherItem.setIconColor(Theme.getColor(Theme.key_actionBarDefaultIcon)); callItem.setIconColor(Theme.getColor(Theme.key_actionBarDefaultIcon)); editItem.setIconColor(Theme.getColor(Theme.key_actionBarDefaultIcon)); + + if (verifiedDrawable != null) { + color1 = Theme.getColor(Theme.key_profile_verifiedBackground); + color2 = Theme.getColor(Theme.key_player_actionBarTitle); + verifiedDrawable.setColorFilter(AndroidUtilities.getOffsetColor(color1, color2, value, 1.0f), PorterDuff.Mode.MULTIPLY); + } + + if (verifiedCheckDrawable != null) { + color1 = Theme.getColor(Theme.key_profile_verifiedCheck); + color2 = Theme.getColor(Theme.key_windowBackgroundWhite); + verifiedCheckDrawable.setColorFilter(AndroidUtilities.getOffsetColor(color1, color2, value, 1.0f), PorterDuff.Mode.MULTIPLY); + } } @Override @@ -2717,6 +2732,10 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter. } private void checkListViewScroll() { + if (sharedMediaLayoutAttached) { + sharedMediaLayout.setVisibleHeight(listView.getMeasuredHeight() - sharedMediaLayout.getTop()); + } + if (listView.getChildCount() <= 0 || openAnimationInProgress) { return; } @@ -3374,8 +3393,7 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter. openAnimationInProgress = true; } if (isOpen) { - NotificationCenter.getInstance(currentAccount).setAllowedNotificationsDutingAnimation(new int[]{NotificationCenter.dialogsNeedReload, NotificationCenter.closeChats, NotificationCenter.mediaCountDidLoad, NotificationCenter.mediaCountsDidLoad}); - NotificationCenter.getInstance(currentAccount).setAnimationInProgress(true); + transitionIndex = NotificationCenter.getInstance(currentAccount).setAnimationInProgress(transitionIndex, new int[]{NotificationCenter.dialogsNeedReload, NotificationCenter.closeChats, NotificationCenter.mediaCountDidLoad, NotificationCenter.mediaCountsDidLoad}); } } @@ -3390,7 +3408,7 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter. } } } - NotificationCenter.getInstance(currentAccount).setAnimationInProgress(false); + NotificationCenter.getInstance(currentAccount).onAnimationFinish(transitionIndex); } } @@ -4401,7 +4419,7 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter. break; } case 3: { - view = new AboutLinkCell(mContext) { + view = new AboutLinkCell(mContext, ProfileActivity.this) { @Override protected void didPressUrl(String url) { if (url.startsWith("@")) { @@ -4912,8 +4930,13 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter. arrayList.add(new ThemeDescription(listView, ThemeDescription.FLAG_BACKGROUNDFILTER | ThemeDescription.FLAG_CELLBACKGROUNDCOLOR, new Class[]{TextInfoPrivacyCell.class}, null, null, null, Theme.key_windowBackgroundGray)); arrayList.add(new ThemeDescription(listView, 0, new Class[]{TextInfoPrivacyCell.class}, new String[]{"textView"}, null, null, null, Theme.key_windowBackgroundWhiteGrayText4)); - arrayList.add(new ThemeDescription(nameTextView[1], 0, null, null, new Drawable[]{verifiedCheckDrawable}, null, Theme.key_profile_verifiedCheck)); - arrayList.add(new ThemeDescription(nameTextView[1], 0, null, null, new Drawable[]{verifiedDrawable}, null, Theme.key_profile_verifiedBackground)); + if (mediaHeaderVisible) { + arrayList.add(new ThemeDescription(nameTextView[1], 0, null, null, new Drawable[]{verifiedCheckDrawable}, null, Theme.key_player_actionBarTitle)); + arrayList.add(new ThemeDescription(nameTextView[1], 0, null, null, new Drawable[]{verifiedDrawable}, null, Theme.key_windowBackgroundWhite)); + } else { + arrayList.add(new ThemeDescription(nameTextView[1], 0, null, null, new Drawable[]{verifiedCheckDrawable}, null, Theme.key_profile_verifiedCheck)); + arrayList.add(new ThemeDescription(nameTextView[1], 0, null, null, new Drawable[]{verifiedDrawable}, null, Theme.key_profile_verifiedBackground)); + } return arrayList; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/SecretMediaViewer.java b/TMessagesProj/src/main/java/org/telegram/ui/SecretMediaViewer.java index 7ecdb754c..d94094dbb 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/SecretMediaViewer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/SecretMediaViewer.java @@ -446,7 +446,7 @@ public class SecretMediaViewer implements NotificationCenter.NotificationCenterD } @Override - public void onError(Exception e) { + public void onError(VideoPlayer player, Exception e) { if (playerRetryPlayCount > 0) { playerRetryPlayCount--; AndroidUtilities.runOnUIThread(() -> preparePlayer(file), 100); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/SettingsActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/SettingsActivity.java index d85a8100f..781da92dc 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/SettingsActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/SettingsActivity.java @@ -195,6 +195,7 @@ public class SettingsActivity extends BaseFragment implements NotificationCenter private int rowCount; private String currentBio; + private int transitionIndex; private final static int edit_name = 1; private final static int logout = 2; @@ -1154,8 +1155,7 @@ public class SettingsActivity extends BaseFragment implements NotificationCenter openAnimationInProgress = true; } if (isOpen) { - NotificationCenter.getInstance(currentAccount).setAllowedNotificationsDutingAnimation(new int[]{NotificationCenter.dialogsNeedReload, NotificationCenter.closeChats, NotificationCenter.mediaCountDidLoad, NotificationCenter.mediaCountsDidLoad, NotificationCenter.userInfoDidLoad}); - NotificationCenter.getInstance(currentAccount).setAnimationInProgress(true); + transitionIndex = NotificationCenter.getInstance(currentAccount).setAnimationInProgress(transitionIndex, new int[]{NotificationCenter.dialogsNeedReload, NotificationCenter.closeChats, NotificationCenter.mediaCountDidLoad, NotificationCenter.mediaCountsDidLoad, NotificationCenter.userInfoDidLoad}); } } @@ -1165,7 +1165,7 @@ public class SettingsActivity extends BaseFragment implements NotificationCenter if (!backward && playProfileAnimation && allowProfileAnimation) { openAnimationInProgress = false; } - NotificationCenter.getInstance(currentAccount).setAnimationInProgress(false); + NotificationCenter.getInstance(currentAccount).onAnimationFinish(transitionIndex); } } @@ -1727,7 +1727,7 @@ public class SettingsActivity extends BaseFragment implements NotificationCenter new SearchResult(106, LocaleController.getString("Calls", R.string.Calls), LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.menu_secret, () -> presentFragment(new PrivacyControlActivity(ContactsController.PRIVACY_RULES_TYPE_CALLS, true))), new SearchResult(107, LocaleController.getString("GroupsAndChannels", R.string.GroupsAndChannels), LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.menu_secret, () -> presentFragment(new PrivacyControlActivity(ContactsController.PRIVACY_RULES_TYPE_INVITE, true))), new SearchResult(108, LocaleController.getString("Passcode", R.string.Passcode), LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.menu_secret, () -> presentFragment(new PasscodeActivity(SharedConfig.passcodeHash.length() > 0 ? 2 : 0))), - new SearchResult(109, LocaleController.getString("TwoStepVerification", R.string.TwoStepVerification), LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.menu_secret, () -> presentFragment(new TwoStepVerificationActivity(0))), + new SearchResult(109, LocaleController.getString("TwoStepVerification", R.string.TwoStepVerification), LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.menu_secret, () -> presentFragment(new TwoStepVerificationActivity())), new SearchResult(110, LocaleController.getString("SessionsTitle", R.string.SessionsTitle), R.drawable.menu_secret, () -> presentFragment(new SessionsActivity(0))), new SearchResult(111, LocaleController.getString("PrivacyDeleteCloudDrafts", R.string.PrivacyDeleteCloudDrafts), "clearDraftsRow", LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.menu_secret, () -> presentFragment(new PrivacySettingsActivity())), new SearchResult(112, LocaleController.getString("DeleteAccountIfAwayFor2", R.string.DeleteAccountIfAwayFor2), "deleteAccountRow", LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.menu_secret, () -> presentFragment(new PrivacySettingsActivity())), diff --git a/TMessagesProj/src/main/java/org/telegram/ui/StatisticActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/StatisticActivity.java index c60dc8cd1..9fc72ee49 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/StatisticActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/StatisticActivity.java @@ -25,7 +25,6 @@ import androidx.annotation.NonNull; import androidx.collection.ArraySet; import androidx.core.graphics.ColorUtils; import androidx.interpolator.view.animation.FastOutSlowInInterpolator; -import androidx.recyclerview.widget.DefaultItemAnimator; import androidx.recyclerview.widget.DiffUtil; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; @@ -166,7 +165,7 @@ public class StatisticActivity extends BaseFragment implements NotificationCente if (recentPostsAll.size() > 0) { int lastPostId = recentPostsAll.get(0).counters.msg_id; int count = recentPostsAll.size(); - getMessagesStorage().getMessages(-chat.id, count, lastPostId, 0, 0, classGuid, 0, true, false, 0); + getMessagesStorage().getMessages(-chat.id, 0, false, count, lastPostId, 0, 0, classGuid, 0, true, false, 0); } AndroidUtilities.runOnUIThread(() -> { @@ -219,6 +218,7 @@ public class StatisticActivity extends BaseFragment implements NotificationCente super.onFragmentDestroy(); } + @SuppressWarnings("unchecked") @Override public void didReceivedNotification(int id, int account, Object... args) { if (id == NotificationCenter.messagesDidLoad) { @@ -1737,11 +1737,11 @@ public class StatisticActivity extends BaseFragment implements NotificationCente public OverviewData(TLRPC.TL_stats_broadcastStats stats) { int dif = (int) (stats.followers.current - stats.followers.previous); - float difPercent = Math.abs(dif / (float) stats.followers.previous * 100f); + float difPercent = stats.followers.previous == 0 ? 0 : Math.abs(dif / (float) stats.followers.previous * 100f); followersTitle = LocaleController.getString("FollowersChartTitle", R.string.FollowersChartTitle); followersPrimary = AndroidUtilities.formatWholeNumber((int) stats.followers.current, 0); - if (dif == 0) { + if (dif == 0 || difPercent == 0) { followersSecondary = ""; } else if (difPercent == (int) difPercent) { followersSecondary = String.format(Locale.ENGLISH, "%s (%d%s)", (dif > 0 ? "+" : "") + AndroidUtilities.formatWholeNumber(dif, 0), (int) difPercent, "%"); @@ -1751,11 +1751,11 @@ public class StatisticActivity extends BaseFragment implements NotificationCente followersUp = dif >= 0; dif = (int) (stats.shares_per_post.current - stats.shares_per_post.previous); - difPercent = Math.abs(dif / (float) stats.shares_per_post.previous * 100f); + difPercent = stats.shares_per_post.previous == 0 ? 0 : Math.abs(dif / (float) stats.shares_per_post.previous * 100f); sharesTitle = LocaleController.getString("SharesPerPost", R.string.SharesPerPost); sharesPrimary = AndroidUtilities.formatWholeNumber((int) stats.shares_per_post.current, 0); - if (dif == 0) { + if (dif == 0 || difPercent == 0) { sharesSecondary = ""; } else if (difPercent == (int) difPercent) { sharesSecondary = String.format(Locale.ENGLISH, "%s (%d%s)", (dif > 0 ? "+" : "") + AndroidUtilities.formatWholeNumber(dif, 0), (int) difPercent, "%"); @@ -1765,10 +1765,10 @@ public class StatisticActivity extends BaseFragment implements NotificationCente sharesUp = dif >= 0; dif = (int) (stats.views_per_post.current - stats.views_per_post.previous); - difPercent = Math.abs(dif / (float) stats.views_per_post.previous * 100f); + difPercent = stats.views_per_post.previous == 0 ? 0 : Math.abs(dif / (float) stats.views_per_post.previous * 100f); viewsTitle = LocaleController.getString("ViewsPerPost", R.string.ViewsPerPost); viewsPrimary = AndroidUtilities.formatWholeNumber((int) stats.views_per_post.current, 0); - if (dif == 0) { + if (dif == 0 || difPercent == 0) { viewsSecondary = ""; } else if (difPercent == (int) difPercent) { viewsSecondary = String.format(Locale.ENGLISH, "%s (%d%s)", (dif > 0 ? "+" : "") + AndroidUtilities.formatWholeNumber(dif, 0), (int) difPercent, "%"); @@ -1782,7 +1782,7 @@ public class StatisticActivity extends BaseFragment implements NotificationCente if (difPercent == (int) difPercent) { notificationsPrimary = String.format(Locale.ENGLISH, "%d%s", (int) difPercent, "%"); } else { - notificationsPrimary = String.format(Locale.ENGLISH, "%.1f%s", difPercent, "%"); + notificationsPrimary = String.format(Locale.ENGLISH, "%.2f%s", difPercent, "%"); } } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/StickersActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/StickersActivity.java index 7b5c10a70..25ce88e67 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/StickersActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/StickersActivity.java @@ -86,6 +86,7 @@ public class StickersActivity extends BaseFragment implements NotificationCenter private DefaultItemAnimator itemAnimator; private ItemTouchHelper itemTouchHelper; private NumberTextView selectedCountTextView; + private TrendingStickersAlert trendingStickersAlert; private ActionBarMenuItem archiveMenuItem; private ActionBarMenuItem deleteMenuItem; @@ -281,7 +282,8 @@ public class StickersActivity extends BaseFragment implements NotificationCenter MediaDataController.getInstance(currentAccount).toggleStickerSet(getParentActivity(), stickerSet, 0, StickersActivity.this, false, false); } }; - new TrendingStickersAlert(context, this, new TrendingStickersLayout(context, trendingDelegate)).show(); + trendingStickersAlert = new TrendingStickersAlert(context, this, new TrendingStickersLayout(context, trendingDelegate)); + trendingStickersAlert.show(); } else if (position == archivedRow) { presentFragment(new ArchivedStickersActivity(currentType)); } else if (position == masksRow) { @@ -1012,6 +1014,10 @@ public class StickersActivity extends BaseFragment implements NotificationCenter themeDescriptions.add(new ThemeDescription(listView, ThemeDescription.FLAG_CHECKBOX, new Class[]{StickerSetCell.class}, new String[]{"checkBox"}, null, null, null, Theme.key_windowBackgroundWhite)); themeDescriptions.add(new ThemeDescription(listView, ThemeDescription.FLAG_CHECKBOXCHECK, new Class[]{StickerSetCell.class}, new String[]{"checkBox"}, null, null, null, Theme.key_checkboxCheck)); + if (trendingStickersAlert != null) { + themeDescriptions.addAll(trendingStickersAlert.getThemeDescriptions()); + } + return themeDescriptions; } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ThemePreviewActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ThemePreviewActivity.java index 39afc3f34..bf39f96ba 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ThemePreviewActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ThemePreviewActivity.java @@ -568,7 +568,7 @@ public class ThemePreviewActivity extends BaseFragment implements DownloadContro int viewHeight = getMeasuredHeight(); float scaleX = (float) getMeasuredWidth() / (float) background.getIntrinsicWidth(); float scaleY = (float) (viewHeight) / (float) background.getIntrinsicHeight(); - float scale = scaleX < scaleY ? scaleY : scaleX; + float scale = Math.max(scaleX, scaleY); int width = (int) Math.ceil(background.getIntrinsicWidth() * scale * parallaxScale); int height = (int) Math.ceil(background.getIntrinsicHeight() * scale * parallaxScale); int x = (getMeasuredWidth() - width) / 2; @@ -2717,7 +2717,7 @@ public class ThemePreviewActivity extends BaseFragment implements DownloadContro } } - public class DialogsAdapter extends RecyclerListView.SelectionAdapter { + public static class DialogsAdapter extends RecyclerListView.SelectionAdapter { private Context mContext; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/TooManyCommunitiesActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/TooManyCommunitiesActivity.java index 923ad9aab..214399ddf 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/TooManyCommunitiesActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/TooManyCommunitiesActivity.java @@ -481,7 +481,7 @@ public class TooManyCommunitiesActivity extends BaseFragment { break; case 4: default: - view = new GroupCreateUserCell(parent.getContext(), true, 0); + view = new GroupCreateUserCell(parent.getContext(), true, 0, false); break; } @@ -547,7 +547,7 @@ public class TooManyCommunitiesActivity extends BaseFragment { @NonNull @Override public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new RecyclerListView.Holder(new GroupCreateUserCell(parent.getContext(), true, 0)); + return new RecyclerListView.Holder(new GroupCreateUserCell(parent.getContext(), true, 0, false)); } @Override diff --git a/TMessagesProj/src/main/java/org/telegram/ui/TwoStepVerificationActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/TwoStepVerificationActivity.java index 581219f2b..4fc4737b2 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/TwoStepVerificationActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/TwoStepVerificationActivity.java @@ -8,19 +8,12 @@ package org.telegram.ui; -import android.animation.Animator; -import android.animation.AnimatorListenerAdapter; -import android.animation.AnimatorSet; -import android.animation.ObjectAnimator; -import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; import android.graphics.Typeface; import android.os.Vibrator; -import android.text.Editable; import android.text.InputType; import android.text.TextUtils; -import android.text.TextWatcher; import android.text.method.PasswordTransformationMethod; import android.util.TypedValue; import android.view.ActionMode; @@ -34,7 +27,6 @@ import android.widget.FrameLayout; import android.widget.LinearLayout; import android.widget.ScrollView; import android.widget.TextView; -import android.widget.Toast; import org.telegram.messenger.AndroidUtilities; import org.telegram.messenger.LocaleController; @@ -59,13 +51,11 @@ import org.telegram.ui.Cells.EditTextSettingsCell; import org.telegram.ui.Cells.TextInfoPrivacyCell; import org.telegram.ui.Cells.TextSettingsCell; import org.telegram.ui.Components.AlertsCreator; -import org.telegram.ui.Components.ContextProgressView; import org.telegram.ui.Components.EditTextBoldCursor; import org.telegram.ui.Components.EmptyTextProgressView; import org.telegram.ui.Components.LayoutHelper; import org.telegram.ui.Components.RecyclerListView; -import java.math.BigInteger; import java.util.ArrayList; import androidx.recyclerview.widget.LinearLayoutManager; @@ -82,15 +72,8 @@ public class TwoStepVerificationActivity extends BaseFragment implements Notific private AlertDialog progressDialog; private EmptyTextProgressView emptyView; private ActionBarMenuItem doneItem; - private ContextProgressView progressView; private ScrollView scrollView; - private EditTextSettingsCell codeFieldCell; - private AnimatorSet doneItemAnimation; - - private int type; - private int passwordSetState; - private int emailCodeLength = 6; private String firstPassword; private String hint; private String email; @@ -98,26 +81,18 @@ public class TwoStepVerificationActivity extends BaseFragment implements Notific private boolean loading; private boolean destroyed; private boolean paused; - private boolean waitingForEmail; private TLRPC.TL_account_password currentPassword; private boolean passwordEntered = true; private byte[] currentPasswordHash = new byte[0]; private long currentSecretId; private byte[] currentSecret; - private Runnable shortPollRunnable; - private boolean closeAfterSet; private int setPasswordRow; private int setPasswordDetailRow; private int changePasswordRow; - private int shadowRow; private int turnPasswordOffRow; private int setRecoveryEmailRow; private int changeRecoveryEmailRow; - private int resendCodeRow; - private int abortPasswordRow; - private int passwordSetupDetailRow; - private int passwordCodeFieldRow; private int passwordEnabledDetailRow; private int rowCount; @@ -129,49 +104,44 @@ public class TwoStepVerificationActivity extends BaseFragment implements Notific private final static int done_button = 1; - public TwoStepVerificationActivity(int type) { + public TwoStepVerificationActivity() { super(); - this.type = type; - if (type == 0) { - loadPasswordInfo(false); - } + } - public TwoStepVerificationActivity(int account, int type) { + public TwoStepVerificationActivity(int account) { super(); currentAccount = account; - this.type = type; - if (type == 0) { - loadPasswordInfo(false); - } } - protected void setRecoveryParams(TLRPC.TL_account_password password) { + public void setPassword(TLRPC.TL_account_password password) { currentPassword = password; - passwordSetState = 4; + } + + public void setCurrentPasswordParams(TLRPC.TL_account_password password, byte[] passwordHash, long secretId, byte[] secret) { + currentPassword = password; + currentPasswordHash = passwordHash; + currentSecret = secret; + currentSecretId = secretId; + passwordEntered = currentPasswordHash != null && currentPasswordHash.length > 0 || !currentPassword.has_password; } @Override public boolean onFragmentCreate() { super.onFragmentCreate(); - updateRows(); - if (type == 0) { - NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.didSetTwoStepPassword); + if (currentPassword == null || currentPassword.current_algo == null || currentPasswordHash == null || currentPasswordHash.length <= 0) { + loadPasswordInfo(false); } + updateRows(); + NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.twoStepPasswordChanged); return true; } @Override public void onFragmentDestroy() { super.onFragmentDestroy(); - if (type == 0) { - NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.didSetTwoStepPassword); - if (shortPollRunnable != null) { - AndroidUtilities.cancelRunOnUIThread(shortPollRunnable); - shortPollRunnable = null; - } - destroyed = true; - } + NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.twoStepPasswordChanged); + destroyed = true; if (progressDialog != null) { try { progressDialog.dismiss(); @@ -204,12 +174,6 @@ public class TwoStepVerificationActivity extends BaseFragment implements Notific ActionBarMenu menu = actionBar.createMenu(); doneItem = menu.addItemWithWidth(done_button, R.drawable.ic_done, AndroidUtilities.dp(56)); - progressView = new ContextProgressView(context, 1); - progressView.setAlpha(0.0f); - progressView.setScaleX(0.1f); - progressView.setScaleY(0.1f); - progressView.setVisibility(View.INVISIBLE); - doneItem.addView(progressView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); scrollView = new ScrollView(context); scrollView.setFillViewport(true); @@ -284,191 +248,99 @@ public class TwoStepVerificationActivity extends BaseFragment implements Notific bottomButton.setPadding(0, AndroidUtilities.dp(10), 0, 0); linearLayout2.addView(bottomButton, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, (LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.BOTTOM, 40, 0, 40, 14)); bottomButton.setOnClickListener(v -> { - if (type == 0) { - if (currentPassword.has_recovery) { - needShowProgress(); - TLRPC.TL_auth_requestPasswordRecovery req = new TLRPC.TL_auth_requestPasswordRecovery(); - ConnectionsManager.getInstance(currentAccount).sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> { - needHideProgress(); - if (error == null) { - final TLRPC.TL_auth_passwordRecovery res = (TLRPC.TL_auth_passwordRecovery) response; - AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setMessage(LocaleController.formatString("RestoreEmailSent", R.string.RestoreEmailSent, res.email_pattern)); - builder.setTitle(LocaleController.getString("RestoreEmailSentTitle", R.string.RestoreEmailSentTitle)); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), (dialogInterface, i) -> { - TwoStepVerificationActivity fragment = new TwoStepVerificationActivity(currentAccount, 1); - fragment.currentPassword = currentPassword; - fragment.currentPassword.email_unconfirmed_pattern = res.email_pattern; - fragment.currentSecretId = currentSecretId; - fragment.currentSecret = currentSecret; - fragment.passwordSetState = 4; - presentFragment(fragment); - }); - Dialog dialog = showDialog(builder.create()); - if (dialog != null) { - dialog.setCanceledOnTouchOutside(false); - dialog.setCancelable(false); - } - } else { - if (error.text.startsWith("FLOOD_WAIT")) { - int time = Utilities.parseInt(error.text); - String timeString; - if (time < 60) { - timeString = LocaleController.formatPluralString("Seconds", time); - } else { - timeString = LocaleController.formatPluralString("Minutes", time / 60); - } - showAlertWithText(LocaleController.getString("AppName", R.string.AppName), LocaleController.formatString("FloodWaitTime", R.string.FloodWaitTime, timeString)); + if (currentPassword.has_recovery) { + needShowProgress(); + TLRPC.TL_auth_requestPasswordRecovery req = new TLRPC.TL_auth_requestPasswordRecovery(); + ConnectionsManager.getInstance(currentAccount).sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> { + needHideProgress(); + if (error == null) { + final TLRPC.TL_auth_passwordRecovery res = (TLRPC.TL_auth_passwordRecovery) response; + currentPassword.email_unconfirmed_pattern = res.email_pattern; + TwoStepVerificationSetupActivity fragment = new TwoStepVerificationSetupActivity(currentAccount, TwoStepVerificationSetupActivity.TYPE_EMAIL_RECOVERY, currentPassword); + fragment.setCurrentPasswordParams(currentPasswordHash, currentSecretId, currentSecret, false); + presentFragment(fragment); + } else { + if (error.text.startsWith("FLOOD_WAIT")) { + int time = Utilities.parseInt(error.text); + String timeString; + if (time < 60) { + timeString = LocaleController.formatPluralString("Seconds", time); } else { - showAlertWithText(LocaleController.getString("AppName", R.string.AppName), error.text); + timeString = LocaleController.formatPluralString("Minutes", time / 60); } + showAlertWithText(LocaleController.getString("AppName", R.string.AppName), LocaleController.formatString("FloodWaitTime", R.string.FloodWaitTime, timeString)); + } else { + showAlertWithText(LocaleController.getString("AppName", R.string.AppName), error.text); } - }), ConnectionsManager.RequestFlagFailOnServerErrors | ConnectionsManager.RequestFlagWithoutLogin); - } else { - if (getParentActivity() == null) { - return; } - AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); - builder.setNegativeButton(LocaleController.getString("RestorePasswordResetAccount", R.string.RestorePasswordResetAccount), (dialog, which) -> Browser.openUrl(getParentActivity(), "https://telegram.org/deactivate?phone=" + UserConfig.getInstance(currentAccount).getClientPhone())); - builder.setTitle(LocaleController.getString("RestorePasswordNoEmailTitle", R.string.RestorePasswordNoEmailTitle)); - builder.setMessage(LocaleController.getString("RestorePasswordNoEmailText", R.string.RestorePasswordNoEmailText)); - showDialog(builder.create()); - } + }), ConnectionsManager.RequestFlagFailOnServerErrors | ConnectionsManager.RequestFlagWithoutLogin); } else { - if (passwordSetState == 4) { - showAlertWithText(LocaleController.getString("RestorePasswordNoEmailTitle", R.string.RestorePasswordNoEmailTitle), LocaleController.getString("RestoreEmailTroubleText", R.string.RestoreEmailTroubleText)); - } else { - AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setMessage(LocaleController.getString("YourEmailSkipWarningText", R.string.YourEmailSkipWarningText)); - builder.setTitle(LocaleController.getString("YourEmailSkipWarning", R.string.YourEmailSkipWarning)); - builder.setPositiveButton(LocaleController.getString("YourEmailSkip", R.string.YourEmailSkip), (dialogInterface, i) -> { - email = ""; - setNewPassword(false); - }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); - showDialog(builder.create()); + if (getParentActivity() == null) { + return; + } + AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); + builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder.setNegativeButton(LocaleController.getString("RestorePasswordResetAccount", R.string.RestorePasswordResetAccount), (dialog, which) -> Browser.openUrl(getParentActivity(), "https://telegram.org/deactivate?phone=" + UserConfig.getInstance(currentAccount).getClientPhone())); + builder.setTitle(LocaleController.getString("RestorePasswordNoEmailTitle", R.string.RestorePasswordNoEmailTitle)); + builder.setMessage(LocaleController.getString("RestorePasswordNoEmailText", R.string.RestorePasswordNoEmailText)); + showDialog(builder.create()); + } + }); + + emptyView = new EmptyTextProgressView(context); + emptyView.showProgress(); + frameLayout.addView(emptyView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); + + listView = new RecyclerListView(context); + listView.setLayoutManager(new LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false)); + listView.setEmptyView(emptyView); + listView.setVerticalScrollBarEnabled(false); + frameLayout.addView(listView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); + listView.setAdapter(listAdapter = new ListAdapter(context)); + listView.setOnItemClickListener((view, position) -> { + if (position == setPasswordRow || position == changePasswordRow) { + TwoStepVerificationSetupActivity fragment = new TwoStepVerificationSetupActivity(currentAccount, TwoStepVerificationSetupActivity.TYPE_ENTER_FIRST, currentPassword); + fragment.addFragmentToClose(this); + fragment.setCurrentPasswordParams(currentPasswordHash, currentSecretId, currentSecret, false); + presentFragment(fragment); + } else if (position == setRecoveryEmailRow || position == changeRecoveryEmailRow) { + TwoStepVerificationSetupActivity fragment = new TwoStepVerificationSetupActivity(currentAccount, TwoStepVerificationSetupActivity.TYPE_ENTER_EMAIL, currentPassword); + fragment.addFragmentToClose(this); + fragment.setCurrentPasswordParams(currentPasswordHash, currentSecretId, currentSecret, true); + presentFragment(fragment); + } else if (position == turnPasswordOffRow) { + AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); + + String text = LocaleController.getString("TurnPasswordOffQuestion", R.string.TurnPasswordOffQuestion); + if (currentPassword.has_secure_values) { + text += "\n\n" + LocaleController.getString("TurnPasswordOffPassport", R.string.TurnPasswordOffPassport); + } + String title = LocaleController.getString("TurnPasswordOffQuestionTitle", R.string.TurnPasswordOffQuestionTitle); + String buttonText = LocaleController.getString("Disable", R.string.Disable); + + builder.setMessage(text); + builder.setTitle(title); + builder.setPositiveButton(buttonText, (dialogInterface, i) -> clearPassword()); + builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + AlertDialog alertDialog = builder.create(); + showDialog(alertDialog); + TextView button = (TextView) alertDialog.getButton(DialogInterface.BUTTON_POSITIVE); + if (button != null) { + button.setTextColor(Theme.getColor(Theme.key_dialogTextRed2)); } } }); - if (type == 0) { - emptyView = new EmptyTextProgressView(context); - emptyView.showProgress(); - frameLayout.addView(emptyView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); + updateRows(); - listView = new RecyclerListView(context); - listView.setLayoutManager(new LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false)); - listView.setEmptyView(emptyView); - listView.setVerticalScrollBarEnabled(false); - frameLayout.addView(listView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); - listView.setAdapter(listAdapter = new ListAdapter(context)); - listView.setOnItemClickListener((view, position) -> { - if (position == setPasswordRow || position == changePasswordRow) { - TwoStepVerificationActivity fragment = new TwoStepVerificationActivity(currentAccount, 1); - fragment.currentPasswordHash = currentPasswordHash; - fragment.currentPassword = currentPassword; - fragment.currentSecretId = currentSecretId; - fragment.currentSecret = currentSecret; - presentFragment(fragment); - } else if (position == setRecoveryEmailRow || position == changeRecoveryEmailRow) { - TwoStepVerificationActivity fragment = new TwoStepVerificationActivity(currentAccount, 1); - fragment.currentPasswordHash = currentPasswordHash; - fragment.currentPassword = currentPassword; - fragment.currentSecretId = currentSecretId; - fragment.currentSecret = currentSecret; - fragment.emailOnly = true; - fragment.passwordSetState = 3; - presentFragment(fragment); - } else if (position == turnPasswordOffRow || position == abortPasswordRow) { - AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - String text; - String buttonText; - String title; - if (position == abortPasswordRow) { - if (currentPassword != null && currentPassword.has_password) { - text = LocaleController.getString("CancelEmailQuestion", R.string.CancelEmailQuestion); - } else { - text = LocaleController.getString("CancelPasswordQuestion", R.string.CancelPasswordQuestion); - } - title = LocaleController.getString("CancelEmailQuestionTitle", R.string.CancelEmailQuestionTitle); - buttonText = LocaleController.getString("Abort", R.string.Abort); - } else { - text = LocaleController.getString("TurnPasswordOffQuestion", R.string.TurnPasswordOffQuestion); - if (currentPassword.has_secure_values) { - text += "\n\n" + LocaleController.getString("TurnPasswordOffPassport", R.string.TurnPasswordOffPassport); - } - title = LocaleController.getString("TurnPasswordOffQuestionTitle", R.string.TurnPasswordOffQuestionTitle); - buttonText = LocaleController.getString("Disable", R.string.Disable); - } - builder.setMessage(text); - builder.setTitle(title); - builder.setPositiveButton(buttonText, (dialogInterface, i) -> setNewPassword(true)); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); - AlertDialog alertDialog = builder.create(); - showDialog(alertDialog); - TextView button = (TextView) alertDialog.getButton(DialogInterface.BUTTON_POSITIVE); - if (button != null) { - button.setTextColor(Theme.getColor(Theme.key_dialogTextRed2)); - } - } else if (position == resendCodeRow) { - TLRPC.TL_account_resendPasswordEmail req = new TLRPC.TL_account_resendPasswordEmail(); - ConnectionsManager.getInstance(currentAccount).sendRequest(req, (response, error) -> { - - }); - AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setMessage(LocaleController.getString("ResendCodeInfo", R.string.ResendCodeInfo)); - builder.setTitle(LocaleController.getString("AppName", R.string.AppName)); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); - showDialog(builder.create()); - } - }); - - codeFieldCell = new EditTextSettingsCell(context); - codeFieldCell.setTextAndHint("", LocaleController.getString("PasswordCode", R.string.PasswordCode), false); - codeFieldCell.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite)); - EditTextBoldCursor editText = codeFieldCell.getTextView(); - editText.setInputType(InputType.TYPE_CLASS_PHONE); - editText.setImeOptions(EditorInfo.IME_ACTION_DONE); - editText.setOnEditorActionListener((textView, i, keyEvent) -> { - if (i == EditorInfo.IME_ACTION_DONE) { - processDone(); - return true; - } - return false; - }); - editText.addTextChangedListener(new TextWatcher() { - @Override - public void beforeTextChanged(CharSequence s, int start, int count, int after) { - - } - - @Override - public void onTextChanged(CharSequence s, int start, int before, int count) { - - } - - @Override - public void afterTextChanged(Editable s) { - if (emailCodeLength != 0 && s.length() == emailCodeLength) { - processDone(); - } - } - }); - - updateRows(); - - actionBar.setTitle(LocaleController.getString("TwoStepVerificationTitle", R.string.TwoStepVerificationTitle)); - if (delegate != null) { - titleTextView.setText(LocaleController.getString("PleaseEnterCurrentPasswordTransfer", R.string.PleaseEnterCurrentPasswordTransfer)); - } else { - titleTextView.setText(LocaleController.getString("PleaseEnterCurrentPassword", R.string.PleaseEnterCurrentPassword)); - } - } else if (type == 1) { - setPasswordSetState(passwordSetState); + actionBar.setTitle(LocaleController.getString("TwoStepVerificationTitle", R.string.TwoStepVerificationTitle)); + if (delegate != null) { + titleTextView.setText(LocaleController.getString("PleaseEnterCurrentPasswordTransfer", R.string.PleaseEnterCurrentPasswordTransfer)); + } else { + titleTextView.setText(LocaleController.getString("PleaseEnterCurrentPassword", R.string.PleaseEnterCurrentPassword)); } - if (passwordEntered && type != 1) { + if (passwordEntered) { fragmentView.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundGray)); fragmentView.setTag(Theme.key_windowBackgroundGray); } else { @@ -481,15 +353,9 @@ public class TwoStepVerificationActivity extends BaseFragment implements Notific @Override public void didReceivedNotification(int id, int account, Object... args) { - if (id == NotificationCenter.didSetTwoStepPassword) { + if (id == NotificationCenter.twoStepPasswordChanged) { if (args != null && args.length > 0 && args[0] != null) { currentPasswordHash = (byte[]) args[0]; - if (closeAfterSet) { - String email = (String) args[4]; - if (TextUtils.isEmpty(email) && closeAfterSet) { - removeSelfFromStack(); - } - } } loadPasswordInfo(false); updateRows(); @@ -506,28 +372,9 @@ public class TwoStepVerificationActivity extends BaseFragment implements Notific public void onResume() { super.onResume(); paused = false; - if (type == 1) { - AndroidUtilities.runOnUIThread(() -> { - if (passwordEditText != null) { - passwordEditText.requestFocus(); - AndroidUtilities.showKeyboard(passwordEditText); - } - }, 200); - } else if (type == 0 && codeFieldCell != null && codeFieldCell.getVisibility() == View.VISIBLE) { - AndroidUtilities.runOnUIThread(() -> { - if (codeFieldCell != null) { - codeFieldCell.getTextView().requestFocus(); - AndroidUtilities.showKeyboard(codeFieldCell.getTextView()); - } - }, 200); - } AndroidUtilities.requestAdjustResize(getParentActivity(), classGuid); } - public void setCloseAfterSet(boolean value) { - closeAfterSet = value; - } - public void setCurrentPasswordInfo(byte[] hash, TLRPC.TL_account_password password) { if (hash != null) { currentPasswordHash = hash; @@ -539,17 +386,6 @@ public class TwoStepVerificationActivity extends BaseFragment implements Notific delegate = twoStepVerificationActivityDelegate; } - @Override - public void onTransitionAnimationEnd(boolean isOpen, boolean backward) { - if (isOpen) { - if (type == 1) { - AndroidUtilities.showKeyboard(passwordEditText); - } else if (type == 0 && codeFieldCell != null && codeFieldCell.getVisibility() == View.VISIBLE) { - AndroidUtilities.showKeyboard(codeFieldCell.getTextView()); - } - } - } - public static boolean canHandleCurrentPassword(TLRPC.TL_account_password password, boolean login) { if (login) { if (password.current_algo instanceof TLRPC.TL_passwordKdfAlgoUnknown) { @@ -601,95 +437,13 @@ public class TwoStepVerificationActivity extends BaseFragment implements Notific if (!silent) { passwordEntered = currentPasswordHash != null && currentPasswordHash.length > 0 || !currentPassword.has_password; } - waitingForEmail = !TextUtils.isEmpty(currentPassword.email_unconfirmed_pattern); initPasswordNewAlgo(currentPassword); - if (!paused && closeAfterSet && currentPassword.has_password) { - TLRPC.PasswordKdfAlgo pendingCurrentAlgo = currentPassword.current_algo; - TLRPC.SecurePasswordKdfAlgo pendingNewSecureAlgo = currentPassword.new_secure_algo; - byte[] pendingSecureRandom = currentPassword.secure_random; - String pendingEmail = currentPassword.has_recovery ? "1" : null; - String pendingHint = currentPassword.hint != null ? currentPassword.hint : ""; - - if (!waitingForEmail && pendingCurrentAlgo != null) { - NotificationCenter.getInstance(currentAccount).removeObserver(TwoStepVerificationActivity.this, NotificationCenter.didSetTwoStepPassword); - NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.didSetTwoStepPassword, null, pendingCurrentAlgo, pendingNewSecureAlgo, pendingSecureRandom, pendingEmail, pendingHint, null, null); - finishFragment(); - } - } - } - if (type == 0 && !destroyed && shortPollRunnable == null && currentPassword != null && !TextUtils.isEmpty(currentPassword.email_unconfirmed_pattern)) { - startShortpoll(); + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.didSetOrRemoveTwoStepPassword, currentPassword); } updateRows(); }), ConnectionsManager.RequestFlagFailOnServerErrors | ConnectionsManager.RequestFlagWithoutLogin); } - private void startShortpoll() { - if (shortPollRunnable != null) { - AndroidUtilities.cancelRunOnUIThread(shortPollRunnable); - } - shortPollRunnable = () -> { - if (shortPollRunnable == null) { - return; - } - loadPasswordInfo(true); - shortPollRunnable = null; - }; - AndroidUtilities.runOnUIThread(shortPollRunnable, 5000); - } - - private void setPasswordSetState(int state) { - if (passwordEditText == null) { - return; - } - passwordSetState = state; - if (passwordSetState == 0) { - actionBar.setTitle(LocaleController.getString("YourPassword", R.string.YourPassword)); - if (currentPassword.has_password) { - titleTextView.setText(LocaleController.getString("PleaseEnterPassword", R.string.PleaseEnterPassword)); - } else { - titleTextView.setText(LocaleController.getString("PleaseEnterFirstPassword", R.string.PleaseEnterFirstPassword)); - } - passwordEditText.setImeOptions(EditorInfo.IME_ACTION_NEXT); - passwordEditText.setTransformationMethod(PasswordTransformationMethod.getInstance()); - bottomTextView.setVisibility(View.INVISIBLE); - bottomButton.setVisibility(View.INVISIBLE); - } else if (passwordSetState == 1) { - actionBar.setTitle(LocaleController.getString("YourPassword", R.string.YourPassword)); - titleTextView.setText(LocaleController.getString("PleaseReEnterPassword", R.string.PleaseReEnterPassword)); - passwordEditText.setImeOptions(EditorInfo.IME_ACTION_NEXT); - passwordEditText.setTransformationMethod(PasswordTransformationMethod.getInstance()); - bottomTextView.setVisibility(View.INVISIBLE); - bottomButton.setVisibility(View.INVISIBLE); - } else if (passwordSetState == 2) { - actionBar.setTitle(LocaleController.getString("PasswordHint", R.string.PasswordHint)); - titleTextView.setText(LocaleController.getString("PasswordHintText", R.string.PasswordHintText)); - passwordEditText.setImeOptions(EditorInfo.IME_ACTION_NEXT); - passwordEditText.setTransformationMethod(null); - bottomTextView.setVisibility(View.INVISIBLE); - bottomButton.setVisibility(View.INVISIBLE); - } else if (passwordSetState == 3) { - actionBar.setTitle(LocaleController.getString("RecoveryEmail", R.string.RecoveryEmail)); - titleTextView.setText(LocaleController.getString("YourEmail", R.string.YourEmail)); - passwordEditText.setImeOptions(EditorInfo.IME_ACTION_NEXT); - passwordEditText.setTransformationMethod(null); - passwordEditText.setInputType(EditorInfo.TYPE_CLASS_TEXT | EditorInfo.TYPE_TEXT_VARIATION_EMAIL_ADDRESS); - bottomTextView.setVisibility(View.VISIBLE); - bottomButton.setVisibility(emailOnly ? View.INVISIBLE : View.VISIBLE); - } else if (passwordSetState == 4) { - actionBar.setTitle(LocaleController.getString("PasswordRecovery", R.string.PasswordRecovery)); - titleTextView.setText(LocaleController.getString("PasswordCode", R.string.PasswordCode)); - bottomTextView.setText(LocaleController.getString("RestoreEmailSentInfo", R.string.RestoreEmailSentInfo)); - bottomButton.setText(LocaleController.formatString("RestoreEmailTrouble", R.string.RestoreEmailTrouble, currentPassword.email_unconfirmed_pattern != null ? currentPassword.email_unconfirmed_pattern : "")); - passwordEditText.setImeOptions(EditorInfo.IME_ACTION_DONE); - passwordEditText.setTransformationMethod(null); - passwordEditText.setInputType(InputType.TYPE_CLASS_PHONE); - bottomTextView.setVisibility(View.VISIBLE); - bottomButton.setVisibility(View.VISIBLE); - } - passwordEditText.setText(""); - } - private void updateRows() { StringBuilder lastValue = new StringBuilder(); lastValue.append(setPasswordRow); @@ -698,16 +452,9 @@ public class TwoStepVerificationActivity extends BaseFragment implements Notific lastValue.append(turnPasswordOffRow); lastValue.append(setRecoveryEmailRow); lastValue.append(changeRecoveryEmailRow); - lastValue.append(resendCodeRow); - lastValue.append(abortPasswordRow); - lastValue.append(passwordSetupDetailRow); - lastValue.append(passwordCodeFieldRow); lastValue.append(passwordEnabledDetailRow); - lastValue.append(shadowRow); lastValue.append(rowCount); - boolean wasCodeField = passwordCodeFieldRow != -1; - rowCount = 0; setPasswordRow = -1; setPasswordDetailRow = -1; @@ -715,20 +462,9 @@ public class TwoStepVerificationActivity extends BaseFragment implements Notific turnPasswordOffRow = -1; setRecoveryEmailRow = -1; changeRecoveryEmailRow = -1; - abortPasswordRow = -1; - resendCodeRow = -1; - passwordSetupDetailRow = -1; - passwordCodeFieldRow = -1; passwordEnabledDetailRow = -1; - shadowRow = -1; if (!loading && currentPassword != null) { - if (waitingForEmail) { - passwordCodeFieldRow = rowCount++; - passwordSetupDetailRow = rowCount++; - resendCodeRow = rowCount++; - abortPasswordRow = rowCount++; - shadowRow = rowCount++; - } else if (currentPassword.has_password) { + if (currentPassword.has_password) { changePasswordRow = rowCount++; turnPasswordOffRow = rowCount++; if (currentPassword.has_recovery) { @@ -749,19 +485,10 @@ public class TwoStepVerificationActivity extends BaseFragment implements Notific newValue.append(turnPasswordOffRow); newValue.append(setRecoveryEmailRow); newValue.append(changeRecoveryEmailRow); - newValue.append(resendCodeRow); - newValue.append(abortPasswordRow); - newValue.append(passwordSetupDetailRow); - newValue.append(passwordCodeFieldRow); newValue.append(passwordEnabledDetailRow); - newValue.append(shadowRow); newValue.append(rowCount); if (listAdapter != null && !lastValue.toString().equals(newValue.toString())) { listAdapter.notifyDataSetChanged(); - if (passwordCodeFieldRow == -1 && getParentActivity() != null && wasCodeField) { - AndroidUtilities.hideKeyboard(getParentActivity().getCurrentFocus()); - codeFieldCell.setText("", false); - } } if (fragmentView != null) { if (loading || passwordEntered) { @@ -770,9 +497,7 @@ public class TwoStepVerificationActivity extends BaseFragment implements Notific scrollView.setVisibility(View.INVISIBLE); listView.setEmptyView(emptyView); } - if (waitingForEmail && currentPassword != null) { - doneItem.setVisibility(View.VISIBLE); - } else if (passwordEditText != null) { + if (passwordEditText != null) { doneItem.setVisibility(View.GONE); passwordEditText.setVisibility(View.INVISIBLE); titleTextView.setVisibility(View.INVISIBLE); @@ -813,55 +538,6 @@ public class TwoStepVerificationActivity extends BaseFragment implements Notific } } - private void showDoneProgress(final boolean show) { - if (doneItemAnimation != null) { - doneItemAnimation.cancel(); - } - doneItemAnimation = new AnimatorSet(); - if (show) { - progressView.setVisibility(View.VISIBLE); - doneItem.setEnabled(false); - doneItemAnimation.playTogether( - ObjectAnimator.ofFloat(doneItem.getContentView(), "scaleX", 0.1f), - ObjectAnimator.ofFloat(doneItem.getContentView(), "scaleY", 0.1f), - ObjectAnimator.ofFloat(doneItem.getContentView(), "alpha", 0.0f), - ObjectAnimator.ofFloat(progressView, "scaleX", 1.0f), - ObjectAnimator.ofFloat(progressView, "scaleY", 1.0f), - ObjectAnimator.ofFloat(progressView, "alpha", 1.0f)); - } else { - doneItem.getContentView().setVisibility(View.VISIBLE); - doneItem.setEnabled(true); - doneItemAnimation.playTogether( - ObjectAnimator.ofFloat(progressView, "scaleX", 0.1f), - ObjectAnimator.ofFloat(progressView, "scaleY", 0.1f), - ObjectAnimator.ofFloat(progressView, "alpha", 0.0f), - ObjectAnimator.ofFloat(doneItem.getContentView(), "scaleX", 1.0f), - ObjectAnimator.ofFloat(doneItem.getContentView(), "scaleY", 1.0f), - ObjectAnimator.ofFloat(doneItem.getContentView(), "alpha", 1.0f)); - } - doneItemAnimation.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - if (doneItemAnimation != null && doneItemAnimation.equals(animation)) { - if (!show) { - progressView.setVisibility(View.INVISIBLE); - } else { - doneItem.getContentView().setVisibility(View.INVISIBLE); - } - } - } - - @Override - public void onAnimationCancel(Animator animation) { - if (doneItemAnimation != null && doneItemAnimation.equals(animation)) { - doneItemAnimation = null; - } - } - }); - doneItemAnimation.setDuration(150); - doneItemAnimation.start(); - } - private void needShowProgress() { if (getParentActivity() == null || getParentActivity().isFinishing() || progressDialog != null) { return; @@ -883,15 +559,6 @@ public class TwoStepVerificationActivity extends BaseFragment implements Notific progressDialog = null; } - private boolean isValidEmail(String text) { - if (text == null || text.length() < 3) { - return false; - } - int dot = text.lastIndexOf('.'); - int dog = text.lastIndexOf('@'); - return !(dog < 0 || dot < dog); - } - private void showAlertWithText(String title, String text) { if (getParentActivity() == null) { return; @@ -903,77 +570,42 @@ public class TwoStepVerificationActivity extends BaseFragment implements Notific showDialog(builder.create()); } - private void setNewPassword(final boolean clear) { - if (clear && waitingForEmail && currentPassword.has_password) { - needShowProgress(); - TLRPC.TL_account_cancelPasswordEmail req = new TLRPC.TL_account_cancelPasswordEmail(); - ConnectionsManager.getInstance(currentAccount).sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> { - needHideProgress(); - if (error == null) { - loadPasswordInfo(false); - NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.didRemoveTwoStepPassword); - updateRows(); - } - })); - return; - } + private void clearPassword() { final String password = firstPassword; final TLRPC.TL_account_updatePasswordSettings req = new TLRPC.TL_account_updatePasswordSettings(); if (currentPasswordHash == null || currentPasswordHash.length == 0) { req.password = new TLRPC.TL_inputCheckPasswordEmpty(); } req.new_settings = new TLRPC.TL_account_passwordInputSettings(); - if (clear) { - UserConfig.getInstance(currentAccount).resetSavedPassword(); - currentSecret = null; - if (waitingForEmail) { - req.new_settings.flags = 2; - req.new_settings.email = ""; - req.password = new TLRPC.TL_inputCheckPasswordEmpty(); - } else { - req.new_settings.flags = 3; - req.new_settings.hint = ""; - req.new_settings.new_password_hash = new byte[0]; - req.new_settings.new_algo = new TLRPC.TL_passwordKdfAlgoUnknown(); - req.new_settings.email = ""; - } - } else { - if (hint == null && currentPassword != null) { - hint = currentPassword.hint; - } - if (hint == null) { - hint = ""; - } - if (password != null) { - req.new_settings.flags |= 1; - req.new_settings.hint = hint; - req.new_settings.new_algo = currentPassword.new_algo; - } - if (email.length() > 0) { - req.new_settings.flags |= 2; - req.new_settings.email = email.trim(); - } - } + + UserConfig.getInstance(currentAccount).resetSavedPassword(); + currentSecret = null; + req.new_settings.flags = 3; + req.new_settings.hint = ""; + req.new_settings.new_password_hash = new byte[0]; + req.new_settings.new_algo = new TLRPC.TL_passwordKdfAlgoUnknown(); + req.new_settings.email = ""; + needShowProgress(); Utilities.globalQueue.postRunnable(() -> { if (req.password == null) { + if (currentPassword.current_algo == null) { + TLRPC.TL_account_getPassword getPasswordReq = new TLRPC.TL_account_getPassword(); + ConnectionsManager.getInstance(currentAccount).sendRequest(getPasswordReq, (response2, error2) -> AndroidUtilities.runOnUIThread(() -> { + if (error2 == null) { + currentPassword = (TLRPC.TL_account_password) response2; + initPasswordNewAlgo(currentPassword); + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.didSetOrRemoveTwoStepPassword, currentPassword); + clearPassword(); + } + }), ConnectionsManager.RequestFlagWithoutLogin); + return; + } req.password = getNewSrpPassword(); } - byte[] newPasswordBytes; - byte[] newPasswordHash; - if (!clear && password != null) { - newPasswordBytes = AndroidUtilities.getStringBytes(password); - if (currentPassword.new_algo instanceof TLRPC.TL_passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow) { - TLRPC.TL_passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow algo = (TLRPC.TL_passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow) currentPassword.new_algo; - newPasswordHash = SRPHelper.getX(newPasswordBytes, algo); - } else { - newPasswordHash = null; - } - } else { - newPasswordBytes = null; - newPasswordHash = null; - } + byte[] newPasswordBytes = null; + byte[] newPasswordHash = null; RequestDelegate requestDelegate = (response, error) -> AndroidUtilities.runOnUIThread(() -> { if (error != null && "SRP_ID_INVALID".equals(error.text)) { @@ -982,121 +614,35 @@ public class TwoStepVerificationActivity extends BaseFragment implements Notific if (error2 == null) { currentPassword = (TLRPC.TL_account_password) response2; initPasswordNewAlgo(currentPassword); - setNewPassword(clear); + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.didSetOrRemoveTwoStepPassword, currentPassword); + clearPassword(); } }), ConnectionsManager.RequestFlagWithoutLogin); return; } needHideProgress(); if (error == null && response instanceof TLRPC.TL_boolTrue) { - if (clear) { - currentPassword = null; - currentPasswordHash = new byte[0]; - loadPasswordInfo(false); - NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.didRemoveTwoStepPassword); - updateRows(); - } else { - if (getParentActivity() == null) { - return; - } - AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), (dialogInterface, i) -> { - NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.didSetTwoStepPassword, newPasswordHash, req.new_settings.new_algo, currentPassword.new_secure_algo, currentPassword.secure_random, email, hint, null, firstPassword); - finishFragment(); - }); - if (password == null && currentPassword != null && currentPassword.has_password) { - builder.setMessage(LocaleController.getString("YourEmailSuccessText", R.string.YourEmailSuccessText)); - } else { - builder.setMessage(LocaleController.getString("YourPasswordSuccessText", R.string.YourPasswordSuccessText)); - } - builder.setTitle(LocaleController.getString("YourPasswordSuccess", R.string.YourPasswordSuccess)); - Dialog dialog = showDialog(builder.create()); - if (dialog != null) { - dialog.setCanceledOnTouchOutside(false); - dialog.setCancelable(false); - } - } + currentPassword = null; + currentPasswordHash = new byte[0]; + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.didRemoveTwoStepPassword); + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.didSetOrRemoveTwoStepPassword); + finishFragment(); } else if (error != null) { - if ("EMAIL_UNCONFIRMED".equals(error.text) || error.text.startsWith("EMAIL_UNCONFIRMED_")) { - NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.didSetTwoStepPassword); - AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), (dialogInterface, i) -> { - if (closeAfterSet) { - TwoStepVerificationActivity activity = new TwoStepVerificationActivity(currentAccount, 0); - activity.setCloseAfterSet(true); - parentLayout.addFragmentToStack(activity, parentLayout.fragmentsStack.size() - 1); - } - NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.didSetTwoStepPassword, newPasswordHash, req.new_settings.new_algo, currentPassword.new_secure_algo, currentPassword.secure_random, email, hint, email, firstPassword); - finishFragment(); - }); - builder.setMessage(LocaleController.getString("YourEmailAlmostThereText", R.string.YourEmailAlmostThereText)); - builder.setTitle(LocaleController.getString("YourEmailAlmostThere", R.string.YourEmailAlmostThere)); - Dialog dialog = showDialog(builder.create()); - if (dialog != null) { - dialog.setCanceledOnTouchOutside(false); - dialog.setCancelable(false); - } - } else { - if ("EMAIL_INVALID".equals(error.text)) { - showAlertWithText(LocaleController.getString("AppName", R.string.AppName), LocaleController.getString("PasswordEmailInvalid", R.string.PasswordEmailInvalid)); - } else if (error.text.startsWith("FLOOD_WAIT")) { - int time = Utilities.parseInt(error.text); - String timeString; - if (time < 60) { - timeString = LocaleController.formatPluralString("Seconds", time); - } else { - timeString = LocaleController.formatPluralString("Minutes", time / 60); - } - showAlertWithText(LocaleController.getString("AppName", R.string.AppName), LocaleController.formatString("FloodWaitTime", R.string.FloodWaitTime, timeString)); + if (error.text.startsWith("FLOOD_WAIT")) { + int time = Utilities.parseInt(error.text); + String timeString; + if (time < 60) { + timeString = LocaleController.formatPluralString("Seconds", time); } else { - showAlertWithText(LocaleController.getString("AppName", R.string.AppName), error.text); + timeString = LocaleController.formatPluralString("Minutes", time / 60); } + showAlertWithText(LocaleController.getString("AppName", R.string.AppName), LocaleController.formatString("FloodWaitTime", R.string.FloodWaitTime, timeString)); + } else { + showAlertWithText(LocaleController.getString("AppName", R.string.AppName), error.text); } } }); - - if (!clear) { - if (password != null && currentSecret != null && currentSecret.length == 32) { - if (currentPassword.new_secure_algo instanceof TLRPC.TL_securePasswordKdfAlgoPBKDF2HMACSHA512iter100000) { - TLRPC.TL_securePasswordKdfAlgoPBKDF2HMACSHA512iter100000 newAlgo = (TLRPC.TL_securePasswordKdfAlgoPBKDF2HMACSHA512iter100000) currentPassword.new_secure_algo; - - byte[] passwordHash = Utilities.computePBKDF2(newPasswordBytes, newAlgo.salt); - byte[] key = new byte[32]; - System.arraycopy(passwordHash, 0, key, 0, 32); - byte[] iv = new byte[16]; - System.arraycopy(passwordHash, 32, iv, 0, 16); - - byte[] encryptedSecret = new byte[32]; - System.arraycopy(currentSecret, 0, encryptedSecret, 0, 32); - Utilities.aesCbcEncryptionByteArraySafe(encryptedSecret, key, iv, 0, encryptedSecret.length, 0, 1); - - req.new_settings.new_secure_settings = new TLRPC.TL_secureSecretSettings(); - req.new_settings.new_secure_settings.secure_algo = newAlgo; - req.new_settings.new_secure_settings.secure_secret = encryptedSecret; - req.new_settings.new_secure_settings.secure_secret_id = currentSecretId; - req.new_settings.flags |= 4; - } - } - - if (currentPassword.new_algo instanceof TLRPC.TL_passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow) { - if (password != null) { - TLRPC.TL_passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow algo = (TLRPC.TL_passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow) currentPassword.new_algo; - req.new_settings.new_password_hash = SRPHelper.getVBytes(newPasswordBytes, algo); - if (req.new_settings.new_password_hash == null) { - TLRPC.TL_error error = new TLRPC.TL_error(); - error.text = "ALGO_INVALID"; - requestDelegate.run(null, error); - } - } - ConnectionsManager.getInstance(currentAccount).sendRequest(req, requestDelegate, ConnectionsManager.RequestFlagFailOnServerErrors | ConnectionsManager.RequestFlagWithoutLogin); - } else { - TLRPC.TL_error error = new TLRPC.TL_error(); - error.text = "PASSWORD_HASH_INVALID"; - requestDelegate.run(null, error); - } - } else { - ConnectionsManager.getInstance(currentAccount).sendRequest(req, requestDelegate, ConnectionsManager.RequestFlagFailOnServerErrors | ConnectionsManager.RequestFlagWithoutLogin); - } + ConnectionsManager.getInstance(currentAccount).sendRequest(req, requestDelegate, ConnectionsManager.RequestFlagFailOnServerErrors | ConnectionsManager.RequestFlagWithoutLogin); }); } @@ -1149,255 +695,111 @@ public class TwoStepVerificationActivity extends BaseFragment implements Notific return true; } - private static byte[] getBigIntegerBytes(BigInteger value) { - byte[] bytes = value.toByteArray(); - if (bytes.length > 256) { - byte[] correctedAuth = new byte[256]; - System.arraycopy(bytes, 1, correctedAuth, 0, 256); - return correctedAuth; - } - return bytes; - } - private void processDone() { - if (type == 0) { - if (!passwordEntered) { - String oldPassword = passwordEditText.getText().toString(); - if (oldPassword.length() == 0) { - onFieldError(passwordEditText, false); - return; - } - final byte[] oldPasswordBytes = AndroidUtilities.getStringBytes(oldPassword); - - needShowProgress(); - Utilities.globalQueue.postRunnable(() -> { - final TLRPC.TL_account_getPasswordSettings req = new TLRPC.TL_account_getPasswordSettings(); - final byte[] x_bytes; - if (currentPassword.current_algo instanceof TLRPC.TL_passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow) { - TLRPC.TL_passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow algo = (TLRPC.TL_passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow) currentPassword.current_algo; - x_bytes = SRPHelper.getX(oldPasswordBytes, algo); - } else { - x_bytes = null; - } - - RequestDelegate requestDelegate = (response, error) -> { - if (error == null) { - Utilities.globalQueue.postRunnable(() -> { - boolean secretOk = checkSecretValues(oldPasswordBytes, (TLRPC.TL_account_passwordSettings) response); - AndroidUtilities.runOnUIThread(() -> { - if (delegate == null || !secretOk) { - needHideProgress(); - } - if (secretOk) { - currentPasswordHash = x_bytes; - passwordEntered = true; - AndroidUtilities.hideKeyboard(passwordEditText); - if (delegate != null) { - delegate.didEnterPassword(getNewSrpPassword()); - } else { - updateRows(); - } - } else { - AlertsCreator.showUpdateAppAlert(getParentActivity(), LocaleController.getString("UpdateAppAlert", R.string.UpdateAppAlert), true); - } - }); - }); - } else { - AndroidUtilities.runOnUIThread(() -> { - if ("SRP_ID_INVALID".equals(error.text)) { - TLRPC.TL_account_getPassword getPasswordReq = new TLRPC.TL_account_getPassword(); - ConnectionsManager.getInstance(currentAccount).sendRequest(getPasswordReq, (response2, error2) -> AndroidUtilities.runOnUIThread(() -> { - if (error2 == null) { - currentPassword = (TLRPC.TL_account_password) response2; - initPasswordNewAlgo(currentPassword); - processDone(); - } - }), ConnectionsManager.RequestFlagWithoutLogin); - return; - } - needHideProgress(); - if ("PASSWORD_HASH_INVALID".equals(error.text)) { - onFieldError(passwordEditText, true); - } else if (error.text.startsWith("FLOOD_WAIT")) { - int time = Utilities.parseInt(error.text); - String timeString; - if (time < 60) { - timeString = LocaleController.formatPluralString("Seconds", time); - } else { - timeString = LocaleController.formatPluralString("Minutes", time / 60); - } - showAlertWithText(LocaleController.getString("AppName", R.string.AppName), LocaleController.formatString("FloodWaitTime", R.string.FloodWaitTime, timeString)); - } else { - showAlertWithText(LocaleController.getString("AppName", R.string.AppName), error.text); - } - }); - } - }; - - if (currentPassword.current_algo instanceof TLRPC.TL_passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow) { - TLRPC.TL_passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow algo = (TLRPC.TL_passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow) currentPassword.current_algo; - req.password = SRPHelper.startCheck(x_bytes, currentPassword.srp_id, currentPassword.srp_B, algo); - if (req.password == null) { - TLRPC.TL_error error = new TLRPC.TL_error(); - error.text = "ALGO_INVALID"; - requestDelegate.run(null, error); - return; - } - ConnectionsManager.getInstance(currentAccount).sendRequest(req, requestDelegate, ConnectionsManager.RequestFlagFailOnServerErrors | ConnectionsManager.RequestFlagWithoutLogin); - } else { - TLRPC.TL_error error = new TLRPC.TL_error(); - error.text = "PASSWORD_HASH_INVALID"; - requestDelegate.run(null, error); - } - }); - } else if (waitingForEmail && currentPassword != null) { - if (codeFieldCell.length() == 0) { - onFieldError(codeFieldCell.getTextView(), false); - return; - } - sendEmailConfirm(codeFieldCell.getText()); - showDoneProgress(true); + if (!passwordEntered) { + String oldPassword = passwordEditText.getText().toString(); + if (oldPassword.length() == 0) { + onFieldError(passwordEditText, false); + return; } - } else if (type == 1) { - if (passwordSetState == 0) { - if (passwordEditText.getText().length() == 0) { - onFieldError(passwordEditText, false); - return; - } - titleTextView.setText(LocaleController.getString("ReEnterYourPasscode", R.string.ReEnterYourPasscode)); - firstPassword = passwordEditText.getText().toString(); - setPasswordSetState(1); - } else if (passwordSetState == 1) { - if (!firstPassword.equals(passwordEditText.getText().toString())) { - try { - Toast.makeText(getParentActivity(), LocaleController.getString("PasswordDoNotMatch", R.string.PasswordDoNotMatch), Toast.LENGTH_SHORT).show(); - } catch (Exception e) { - FileLog.e(e); - } - onFieldError(passwordEditText, true); - return; - } - setPasswordSetState(2); - } else if (passwordSetState == 2) { - hint = passwordEditText.getText().toString(); - if (hint.toLowerCase().equals(firstPassword.toLowerCase())) { - try { - Toast.makeText(getParentActivity(), LocaleController.getString("PasswordAsHintError", R.string.PasswordAsHintError), Toast.LENGTH_SHORT).show(); - } catch (Exception e) { - FileLog.e(e); - } - onFieldError(passwordEditText, false); - return; - } - if (!currentPassword.has_recovery) { - setPasswordSetState(3); + final byte[] oldPasswordBytes = AndroidUtilities.getStringBytes(oldPassword); + + needShowProgress(); + Utilities.globalQueue.postRunnable(() -> { + final TLRPC.TL_account_getPasswordSettings req = new TLRPC.TL_account_getPasswordSettings(); + final byte[] x_bytes; + if (currentPassword.current_algo instanceof TLRPC.TL_passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow) { + TLRPC.TL_passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow algo = (TLRPC.TL_passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow) currentPassword.current_algo; + x_bytes = SRPHelper.getX(oldPasswordBytes, algo); } else { - email = ""; - setNewPassword(false); + x_bytes = null; } - } else if (passwordSetState == 3) { - email = passwordEditText.getText().toString(); - if (!isValidEmail(email)) { - onFieldError(passwordEditText, false); - return; - } - setNewPassword(false); - } else if (passwordSetState == 4) { - String code = passwordEditText.getText().toString(); - if (code.length() == 0) { - onFieldError(passwordEditText, false); - return; - } - TLRPC.TL_auth_recoverPassword req = new TLRPC.TL_auth_recoverPassword(); - req.code = code; - ConnectionsManager.getInstance(currentAccount).sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> { + + RequestDelegate requestDelegate = (response, error) -> { if (error == null) { - AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), (dialogInterface, i) -> { - NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.didSetTwoStepPassword); - finishFragment(); + Utilities.globalQueue.postRunnable(() -> { + boolean secretOk = checkSecretValues(oldPasswordBytes, (TLRPC.TL_account_passwordSettings) response); + AndroidUtilities.runOnUIThread(() -> { + if (delegate == null || !secretOk) { + needHideProgress(); + } + if (secretOk) { + currentPasswordHash = x_bytes; + passwordEntered = true; + if (delegate != null) { + AndroidUtilities.hideKeyboard(passwordEditText); + delegate.didEnterPassword(getNewSrpPassword()); + } else { + if (!TextUtils.isEmpty(currentPassword.email_unconfirmed_pattern)) { + TwoStepVerificationSetupActivity fragment = new TwoStepVerificationSetupActivity(currentAccount, TwoStepVerificationSetupActivity.TYPE_EMAIL_CONFIRM, currentPassword); + fragment.setCurrentPasswordParams(currentPasswordHash, currentSecretId, currentSecret, true); + presentFragment(fragment, true); + } else { + AndroidUtilities.hideKeyboard(passwordEditText); + TwoStepVerificationActivity fragment = new TwoStepVerificationActivity(); + fragment.passwordEntered = true; + fragment.currentPasswordHash = currentPasswordHash; + fragment.currentPassword = currentPassword; + fragment.currentSecret = currentSecret; + fragment.currentSecretId = currentSecretId; + presentFragment(fragment, true); + } + } + } else { + AlertsCreator.showUpdateAppAlert(getParentActivity(), LocaleController.getString("UpdateAppAlert", R.string.UpdateAppAlert), true); + } + }); }); - builder.setMessage(LocaleController.getString("PasswordReset", R.string.PasswordReset)); - builder.setTitle(LocaleController.getString("AppName", R.string.AppName)); - Dialog dialog = showDialog(builder.create()); - if (dialog != null) { - dialog.setCanceledOnTouchOutside(false); - dialog.setCancelable(false); - } } else { - if (error.text.startsWith("CODE_INVALID")) { - onFieldError(passwordEditText, true); - } else if (error.text.startsWith("FLOOD_WAIT")) { - int time = Utilities.parseInt(error.text); - String timeString; - if (time < 60) { - timeString = LocaleController.formatPluralString("Seconds", time); - } else { - timeString = LocaleController.formatPluralString("Minutes", time / 60); + AndroidUtilities.runOnUIThread(() -> { + if ("SRP_ID_INVALID".equals(error.text)) { + TLRPC.TL_account_getPassword getPasswordReq = new TLRPC.TL_account_getPassword(); + ConnectionsManager.getInstance(currentAccount).sendRequest(getPasswordReq, (response2, error2) -> AndroidUtilities.runOnUIThread(() -> { + if (error2 == null) { + currentPassword = (TLRPC.TL_account_password) response2; + initPasswordNewAlgo(currentPassword); + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.didSetOrRemoveTwoStepPassword, currentPassword); + processDone(); + } + }), ConnectionsManager.RequestFlagWithoutLogin); + return; } - showAlertWithText(LocaleController.getString("AppName", R.string.AppName), LocaleController.formatString("FloodWaitTime", R.string.FloodWaitTime, timeString)); - } else { - showAlertWithText(LocaleController.getString("AppName", R.string.AppName), error.text); - } + needHideProgress(); + if ("PASSWORD_HASH_INVALID".equals(error.text)) { + onFieldError(passwordEditText, true); + } else if (error.text.startsWith("FLOOD_WAIT")) { + int time = Utilities.parseInt(error.text); + String timeString; + if (time < 60) { + timeString = LocaleController.formatPluralString("Seconds", time); + } else { + timeString = LocaleController.formatPluralString("Minutes", time / 60); + } + showAlertWithText(LocaleController.getString("AppName", R.string.AppName), LocaleController.formatString("FloodWaitTime", R.string.FloodWaitTime, timeString)); + } else { + showAlertWithText(LocaleController.getString("AppName", R.string.AppName), error.text); + } + }); } - }), ConnectionsManager.RequestFlagFailOnServerErrors | ConnectionsManager.RequestFlagWithoutLogin); - } - } - } + }; - private void sendEmailConfirm(String code) { - TLRPC.TL_account_confirmPasswordEmail req = new TLRPC.TL_account_confirmPasswordEmail(); - req.code = code; - ConnectionsManager.getInstance(currentAccount).sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> { - if (type == 0 && waitingForEmail) { - showDoneProgress(false); - } - if (error == null) { - if (getParentActivity() == null) { - return; - } - if (shortPollRunnable != null) { - AndroidUtilities.cancelRunOnUIThread(shortPollRunnable); - shortPollRunnable = null; - } - AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), (dialogInterface, i) -> { - if (type == 0) { - loadPasswordInfo(false); - doneItem.setVisibility(View.GONE); - } else { - NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.didSetTwoStepPassword, currentPasswordHash, currentPassword.new_algo, currentPassword.new_secure_algo, currentPassword.secure_random, email, hint, null, firstPassword); - finishFragment(); + if (currentPassword.current_algo instanceof TLRPC.TL_passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow) { + TLRPC.TL_passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow algo = (TLRPC.TL_passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow) currentPassword.current_algo; + req.password = SRPHelper.startCheck(x_bytes, currentPassword.srp_id, currentPassword.srp_B, algo); + if (req.password == null) { + TLRPC.TL_error error = new TLRPC.TL_error(); + error.text = "ALGO_INVALID"; + requestDelegate.run(null, error); + return; } - }); - if (currentPassword != null && currentPassword.has_password) { - builder.setMessage(LocaleController.getString("YourEmailSuccessText", R.string.YourEmailSuccessText)); + ConnectionsManager.getInstance(currentAccount).sendRequest(req, requestDelegate, ConnectionsManager.RequestFlagFailOnServerErrors | ConnectionsManager.RequestFlagWithoutLogin); } else { - builder.setMessage(LocaleController.getString("YourPasswordSuccessText", R.string.YourPasswordSuccessText)); + TLRPC.TL_error error = new TLRPC.TL_error(); + error.text = "PASSWORD_HASH_INVALID"; + requestDelegate.run(null, error); } - builder.setTitle(LocaleController.getString("YourPasswordSuccess", R.string.YourPasswordSuccess)); - Dialog dialog = showDialog(builder.create()); - if (dialog != null) { - dialog.setCanceledOnTouchOutside(false); - dialog.setCancelable(false); - } - } else { - if (error.text.startsWith("CODE_INVALID")) { - onFieldError(waitingForEmail ? codeFieldCell.getTextView() : passwordEditText, true); - } else if (error.text.startsWith("FLOOD_WAIT")) { - int time = Utilities.parseInt(error.text); - String timeString; - if (time < 60) { - timeString = LocaleController.formatPluralString("Seconds", time); - } else { - timeString = LocaleController.formatPluralString("Minutes", time / 60); - } - showAlertWithText(LocaleController.getString("AppName", R.string.AppName), LocaleController.formatString("FloodWaitTime", R.string.FloodWaitTime, timeString)); - } else { - showAlertWithText(LocaleController.getString("AppName", R.string.AppName), error.text); - } - } - }), ConnectionsManager.RequestFlagFailOnServerErrors | ConnectionsManager.RequestFlagWithoutLogin); + }); + } } private void onFieldError(TextView field, boolean clear) { @@ -1442,14 +844,8 @@ public class TwoStepVerificationActivity extends BaseFragment implements Notific view.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite)); break; case 1: - view = new TextInfoPrivacyCell(mContext); - break; - case 2: default: - view = codeFieldCell; - if (view.getParent() != null) { - ((ViewGroup) view.getParent()).removeView(view); - } + view = new TextInfoPrivacyCell(mContext); break; } return new RecyclerListView.Holder(view); @@ -1469,19 +865,9 @@ public class TwoStepVerificationActivity extends BaseFragment implements Notific } else if (position == turnPasswordOffRow) { textCell.setText(LocaleController.getString("TurnPasswordOff", R.string.TurnPasswordOff), true); } else if (position == changeRecoveryEmailRow) { - textCell.setText(LocaleController.getString("ChangeRecoveryEmail", R.string.ChangeRecoveryEmail), abortPasswordRow != -1); - } else if (position == resendCodeRow) { - textCell.setText(LocaleController.getString("ResendCode", R.string.ResendCode), true); + textCell.setText(LocaleController.getString("ChangeRecoveryEmail", R.string.ChangeRecoveryEmail), false); } else if (position == setRecoveryEmailRow) { textCell.setText(LocaleController.getString("SetRecoveryEmail", R.string.SetRecoveryEmail), false); - } else if (position == abortPasswordRow) { - textCell.setTag(Theme.key_windowBackgroundWhiteRedText3); - textCell.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteRedText3)); - if (currentPassword != null && currentPassword.has_password) { - textCell.setText(LocaleController.getString("AbortEmail", R.string.AbortEmail), false); - } else { - textCell.setText(LocaleController.getString("AbortPassword", R.string.AbortPassword), false); - } } break; case 1: @@ -1489,16 +875,6 @@ public class TwoStepVerificationActivity extends BaseFragment implements Notific if (position == setPasswordDetailRow) { privacyCell.setText(LocaleController.getString("SetAdditionalPasswordInfo", R.string.SetAdditionalPasswordInfo)); privacyCell.setBackgroundDrawable(Theme.getThemedDrawable(mContext, R.drawable.greydivider_bottom, Theme.key_windowBackgroundGrayShadow)); - } else if (position == shadowRow) { - privacyCell.setText(""); - privacyCell.setBackgroundDrawable(Theme.getThemedDrawable(mContext, R.drawable.greydivider_bottom, Theme.key_windowBackgroundGrayShadow)); - } else if (position == passwordSetupDetailRow) { - if (currentPassword != null && currentPassword.has_password) { - privacyCell.setText(LocaleController.formatString("EmailPasswordConfirmText3", R.string.EmailPasswordConfirmText3, currentPassword.email_unconfirmed_pattern != null ? currentPassword.email_unconfirmed_pattern : "")); - } else { - privacyCell.setText(LocaleController.formatString("EmailPasswordConfirmText2", R.string.EmailPasswordConfirmText2, currentPassword.email_unconfirmed_pattern != null ? currentPassword.email_unconfirmed_pattern : "")); - } - privacyCell.setBackgroundDrawable(Theme.getThemedDrawable(mContext, R.drawable.greydivider_top, Theme.key_windowBackgroundGrayShadow)); } else if (position == passwordEnabledDetailRow) { privacyCell.setText(LocaleController.getString("EnabledPasswordText", R.string.EnabledPasswordText)); privacyCell.setBackgroundDrawable(Theme.getThemedDrawable(mContext, R.drawable.greydivider_bottom, Theme.key_windowBackgroundGrayShadow)); @@ -1509,10 +885,8 @@ public class TwoStepVerificationActivity extends BaseFragment implements Notific @Override public int getItemViewType(int position) { - if (position == setPasswordDetailRow || position == shadowRow || position == passwordSetupDetailRow || position == passwordEnabledDetailRow) { + if (position == setPasswordDetailRow || position == passwordEnabledDetailRow) { return 1; - } else if (position == passwordCodeFieldRow) { - return 2; } return 0; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/TwoStepVerificationSetupActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/TwoStepVerificationSetupActivity.java new file mode 100644 index 000000000..48cfd8ab4 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/TwoStepVerificationSetupActivity.java @@ -0,0 +1,1526 @@ +/* + * This is the source code of Telegram for Android v. 3.x.x + * It is licensed under GNU GPL v. 2 or later. + * You should have received a copy of the license in this archive (see LICENSE). + * + * Copyright Nikolai Kudashov, 2013-2017. + */ + +package org.telegram.ui; + +import android.animation.Animator; +import android.animation.AnimatorListenerAdapter; +import android.animation.AnimatorSet; +import android.animation.ObjectAnimator; +import android.app.Dialog; +import android.content.Context; +import android.content.DialogInterface; +import android.graphics.Canvas; +import android.graphics.Paint; +import android.graphics.PorterDuff; +import android.graphics.PorterDuffColorFilter; +import android.graphics.Rect; +import android.graphics.Typeface; +import android.os.Build; +import android.os.Vibrator; +import android.text.Editable; +import android.text.InputType; +import android.text.TextUtils; +import android.text.TextWatcher; +import android.text.method.PasswordTransformationMethod; +import android.util.TypedValue; +import android.view.ActionMode; +import android.view.Gravity; +import android.view.Menu; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.view.inputmethod.EditorInfo; +import android.widget.FrameLayout; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.ScrollView; +import android.widget.TextView; +import android.widget.Toast; + +import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.FileLog; +import org.telegram.messenger.LocaleController; +import org.telegram.messenger.NotificationCenter; +import org.telegram.messenger.R; +import org.telegram.messenger.SRPHelper; +import org.telegram.messenger.UserConfig; +import org.telegram.messenger.Utilities; +import org.telegram.tgnet.ConnectionsManager; +import org.telegram.tgnet.RequestDelegate; +import org.telegram.tgnet.TLRPC; +import org.telegram.ui.ActionBar.ActionBar; +import org.telegram.ui.ActionBar.ActionBarMenu; +import org.telegram.ui.ActionBar.ActionBarMenuItem; +import org.telegram.ui.ActionBar.AlertDialog; +import org.telegram.ui.ActionBar.BaseFragment; +import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.ActionBar.ThemeDescription; +import org.telegram.ui.Components.AlertsCreator; +import org.telegram.ui.Components.EditTextBoldCursor; +import org.telegram.ui.Components.LayoutHelper; +import org.telegram.ui.Components.RLottieDrawable; +import org.telegram.ui.Components.RLottieImageView; + +import java.util.ArrayList; + +public class TwoStepVerificationSetupActivity extends BaseFragment { + + private RLottieImageView imageView; + private TextView buttonTextView; + private TextView titleTextView; + private TextView descriptionText; + private TextView descriptionText2; + private TextView topButton; + private EditTextBoldCursor passwordEditText; + private ScrollView scrollView; + private View actionBarBackground; + private ImageView showPasswordButton; + + private AnimatorSet buttonAnimation; + + private ArrayList fragmentsToClose = new ArrayList<>(); + + private AnimatorSet actionBarAnimator; + + private AlertDialog progressDialog; + + private boolean ignoreTextChange; + + private boolean doneAfterPasswordLoad; + + private int currentType; + private int emailCodeLength = 6; + private String firstPassword; + private String hint; + private String email; + private boolean paused; + private boolean waitingForEmail; + private TLRPC.TL_account_password currentPassword; + private byte[] currentPasswordHash = new byte[0]; + private long currentSecretId; + private byte[] currentSecret; + private boolean closeAfterSet; + private boolean emailOnly; + + private RLottieDrawable[] animationDrawables; + private Runnable setAnimationRunnable; + + public static final int TYPE_ENTER_FIRST = 0; + public static final int TYPE_ENTER_SECOND = 1; + public static final int TYPE_ENTER_HINT = 2; + public static final int TYPE_ENTER_EMAIL = 3; + public static final int TYPE_EMAIL_RECOVERY = 4; + public static final int TYPE_EMAIL_CONFIRM = 5; + public static final int TYPE_INTRO = 6; + public static final int TYPE_PASSWORD_SET = 7; + + private static final int item_abort = 1; + private static final int item_resend = 2; + + public TwoStepVerificationSetupActivity(int type, TLRPC.TL_account_password password) { + super(); + currentType = type; + currentPassword = password; + if (currentPassword == null && currentType == TYPE_INTRO) { + loadPasswordInfo(); + } else { + waitingForEmail = !TextUtils.isEmpty(currentPassword.email_unconfirmed_pattern); + } + } + + public TwoStepVerificationSetupActivity(int account, int type, TLRPC.TL_account_password password) { + super(); + currentAccount = account; + currentType = type; + currentPassword = password; + waitingForEmail = !TextUtils.isEmpty(currentPassword.email_unconfirmed_pattern); + if (currentPassword == null && currentType == TYPE_INTRO) { + loadPasswordInfo(); + } + } + + public void setCurrentPasswordParams(byte[] passwordHash, long secretId, byte[] secret, boolean email) { + currentPasswordHash = passwordHash; + currentSecret = secret; + currentSecretId = secretId; + emailOnly = email; + } + + public void addFragmentToClose(BaseFragment fragment) { + fragmentsToClose.add(fragment); + } + + @Override + public void onFragmentDestroy() { + super.onFragmentDestroy(); + doneAfterPasswordLoad = false; + if (setAnimationRunnable != null) { + AndroidUtilities.cancelRunOnUIThread(setAnimationRunnable); + setAnimationRunnable = null; + } + if (animationDrawables != null) { + for (int a = 0; a < animationDrawables.length; a++) { + animationDrawables[a].recycle(); + } + animationDrawables = null; + } + if (progressDialog != null) { + try { + progressDialog.dismiss(); + } catch (Exception e) { + FileLog.e(e); + } + progressDialog = null; + } + AndroidUtilities.removeAdjustResize(getParentActivity(), classGuid); + } + + @Override + public View createView(Context context) { + actionBar.setBackgroundDrawable(null); + actionBar.setBackButtonImage(R.drawable.ic_ab_back); + actionBar.setAllowOverlayTitle(false); + actionBar.setTitleColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText)); + actionBar.setItemsColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText2), false); + actionBar.setItemsBackgroundColor(Theme.getColor(Theme.key_actionBarWhiteSelector), false); + actionBar.setCastShadows(false); + actionBar.setAddToContainer(false); + if (!AndroidUtilities.isTablet()) { + actionBar.showActionModeTop(); + } + actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { + @Override + public void onItemClick(int id) { + if (id == -1) { + finishFragment(); + } else if (id == item_resend) { + TLRPC.TL_account_resendPasswordEmail req = new TLRPC.TL_account_resendPasswordEmail(); + ConnectionsManager.getInstance(currentAccount).sendRequest(req, (response, error) -> { + + }); + AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); + builder.setMessage(LocaleController.getString("ResendCodeInfo", R.string.ResendCodeInfo)); + builder.setTitle(LocaleController.getString("TwoStepVerificationTitle", R.string.TwoStepVerificationTitle)); + builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + showDialog(builder.create()); + } else if (id == item_abort) { + AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); + String text; + if (currentPassword != null && currentPassword.has_password) { + text = LocaleController.getString("CancelEmailQuestion", R.string.CancelEmailQuestion); + } else { + text = LocaleController.getString("CancelPasswordQuestion", R.string.CancelPasswordQuestion); + } + String title = LocaleController.getString("CancelEmailQuestionTitle", R.string.CancelEmailQuestionTitle); + String buttonText = LocaleController.getString("Abort", R.string.Abort); + builder.setMessage(text); + builder.setTitle(title); + builder.setPositiveButton(buttonText, (dialogInterface, i) -> setNewPassword(true)); + builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + AlertDialog alertDialog = builder.create(); + showDialog(alertDialog); + TextView button = (TextView) alertDialog.getButton(DialogInterface.BUTTON_POSITIVE); + if (button != null) { + button.setTextColor(Theme.getColor(Theme.key_dialogTextRed2)); + } + } + } + }); + + if (currentType == TYPE_EMAIL_CONFIRM) { + ActionBarMenu menu = actionBar.createMenu(); + ActionBarMenuItem item = menu.addItem(0, R.drawable.ic_ab_other); + item.addSubItem(item_resend, LocaleController.getString("ResendCode", R.string.ResendCode)); + item.addSubItem(item_abort, LocaleController.getString("AbortPasswordMenu", R.string.AbortPasswordMenu)); + } + + topButton = new TextView(context); + topButton.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlueText2)); + topButton.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); + topButton.setGravity(Gravity.CENTER_VERTICAL); + topButton.setVisibility(View.GONE); + actionBar.addView(topButton, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.MATCH_PARENT, Gravity.TOP | Gravity.RIGHT, 0, 0, 22, 0)); + topButton.setOnClickListener(v -> { + if (currentType == TYPE_ENTER_EMAIL) { + AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); + builder.setMessage(LocaleController.getString("YourEmailSkipWarningText", R.string.YourEmailSkipWarningText)); + builder.setTitle(LocaleController.getString("YourEmailSkipWarning", R.string.YourEmailSkipWarning)); + builder.setPositiveButton(LocaleController.getString("YourEmailSkip", R.string.YourEmailSkip), (dialogInterface, i) -> { + email = ""; + setNewPassword(false); + }); + builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + AlertDialog alertDialog = builder.create(); + showDialog(alertDialog); + TextView button = (TextView) alertDialog.getButton(DialogInterface.BUTTON_POSITIVE); + if (button != null) { + button.setTextColor(Theme.getColor(Theme.key_dialogTextRed2)); + } + } else if (currentType == TYPE_ENTER_HINT) { + onHintDone(); + } + }); + + imageView = new RLottieImageView(context); + imageView.setScaleType(ImageView.ScaleType.CENTER); + + titleTextView = new TextView(context); + titleTextView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText)); + titleTextView.setGravity(Gravity.CENTER_HORIZONTAL); + titleTextView.setPadding(AndroidUtilities.dp(32), 0, AndroidUtilities.dp(32), 0); + titleTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 24); + + descriptionText = new TextView(context); + descriptionText.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText6)); + descriptionText.setGravity(Gravity.CENTER_HORIZONTAL); + descriptionText.setLineSpacing(AndroidUtilities.dp(2), 1); + descriptionText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); + descriptionText.setVisibility(View.GONE); + descriptionText.setPadding(AndroidUtilities.dp(32), 0, AndroidUtilities.dp(32), 0); + + descriptionText2 = new TextView(context); + descriptionText2.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText6)); + descriptionText2.setGravity(Gravity.CENTER_HORIZONTAL); + descriptionText2.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); + descriptionText2.setLineSpacing(AndroidUtilities.dp(2), 1); + descriptionText2.setPadding(AndroidUtilities.dp(32), 0, AndroidUtilities.dp(32), 0); + descriptionText2.setVisibility(View.GONE); + + buttonTextView = new TextView(context); + buttonTextView.setMinWidth(AndroidUtilities.dp(220)); + buttonTextView.setPadding(AndroidUtilities.dp(34), 0, AndroidUtilities.dp(34), 0); + buttonTextView.setGravity(Gravity.CENTER); + buttonTextView.setTextColor(Theme.getColor(Theme.key_featuredStickers_buttonText)); + buttonTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); + buttonTextView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); + buttonTextView.setBackgroundDrawable(Theme.createSimpleSelectorRoundRectDrawable(AndroidUtilities.dp(4), Theme.getColor(Theme.key_featuredStickers_addButton), Theme.getColor(Theme.key_featuredStickers_addButtonPressed))); + buttonTextView.setOnClickListener(v -> { + if (getParentActivity() == null) { + return; + } + switch (currentType) { + case TYPE_INTRO: { + if (currentPassword == null) { + needShowProgress(); + doneAfterPasswordLoad = true; + return; + } + TwoStepVerificationSetupActivity fragment = new TwoStepVerificationSetupActivity(currentAccount, TYPE_ENTER_FIRST, currentPassword); + fragment.closeAfterSet = closeAfterSet; + presentFragment(fragment, true); + break; + } + case TYPE_PASSWORD_SET: { + if (closeAfterSet) { + finishFragment(); + } else { + TwoStepVerificationActivity fragment = new TwoStepVerificationActivity(); + fragment.setCurrentPasswordParams(currentPassword, currentPasswordHash, currentSecretId, currentSecret); + presentFragment(fragment, true); + } + break; + } + case TYPE_ENTER_FIRST: { + if (passwordEditText.length() == 0) { + onFieldError(passwordEditText, false); + return; + } + TwoStepVerificationSetupActivity fragment = new TwoStepVerificationSetupActivity(currentAccount, TYPE_ENTER_SECOND, currentPassword); + fragment.setCurrentPasswordParams(currentPasswordHash, currentSecretId, currentSecret, emailOnly); + fragment.firstPassword = passwordEditText.getText().toString(); + fragment.fragmentsToClose.addAll(fragmentsToClose); + fragment.fragmentsToClose.add(this); + fragment.closeAfterSet = closeAfterSet; + presentFragment(fragment); + break; + } + case TYPE_ENTER_SECOND: { + if (!firstPassword.equals(passwordEditText.getText().toString())) { + try { + Toast.makeText(getParentActivity(), LocaleController.getString("PasswordDoNotMatch", R.string.PasswordDoNotMatch), Toast.LENGTH_SHORT).show(); + } catch (Exception e) { + FileLog.e(e); + } + onFieldError(passwordEditText, false); + return; + } + TwoStepVerificationSetupActivity fragment = new TwoStepVerificationSetupActivity(currentAccount, TYPE_ENTER_HINT, currentPassword); + fragment.setCurrentPasswordParams(currentPasswordHash, currentSecretId, currentSecret, emailOnly); + fragment.firstPassword = firstPassword; + fragment.fragmentsToClose.addAll(fragmentsToClose); + fragment.fragmentsToClose.add(this); + fragment.closeAfterSet = closeAfterSet; + presentFragment(fragment); + break; + } + case TYPE_ENTER_HINT: { + String hint = passwordEditText.getText().toString(); + if (hint.toLowerCase().equals(firstPassword.toLowerCase())) { + try { + Toast.makeText(getParentActivity(), LocaleController.getString("PasswordAsHintError", R.string.PasswordAsHintError), Toast.LENGTH_SHORT).show(); + } catch (Exception e) { + FileLog.e(e); + } + onFieldError(passwordEditText, false); + return; + } + onHintDone(); + break; + } + case TYPE_ENTER_EMAIL: { + email = passwordEditText.getText().toString(); + if (!isValidEmail(email)) { + onFieldError(passwordEditText, false); + return; + } + setNewPassword(false); + break; + } + case TYPE_EMAIL_RECOVERY: { + String code = passwordEditText.getText().toString(); + if (code.length() == 0) { + onFieldError(passwordEditText, false); + return; + } + TLRPC.TL_auth_recoverPassword req = new TLRPC.TL_auth_recoverPassword(); + req.code = code; + ConnectionsManager.getInstance(currentAccount).sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> { + if (error == null) { + AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); + builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), (dialogInterface, i) -> { + for (int a = 0, N = fragmentsToClose.size(); a < N; a++) { + fragmentsToClose.get(a).removeSelfFromStack(); + } + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.twoStepPasswordChanged); + finishFragment(); + }); + builder.setMessage(LocaleController.getString("PasswordReset", R.string.PasswordReset)); + builder.setTitle(LocaleController.getString("TwoStepVerificationTitle", R.string.TwoStepVerificationTitle)); + Dialog dialog = showDialog(builder.create()); + if (dialog != null) { + dialog.setCanceledOnTouchOutside(false); + dialog.setCancelable(false); + } + } else { + if (error.text.startsWith("CODE_INVALID")) { + onFieldError(passwordEditText, true); + } else if (error.text.startsWith("FLOOD_WAIT")) { + int time = Utilities.parseInt(error.text); + String timeString; + if (time < 60) { + timeString = LocaleController.formatPluralString("Seconds", time); + } else { + timeString = LocaleController.formatPluralString("Minutes", time / 60); + } + showAlertWithText(LocaleController.getString("TwoStepVerificationTitle", R.string.TwoStepVerificationTitle), LocaleController.formatString("FloodWaitTime", R.string.FloodWaitTime, timeString)); + } else { + showAlertWithText(LocaleController.getString("TwoStepVerificationTitle", R.string.TwoStepVerificationTitle), error.text); + } + } + }), ConnectionsManager.RequestFlagFailOnServerErrors | ConnectionsManager.RequestFlagWithoutLogin); + break; + } + case TYPE_EMAIL_CONFIRM: { + if (passwordEditText.length() == 0) { + onFieldError(passwordEditText, false); + return; + } + TLRPC.TL_account_confirmPasswordEmail req = new TLRPC.TL_account_confirmPasswordEmail(); + req.code = passwordEditText.getText().toString(); + ConnectionsManager.getInstance(currentAccount).sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> { + needHideProgress(); + if (error == null) { + if (getParentActivity() == null) { + return; + } + if (currentPassword.has_password) { + AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); + builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), (dialogInterface, i) -> { + for (int a = 0, N = fragmentsToClose.size(); a < N; a++) { + fragmentsToClose.get(a).removeSelfFromStack(); + } + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.twoStepPasswordChanged, currentPasswordHash, currentPassword.new_algo, currentPassword.new_secure_algo, currentPassword.secure_random, email, hint, null, firstPassword); + TwoStepVerificationActivity fragment = new TwoStepVerificationActivity(); + currentPassword.has_password = true; + currentPassword.has_recovery = true; + currentPassword.email_unconfirmed_pattern = ""; + fragment.setCurrentPasswordParams(currentPassword, currentPasswordHash, currentSecretId, currentSecret); + presentFragment(fragment, true); + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.didSetOrRemoveTwoStepPassword, currentPassword); + }); + if (currentPassword.has_recovery) { + builder.setMessage(LocaleController.getString("YourEmailSuccessChangedText", R.string.YourEmailSuccessChangedText)); + } else { + builder.setMessage(LocaleController.getString("YourEmailSuccessText", R.string.YourEmailSuccessText)); + } + builder.setTitle(LocaleController.getString("YourPasswordSuccess", R.string.YourPasswordSuccess)); + Dialog dialog = showDialog(builder.create()); + if (dialog != null) { + dialog.setCanceledOnTouchOutside(false); + dialog.setCancelable(false); + } + } else { + for (int a = 0, N = fragmentsToClose.size(); a < N; a++) { + fragmentsToClose.get(a).removeSelfFromStack(); + } + currentPassword.has_password = true; + currentPassword.has_recovery = true; + currentPassword.email_unconfirmed_pattern = ""; + TwoStepVerificationSetupActivity fragment = new TwoStepVerificationSetupActivity(TYPE_PASSWORD_SET, currentPassword); + fragment.setCurrentPasswordParams(currentPasswordHash, currentSecretId, currentSecret, emailOnly); + fragment.closeAfterSet = closeAfterSet; + presentFragment(fragment, true); + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.twoStepPasswordChanged, currentPasswordHash, currentPassword.new_algo, currentPassword.new_secure_algo, currentPassword.secure_random, email, hint, null, firstPassword); + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.didSetOrRemoveTwoStepPassword, currentPassword); + } + } else { + if (error.text.startsWith("CODE_INVALID")) { + onFieldError(passwordEditText, true); + } else if (error.text.startsWith("FLOOD_WAIT")) { + int time = Utilities.parseInt(error.text); + String timeString; + if (time < 60) { + timeString = LocaleController.formatPluralString("Seconds", time); + } else { + timeString = LocaleController.formatPluralString("Minutes", time / 60); + } + showAlertWithText(LocaleController.getString("AppName", R.string.AppName), LocaleController.formatString("FloodWaitTime", R.string.FloodWaitTime, timeString)); + } else { + showAlertWithText(LocaleController.getString("AppName", R.string.AppName), error.text); + } + } + }), ConnectionsManager.RequestFlagFailOnServerErrors | ConnectionsManager.RequestFlagWithoutLogin); + needShowProgress(); + } + } + }); + + switch (currentType) { + case TYPE_INTRO: + case TYPE_PASSWORD_SET: { + ViewGroup container = new ViewGroup(context) { + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + int width = MeasureSpec.getSize(widthMeasureSpec); + int height = MeasureSpec.getSize(heightMeasureSpec); + + actionBar.measure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), heightMeasureSpec); + + if (width > height) { + imageView.measure(MeasureSpec.makeMeasureSpec((int) (width * 0.45f), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec((int) (height * 0.68f), MeasureSpec.EXACTLY)); + titleTextView.measure(MeasureSpec.makeMeasureSpec((int) (width * 0.6f), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(height, MeasureSpec.UNSPECIFIED)); + descriptionText.measure(MeasureSpec.makeMeasureSpec((int) (width * 0.6f), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(height, MeasureSpec.UNSPECIFIED)); + descriptionText2.measure(MeasureSpec.makeMeasureSpec((int) (width * 0.6f), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(height, MeasureSpec.UNSPECIFIED)); + buttonTextView.measure(MeasureSpec.makeMeasureSpec((int) (width * 0.6f), MeasureSpec.AT_MOST), MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(42), MeasureSpec.EXACTLY)); + } else { + imageView.measure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec((int) (height * 0.399f), MeasureSpec.EXACTLY)); + titleTextView.measure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(height, MeasureSpec.UNSPECIFIED)); + descriptionText.measure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(height, MeasureSpec.UNSPECIFIED)); + descriptionText2.measure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(height, MeasureSpec.UNSPECIFIED)); + buttonTextView.measure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.AT_MOST), MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(42), MeasureSpec.EXACTLY)); + } + + setMeasuredDimension(width, height); + } + + @Override + protected void onLayout(boolean changed, int l, int t, int r, int b) { + actionBar.layout(0, 0, r, actionBar.getMeasuredHeight()); + + int width = r - l; + int height = b - t; + + if (r > b) { + int y = (height - imageView.getMeasuredHeight()) / 2; + imageView.layout(0, y, imageView.getMeasuredWidth(), y + imageView.getMeasuredHeight()); + int x = (int) (width * 0.4f); + y = (int) (height * 0.22f); + titleTextView.layout(x, y, x + titleTextView.getMeasuredWidth(), y + titleTextView.getMeasuredHeight()); + x = (int) (width * 0.4f); + y = (int) (height * 0.39f); + descriptionText.layout(x, y, x + descriptionText.getMeasuredWidth(), y + descriptionText.getMeasuredHeight()); + x = (int) (width * 0.4f + (width * 0.6f - buttonTextView.getMeasuredWidth()) / 2); + y = (int) (height * 0.64f); + buttonTextView.layout(x, y, x + buttonTextView.getMeasuredWidth(), y + buttonTextView.getMeasuredHeight()); + } else { + int y = (int) (height * 0.148f); + imageView.layout(0, y, imageView.getMeasuredWidth(), y + imageView.getMeasuredHeight()); + y = (int) (height * 0.458f); + titleTextView.layout(0, y, titleTextView.getMeasuredWidth(), y + titleTextView.getMeasuredHeight()); + y += titleTextView.getMeasuredHeight() + AndroidUtilities.dp(12); + descriptionText.layout(0, y, descriptionText.getMeasuredWidth(), y + descriptionText.getMeasuredHeight()); + int x = (width - buttonTextView.getMeasuredWidth()) / 2; + y = (int) (height * 0.791f); + buttonTextView.layout(x, y, x + buttonTextView.getMeasuredWidth(), y + buttonTextView.getMeasuredHeight()); + } + } + }; + container.setOnTouchListener((v, event) -> true); + container.addView(actionBar); + container.addView(imageView); + container.addView(titleTextView); + container.addView(descriptionText); + container.addView(buttonTextView); + fragmentView = container; + break; + } + case TYPE_ENTER_FIRST: + case TYPE_ENTER_SECOND: + case TYPE_EMAIL_CONFIRM: + case TYPE_EMAIL_RECOVERY: + case TYPE_ENTER_HINT: + case TYPE_ENTER_EMAIL: { + ViewGroup container = new ViewGroup(context) { + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + int width = MeasureSpec.getSize(widthMeasureSpec); + int height = MeasureSpec.getSize(heightMeasureSpec); + + if (topButton != null) { + FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) topButton.getLayoutParams(); + layoutParams.topMargin = AndroidUtilities.statusBarHeight; + } + + actionBar.measure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), heightMeasureSpec); + actionBarBackground.measure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(actionBar.getMeasuredHeight() + AndroidUtilities.dp(3), MeasureSpec.EXACTLY)); + scrollView.measure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), heightMeasureSpec); + + setMeasuredDimension(width, height); + } + + @Override + protected void onLayout(boolean changed, int l, int t, int r, int b) { + actionBar.layout(0, 0, actionBar.getMeasuredWidth(), actionBar.getMeasuredHeight()); + actionBarBackground.layout(0, 0, actionBarBackground.getMeasuredWidth(), actionBarBackground.getMeasuredHeight()); + scrollView.layout(0, 0, scrollView.getMeasuredWidth(), scrollView.getMeasuredHeight()); + } + }; + + scrollView = new ScrollView(context) { + + private int[] location = new int[2]; + private Rect tempRect = new Rect(); + private boolean isLayoutDirty = true; + private int scrollingUp; + + @Override + protected void onScrollChanged(int l, int t, int oldl, int oldt) { + super.onScrollChanged(l, t, oldl, oldt); + + if (titleTextView == null) { + return; + } + titleTextView.getLocationOnScreen(location); + boolean show = location[1] + titleTextView.getMeasuredHeight() < actionBar.getBottom(); + boolean visible = titleTextView.getTag() == null; + if (show != visible) { + titleTextView.setTag(show ? null : 1); + if (actionBarAnimator != null) { + actionBarAnimator.cancel(); + actionBarAnimator = null; + } + actionBarAnimator = new AnimatorSet(); + actionBarAnimator.playTogether( + ObjectAnimator.ofFloat(actionBarBackground, View.ALPHA, show ? 1.0f : 0.0f), + ObjectAnimator.ofFloat(actionBar.getTitleTextView(), View.ALPHA, show ? 1.0f : 0.0f) + ); + actionBarAnimator.setDuration(150); + actionBarAnimator.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + if (animation.equals(actionBarAnimator)) { + actionBarAnimator = null; + } + } + }); + actionBarAnimator.start(); + } + } + + @Override + public void scrollToDescendant(View child) { + child.getDrawingRect(tempRect); + offsetDescendantRectToMyCoords(child, tempRect); + + tempRect.bottom += AndroidUtilities.dp(120); + + int scrollDelta = computeScrollDeltaToGetChildRectOnScreen(tempRect); + if (scrollDelta < 0) { + scrollDelta -= (scrollingUp = (getMeasuredHeight() - child.getMeasuredHeight()) / 2); + } else { + scrollingUp = 0; + } + if (scrollDelta != 0) { + smoothScrollBy(0, scrollDelta); + } + } + + @Override + public void requestChildFocus(View child, View focused) { + if (Build.VERSION.SDK_INT < 29) { + if (focused != null && !isLayoutDirty) { + scrollToDescendant(focused); + } + } + super.requestChildFocus(child, focused); + } + + @Override + public boolean requestChildRectangleOnScreen(View child, Rect rectangle, boolean immediate) { + if (Build.VERSION.SDK_INT < 23) { + + rectangle.bottom += AndroidUtilities.dp(120); + + if (scrollingUp != 0) { + rectangle.top -= scrollingUp; + rectangle.bottom -= scrollingUp; + scrollingUp = 0; + } + } + return super.requestChildRectangleOnScreen(child, rectangle, immediate); + } + + @Override + public void requestLayout() { + isLayoutDirty = true; + super.requestLayout(); + } + + @Override + protected void onLayout(boolean changed, int l, int t, int r, int b) { + isLayoutDirty = false; + super.onLayout(changed, l, t, r, b); + } + }; + scrollView.setVerticalScrollBarEnabled(false); + container.addView(scrollView); + + LinearLayout scrollViewLinearLayout = new LinearLayout(context); + scrollViewLinearLayout.setOrientation(LinearLayout.VERTICAL); + scrollView.addView(scrollViewLinearLayout, LayoutHelper.createScroll(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.LEFT | Gravity.TOP)); + + scrollViewLinearLayout.addView(imageView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL | Gravity.TOP, 0, 69, 0, 0)); + scrollViewLinearLayout.addView(titleTextView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL | Gravity.TOP, 0, 8, 0, 0)); + scrollViewLinearLayout.addView(descriptionText, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL | Gravity.TOP, 0, 9, 0, 0)); + + FrameLayout frameLayout = new FrameLayout(context); + scrollViewLinearLayout.addView(frameLayout, LayoutHelper.createLinear(220, 36, Gravity.TOP | Gravity.CENTER_HORIZONTAL, 40, 32, 40, 0)); + + passwordEditText = new EditTextBoldCursor(context); + passwordEditText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 17); + passwordEditText.setPadding(0, AndroidUtilities.dp(2), 0, 0); + passwordEditText.setHintTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteHintText)); + passwordEditText.setCursorColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText)); + passwordEditText.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText)); + passwordEditText.setHintColor(Theme.getColor(Theme.key_windowBackgroundWhiteHintText)); + passwordEditText.setBackgroundDrawable(Theme.createEditTextDrawable(context, false)); + passwordEditText.setMaxLines(1); + passwordEditText.setLines(1); + passwordEditText.setGravity(Gravity.LEFT); + passwordEditText.setCursorSize(AndroidUtilities.dp(20)); + passwordEditText.setSingleLine(true); + passwordEditText.setCursorWidth(1.5f); + frameLayout.addView(passwordEditText, LayoutHelper.createFrame(220, 36, Gravity.TOP | Gravity.CENTER_HORIZONTAL)); + passwordEditText.setOnEditorActionListener((textView, i, keyEvent) -> { + if (i == EditorInfo.IME_ACTION_NEXT || i == EditorInfo.IME_ACTION_DONE) { + buttonTextView.callOnClick(); + return true; + } + return false; + }); + passwordEditText.setCustomSelectionActionModeCallback(new ActionMode.Callback() { + public boolean onPrepareActionMode(ActionMode mode, Menu menu) { + return false; + } + + public void onDestroyActionMode(ActionMode mode) { + } + + public boolean onCreateActionMode(ActionMode mode, Menu menu) { + return false; + } + + public boolean onActionItemClicked(ActionMode mode, MenuItem item) { + return false; + } + }); + + showPasswordButton = new ImageView(context); + showPasswordButton.setImageResource(R.drawable.msg_message); + showPasswordButton.setScaleType(ImageView.ScaleType.CENTER); + if (Build.VERSION.SDK_INT >= 21) { + showPasswordButton.setBackgroundDrawable(Theme.createSelectorDrawable(Theme.getColor(Theme.key_listSelector))); + } + showPasswordButton.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_chat_messagePanelIcons), PorterDuff.Mode.MULTIPLY)); + showPasswordButton.setVisibility(View.GONE); + frameLayout.addView(showPasswordButton, LayoutHelper.createFrame(36, 36, Gravity.RIGHT | Gravity.TOP, 0, -5, 0, 0)); + showPasswordButton.setOnClickListener(v -> { + ignoreTextChange = true; + if (passwordEditText.getTransformationMethod() == null) { + passwordEditText.setTransformationMethod(PasswordTransformationMethod.getInstance()); + showPasswordButton.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_chat_messagePanelIcons), PorterDuff.Mode.MULTIPLY)); + if (currentType == TYPE_ENTER_FIRST) { + if (passwordEditText.length() > 0) { + animationDrawables[3].setCustomEndFrame(-1); + if (imageView.getAnimatedDrawable() != animationDrawables[3]) { + imageView.setAnimation(animationDrawables[3]); + animationDrawables[3].setCurrentFrame(18, false); + } + imageView.playAnimation(); + } + } + } else { + passwordEditText.setTransformationMethod(null); + showPasswordButton.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_chat_messagePanelSend), PorterDuff.Mode.MULTIPLY)); + if (currentType == TYPE_ENTER_FIRST) { + if (passwordEditText.length() > 0) { + animationDrawables[3].setCustomEndFrame(18); + if (imageView.getAnimatedDrawable() != animationDrawables[3]) { + imageView.setAnimation(animationDrawables[3]); + } + animationDrawables[3].setProgress(0.0f, false); + imageView.playAnimation(); + } + } + } + passwordEditText.setSelection(passwordEditText.length()); + ignoreTextChange = false; + }); + + FrameLayout frameLayout2 = new FrameLayout(context); + scrollViewLinearLayout.addView(frameLayout2, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT | Gravity.TOP, 0, 36, 0, 33)); + + frameLayout2.addView(buttonTextView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, 42, Gravity.CENTER_HORIZONTAL | Gravity.TOP)); + frameLayout2.addView(descriptionText2, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL | Gravity.TOP)); + + fragmentView = container; + + actionBarBackground = new View(context) { + + private Paint paint = new Paint(); + + @Override + protected void onDraw(Canvas canvas) { + paint.setColor(Theme.getColor(Theme.key_windowBackgroundWhite)); + int h = getMeasuredHeight() - AndroidUtilities.dp(3); + canvas.drawRect(0, 0, getMeasuredWidth(), h, paint); + parentLayout.drawHeaderShadow(canvas, h); + } + }; + actionBarBackground.setAlpha(0.0f); + container.addView(actionBarBackground); + container.addView(actionBar); + break; + } + } + + fragmentView.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite)); + + switch (currentType) { + case TYPE_INTRO: { + titleTextView.setText(LocaleController.getString("TwoStepVerificationTitle", R.string.TwoStepVerificationTitle)); + descriptionText.setText(LocaleController.getString("SetAdditionalPasswordInfo", R.string.SetAdditionalPasswordInfo)); + buttonTextView.setText(LocaleController.getString("TwoStepVerificationSetPassword", R.string.TwoStepVerificationSetPassword)); + descriptionText.setVisibility(View.VISIBLE); + + imageView.setAnimation(R.raw.tsv_setup_intro, 120, 120); + imageView.playAnimation(); + break; + } + case TYPE_PASSWORD_SET: { + titleTextView.setText(LocaleController.getString("TwoStepVerificationPasswordSet", R.string.TwoStepVerificationPasswordSet)); + descriptionText.setText(LocaleController.getString("TwoStepVerificationPasswordSetInfo", R.string.TwoStepVerificationPasswordSetInfo)); + if (closeAfterSet) { + buttonTextView.setText(LocaleController.getString("TwoStepVerificationPasswordReturnPassport", R.string.TwoStepVerificationPasswordReturnPassport)); + } else { + buttonTextView.setText(LocaleController.getString("TwoStepVerificationPasswordReturnSettings", R.string.TwoStepVerificationPasswordReturnSettings)); + } + descriptionText.setVisibility(View.VISIBLE); + + imageView.setAnimation(R.raw.wallet_allset, 120, 120); + imageView.playAnimation(); + break; + } + case TYPE_ENTER_FIRST: { + if (currentPassword.has_password) { + actionBar.setTitle(LocaleController.getString("PleaseEnterNewFirstPassword", R.string.PleaseEnterNewFirstPassword)); + titleTextView.setText(LocaleController.getString("PleaseEnterNewFirstPassword", R.string.PleaseEnterNewFirstPassword)); + } else { + actionBar.setTitle(LocaleController.getString("PleaseEnterFirstPassword", R.string.PleaseEnterFirstPassword)); + titleTextView.setText(LocaleController.getString("PleaseEnterFirstPassword", R.string.PleaseEnterFirstPassword)); + } + actionBar.getTitleTextView().setAlpha(0.0f); + buttonTextView.setText(LocaleController.getString("Continue", R.string.Continue)); + passwordEditText.setHint(LocaleController.getString("LoginPassword", R.string.LoginPassword)); + passwordEditText.setImeOptions(EditorInfo.IME_ACTION_NEXT | EditorInfo.IME_FLAG_NO_EXTRACT_UI); + passwordEditText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); + passwordEditText.setTransformationMethod(PasswordTransformationMethod.getInstance()); + passwordEditText.setTypeface(Typeface.DEFAULT); + showPasswordButton.setVisibility(View.VISIBLE); + passwordEditText.setPadding(0, AndroidUtilities.dp(2), AndroidUtilities.dp(36), 0); + + animationDrawables = new RLottieDrawable[6]; + animationDrawables[0] = new RLottieDrawable(R.raw.tsv_setup_monkey_idle1, "" + R.raw.tsv_setup_monkey_idle1, AndroidUtilities.dp(120), AndroidUtilities.dp(120), true, null); + animationDrawables[1] = new RLottieDrawable(R.raw.tsv_setup_monkey_idle2, "" + R.raw.tsv_setup_monkey_idle2, AndroidUtilities.dp(120), AndroidUtilities.dp(120), true, null); + animationDrawables[2] = new RLottieDrawable(R.raw.tsv_monkey_close, "" + R.raw.tsv_monkey_close, AndroidUtilities.dp(120), AndroidUtilities.dp(120), true, null); + animationDrawables[3] = new RLottieDrawable(R.raw.tsv_setup_monkey_peek, "" + R.raw.tsv_setup_monkey_peek, AndroidUtilities.dp(120), AndroidUtilities.dp(120), true, null); + animationDrawables[4] = new RLottieDrawable(R.raw.tsv_setup_monkey_close_and_peek_to_idle, "" + R.raw.tsv_setup_monkey_close_and_peek_to_idle, AndroidUtilities.dp(120), AndroidUtilities.dp(120), true, null); + animationDrawables[5] = new RLottieDrawable(R.raw.tsv_setup_monkey_close_and_peek, "" + R.raw.tsv_setup_monkey_close_and_peek, AndroidUtilities.dp(120), AndroidUtilities.dp(120), true, null); + animationDrawables[2].setOnFinishCallback(() -> { + if (passwordEditText.length() != 0) { + animationDrawables[2].setCustomEndFrame(49); + animationDrawables[2].setProgress(0.0f, false); + imageView.playAnimation(); + } else { + setRandomMonkeyIdleAnimation(true); + } + }, 97); + setRandomMonkeyIdleAnimation(true); + break; + } + case TYPE_ENTER_SECOND: { + actionBar.setTitle(LocaleController.getString("PleaseReEnterPassword", R.string.PleaseReEnterPassword)); + actionBar.getTitleTextView().setAlpha(0.0f); + titleTextView.setText(LocaleController.getString("PleaseReEnterPassword", R.string.PleaseReEnterPassword)); + buttonTextView.setText(LocaleController.getString("Continue", R.string.Continue)); + passwordEditText.setHint(LocaleController.getString("LoginPassword", R.string.LoginPassword)); + passwordEditText.setImeOptions(EditorInfo.IME_ACTION_NEXT | EditorInfo.IME_FLAG_NO_EXTRACT_UI); + passwordEditText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); + passwordEditText.setTransformationMethod(PasswordTransformationMethod.getInstance()); + passwordEditText.setTypeface(Typeface.DEFAULT); + showPasswordButton.setVisibility(View.VISIBLE); + passwordEditText.setPadding(0, AndroidUtilities.dp(2), AndroidUtilities.dp(36), 0); + + animationDrawables = new RLottieDrawable[1]; + animationDrawables[0] = new RLottieDrawable(R.raw.tsv_setup_monkey_tracking, "" + R.raw.tsv_setup_monkey_tracking, AndroidUtilities.dp(120), AndroidUtilities.dp(120), true, null); + animationDrawables[0].setPlayInDirectionOfCustomEndFrame(true); + animationDrawables[0].setCustomEndFrame(19); + imageView.setAnimation(animationDrawables[0]); + imageView.playAnimation(); + break; + } + case TYPE_ENTER_HINT: { + actionBar.setTitle(LocaleController.getString("PasswordHint", R.string.PasswordHint)); + actionBar.getTitleTextView().setAlpha(0.0f); + topButton.setVisibility(View.VISIBLE); + topButton.setText(LocaleController.getString("YourEmailSkip", R.string.YourEmailSkip)); + titleTextView.setText(LocaleController.getString("PasswordHint", R.string.PasswordHint)); + buttonTextView.setText(LocaleController.getString("Continue", R.string.Continue)); + passwordEditText.setHint(LocaleController.getString("PasswordHintPlaceholder", R.string.PasswordHintPlaceholder)); + passwordEditText.setImeOptions(EditorInfo.IME_ACTION_NEXT | EditorInfo.IME_FLAG_NO_EXTRACT_UI); + + imageView.setAnimation(R.raw.tsv_setup_hint, 120, 120); + imageView.playAnimation(); + break; + } + case TYPE_ENTER_EMAIL: { + actionBar.setTitle(LocaleController.getString("RecoveryEmailTitle", R.string.RecoveryEmailTitle)); + actionBar.getTitleTextView().setAlpha(0.0f); + if (!emailOnly) { + topButton.setVisibility(View.VISIBLE); + topButton.setText(LocaleController.getString("YourEmailSkip", R.string.YourEmailSkip)); + } + titleTextView.setText(LocaleController.getString("RecoveryEmailTitle", R.string.RecoveryEmailTitle)); + buttonTextView.setText(LocaleController.getString("Continue", R.string.Continue)); + passwordEditText.setHint(LocaleController.getString("PaymentShippingEmailPlaceholder", R.string.PaymentShippingEmailPlaceholder)); + passwordEditText.setImeOptions(EditorInfo.IME_ACTION_NEXT | EditorInfo.IME_FLAG_NO_EXTRACT_UI); + passwordEditText.setInputType(EditorInfo.TYPE_CLASS_TEXT | EditorInfo.TYPE_TEXT_VARIATION_EMAIL_ADDRESS); + + imageView.setAnimation(R.raw.tsv_setup_email_sent, 120, 120); + imageView.playAnimation(); + break; + } + case TYPE_EMAIL_CONFIRM: { + actionBar.setTitle(LocaleController.getString("VerificationCode", R.string.VerificationCode)); + actionBar.getTitleTextView().setAlpha(0.0f); + titleTextView.setText(LocaleController.getString("VerificationCode", R.string.VerificationCode)); + buttonTextView.setText(LocaleController.getString("Continue", R.string.Continue)); + passwordEditText.setHint(LocaleController.getString("EnterCode", R.string.EnterCode)); + passwordEditText.setInputType(InputType.TYPE_CLASS_PHONE); + passwordEditText.setImeOptions(EditorInfo.IME_ACTION_DONE | EditorInfo.IME_FLAG_NO_EXTRACT_UI); + descriptionText2.setText(LocaleController.formatString("EmailPasswordConfirmText2", R.string.EmailPasswordConfirmText2, currentPassword.email_unconfirmed_pattern != null ? currentPassword.email_unconfirmed_pattern : "")); + descriptionText2.setVisibility(View.VISIBLE); + buttonTextView.setVisibility(View.INVISIBLE); + buttonTextView.setAlpha(0.0f); + buttonTextView.setScaleX(0.9f); + buttonTextView.setScaleY(0.9f); + + imageView.setAnimation(R.raw.tsv_setup_mail, 120, 120); + imageView.playAnimation(); + break; + } + case TYPE_EMAIL_RECOVERY: { + actionBar.setTitle(LocaleController.getString("PasswordRecovery", R.string.PasswordRecovery)); + actionBar.getTitleTextView().setAlpha(0.0f); + titleTextView.setText(LocaleController.getString("PasswordRecovery", R.string.PasswordRecovery)); + buttonTextView.setText(LocaleController.getString("Continue", R.string.Continue)); + passwordEditText.setHint(LocaleController.getString("EnterCode", R.string.EnterCode)); + passwordEditText.setInputType(InputType.TYPE_CLASS_PHONE); + passwordEditText.setImeOptions(EditorInfo.IME_ACTION_DONE | EditorInfo.IME_FLAG_NO_EXTRACT_UI); + descriptionText2.setText(LocaleController.formatString("RestoreEmailSent", R.string.RestoreEmailSent, currentPassword.email_unconfirmed_pattern != null ? currentPassword.email_unconfirmed_pattern : "")); + descriptionText2.setVisibility(View.VISIBLE); + buttonTextView.setVisibility(View.INVISIBLE); + buttonTextView.setAlpha(0.0f); + buttonTextView.setScaleX(0.9f); + buttonTextView.setScaleY(0.9f); + + imageView.setAnimation(R.raw.tsv_setup_mail, 120, 120); + imageView.playAnimation(); + break; + } + } + + if (passwordEditText != null) { + passwordEditText.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + + } + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + + } + + @Override + public void afterTextChanged(Editable s) { + if (ignoreTextChange) { + return; + } + if (currentType == TYPE_ENTER_FIRST) { + RLottieDrawable currentDrawable = imageView.getAnimatedDrawable(); + if (passwordEditText.length() > 0) { + if (passwordEditText.getTransformationMethod() == null) { + if (currentDrawable != animationDrawables[3] && currentDrawable != animationDrawables[5]) { + imageView.setAnimation(animationDrawables[5]); + animationDrawables[5].setProgress(0.0f, false); + imageView.playAnimation(); + } + } else { + if (currentDrawable != animationDrawables[3]) { + if (currentDrawable != animationDrawables[2]) { + imageView.setAnimation(animationDrawables[2]); + animationDrawables[2].setCustomEndFrame(49); + animationDrawables[2].setProgress(0.0f, false); + imageView.playAnimation(); + } else { + if (animationDrawables[2].getCurrentFrame() < 49) { + animationDrawables[2].setCustomEndFrame(49); + } + } + } + } + } else { + if (currentDrawable == animationDrawables[3] && passwordEditText.getTransformationMethod() == null || currentDrawable == animationDrawables[5]) { + imageView.setAnimation(animationDrawables[4]); + animationDrawables[4].setProgress(0.0f, false); + imageView.playAnimation(); + } else { + animationDrawables[2].setCustomEndFrame(-1); + if (currentDrawable != animationDrawables[2]) { + imageView.setAnimation(animationDrawables[2]); + animationDrawables[2].setCurrentFrame(49, false); + } + imageView.playAnimation(); + } + } + } else if (currentType == TYPE_ENTER_SECOND) { + try { + float progress = Math.min(1.0f, passwordEditText.getLayout().getLineWidth(0) / passwordEditText.getWidth()); + animationDrawables[0].setCustomEndFrame((int) (18 + progress * (160 - 18))); + imageView.playAnimation(); + } catch (Exception e) { + FileLog.e(e); + } + } else if (currentType == TYPE_EMAIL_CONFIRM || currentType == TYPE_EMAIL_RECOVERY) { + if (emailCodeLength != 0 && s.length() == emailCodeLength) { + buttonTextView.callOnClick(); + } + showDoneButton(s.length() > 0); + } + } + }); + } + + return fragmentView; + } + + @Override + public void onPause() { + super.onPause(); + paused = true; + } + + @Override + public void onResume() { + super.onResume(); + paused = false; + if (passwordEditText != null && passwordEditText.getVisibility() == View.VISIBLE) { + AndroidUtilities.runOnUIThread(() -> { + if (passwordEditText != null) { + passwordEditText.requestFocus(); + AndroidUtilities.showKeyboard(passwordEditText); + } + }, 200); + } + AndroidUtilities.requestAdjustResize(getParentActivity(), classGuid); + } + + @Override + protected boolean hideKeyboardOnShow() { + return currentType == TYPE_PASSWORD_SET; + } + + private void onHintDone() { + if (!currentPassword.has_recovery) { + TwoStepVerificationSetupActivity fragment = new TwoStepVerificationSetupActivity(currentAccount, TYPE_ENTER_EMAIL, currentPassword); + fragment.setCurrentPasswordParams(currentPasswordHash, currentSecretId, currentSecret, emailOnly); + fragment.firstPassword = firstPassword; + fragment.hint = hint; + fragment.fragmentsToClose.addAll(fragmentsToClose); + fragment.fragmentsToClose.add(this); + fragment.closeAfterSet = closeAfterSet; + presentFragment(fragment); + } else { + email = ""; + setNewPassword(false); + } + } + + private void showDoneButton(boolean show) { + if (show == (buttonTextView.getTag() != null)) { + return; + } + if (buttonAnimation != null) { + buttonAnimation.cancel(); + } + buttonTextView.setTag(show ? 1 : null); + buttonAnimation = new AnimatorSet(); + if (show) { + buttonTextView.setVisibility(View.VISIBLE); + buttonAnimation.playTogether( + ObjectAnimator.ofFloat(descriptionText2, View.SCALE_X, 0.9f), + ObjectAnimator.ofFloat(descriptionText2, View.SCALE_Y, 0.9f), + ObjectAnimator.ofFloat(descriptionText2, View.ALPHA, 0.0f), + ObjectAnimator.ofFloat(buttonTextView, View.SCALE_X, 1.0f), + ObjectAnimator.ofFloat(buttonTextView, View.SCALE_Y, 1.0f), + ObjectAnimator.ofFloat(buttonTextView, View.ALPHA, 1.0f)); + } else { + descriptionText2.setVisibility(View.VISIBLE); + buttonAnimation.playTogether( + ObjectAnimator.ofFloat(buttonTextView, View.SCALE_X, 0.9f), + ObjectAnimator.ofFloat(buttonTextView, View.SCALE_Y, 0.9f), + ObjectAnimator.ofFloat(buttonTextView, View.ALPHA, 0.0f), + ObjectAnimator.ofFloat(descriptionText2, View.SCALE_X, 1.0f), + ObjectAnimator.ofFloat(descriptionText2, View.SCALE_Y, 1.0f), + ObjectAnimator.ofFloat(descriptionText2, View.ALPHA, 1.0f)); + } + buttonAnimation.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + if (buttonAnimation != null && buttonAnimation.equals(animation)) { + if (show) { + descriptionText2.setVisibility(View.INVISIBLE); + } else { + buttonTextView.setVisibility(View.INVISIBLE); + } + } + } + + @Override + public void onAnimationCancel(Animator animation) { + if (buttonAnimation != null && buttonAnimation.equals(animation)) { + buttonAnimation = null; + } + } + }); + buttonAnimation.setDuration(150); + buttonAnimation.start(); + } + + private void setRandomMonkeyIdleAnimation(boolean first) { + if (currentType != TYPE_ENTER_FIRST) { + return; + } + if (setAnimationRunnable != null) { + AndroidUtilities.cancelRunOnUIThread(setAnimationRunnable); + } + RLottieDrawable currentAnimation = imageView.getAnimatedDrawable(); + if (first || (currentAnimation == animationDrawables[0] || currentAnimation == animationDrawables[1]) || passwordEditText.length() == 0 && (currentAnimation == null || !currentAnimation.isRunning())) { + if (Utilities.random.nextInt() % 2 == 0) { + imageView.setAnimation(animationDrawables[0]); + animationDrawables[0].setProgress(0.0f); + } else { + imageView.setAnimation(animationDrawables[1]); + animationDrawables[1].setProgress(0.0f); + } + if (!first) { + imageView.playAnimation(); + } + } + AndroidUtilities.runOnUIThread(setAnimationRunnable = () -> { + if (setAnimationRunnable == null) { + return; + } + setRandomMonkeyIdleAnimation(false); + }, Utilities.random.nextInt(2000) + 5000); + } + + public void setCloseAfterSet(boolean value) { + closeAfterSet = value; + } + + @Override + public void onTransitionAnimationEnd(boolean isOpen, boolean backward) { + if (isOpen) { + if (passwordEditText != null && passwordEditText.getVisibility() == View.VISIBLE) { + AndroidUtilities.showKeyboard(passwordEditText); + } + } + } + + private void loadPasswordInfo() { + TLRPC.TL_account_getPassword req = new TLRPC.TL_account_getPassword(); + ConnectionsManager.getInstance(currentAccount).sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> { + if (error == null) { + currentPassword = (TLRPC.TL_account_password) response; + if (!TwoStepVerificationActivity.canHandleCurrentPassword(currentPassword, false)) { + AlertsCreator.showUpdateAppAlert(getParentActivity(), LocaleController.getString("UpdateAppAlert", R.string.UpdateAppAlert), true); + return; + } + waitingForEmail = !TextUtils.isEmpty(currentPassword.email_unconfirmed_pattern); + TwoStepVerificationActivity.initPasswordNewAlgo(currentPassword); + if (!paused && closeAfterSet && currentPassword.has_password) { + TLRPC.PasswordKdfAlgo pendingCurrentAlgo = currentPassword.current_algo; + TLRPC.SecurePasswordKdfAlgo pendingNewSecureAlgo = currentPassword.new_secure_algo; + byte[] pendingSecureRandom = currentPassword.secure_random; + String pendingEmail = currentPassword.has_recovery ? "1" : null; + String pendingHint = currentPassword.hint != null ? currentPassword.hint : ""; + + if (!waitingForEmail && pendingCurrentAlgo != null) { + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.twoStepPasswordChanged, null, pendingCurrentAlgo, pendingNewSecureAlgo, pendingSecureRandom, pendingEmail, pendingHint, null, null); + finishFragment(); + } + } + if (doneAfterPasswordLoad) { + needHideProgress(); + buttonTextView.callOnClick(); + } + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.didSetOrRemoveTwoStepPassword, currentPassword); + } + }), ConnectionsManager.RequestFlagFailOnServerErrors | ConnectionsManager.RequestFlagWithoutLogin); + } + + private void needShowProgress() { + if (getParentActivity() == null || getParentActivity().isFinishing() || progressDialog != null) { + return; + } + progressDialog = new AlertDialog(getParentActivity(), 3); + progressDialog.setCanCacnel(false); + progressDialog.show(); + } + + protected void needHideProgress() { + if (progressDialog == null) { + return; + } + try { + progressDialog.dismiss(); + } catch (Exception e) { + FileLog.e(e); + } + progressDialog = null; + } + + private boolean isValidEmail(String text) { + if (text == null || text.length() < 3) { + return false; + } + int dot = text.lastIndexOf('.'); + int dog = text.lastIndexOf('@'); + return !(dog < 0 || dot < dog); + } + + private void showAlertWithText(String title, String text) { + if (getParentActivity() == null) { + return; + } + AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); + builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder.setTitle(title); + builder.setMessage(text); + showDialog(builder.create()); + } + + private void setNewPassword(final boolean clear) { + if (clear && waitingForEmail && currentPassword.has_password) { + needShowProgress(); + TLRPC.TL_account_cancelPasswordEmail req = new TLRPC.TL_account_cancelPasswordEmail(); + ConnectionsManager.getInstance(currentAccount).sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> { + needHideProgress(); + if (error == null) { + TwoStepVerificationActivity fragment = new TwoStepVerificationActivity(); + currentPassword.has_recovery = false; + currentPassword.email_unconfirmed_pattern = ""; + fragment.setCurrentPasswordParams(currentPassword, currentPasswordHash, currentSecretId, currentSecret); + presentFragment(fragment, true); + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.didRemoveTwoStepPassword); + } + })); + return; + } + final String password = firstPassword; + final TLRPC.TL_account_updatePasswordSettings req = new TLRPC.TL_account_updatePasswordSettings(); + if (currentPasswordHash == null || currentPasswordHash.length == 0) { + req.password = new TLRPC.TL_inputCheckPasswordEmpty(); + } + req.new_settings = new TLRPC.TL_account_passwordInputSettings(); + if (clear) { + UserConfig.getInstance(currentAccount).resetSavedPassword(); + currentSecret = null; + if (waitingForEmail) { + req.new_settings.flags = 2; + req.new_settings.email = ""; + req.password = new TLRPC.TL_inputCheckPasswordEmpty(); + } else { + req.new_settings.flags = 3; + req.new_settings.hint = ""; + req.new_settings.new_password_hash = new byte[0]; + req.new_settings.new_algo = new TLRPC.TL_passwordKdfAlgoUnknown(); + req.new_settings.email = ""; + } + } else { + if (hint == null && currentPassword != null) { + hint = currentPassword.hint; + } + if (hint == null) { + hint = ""; + } + if (password != null) { + req.new_settings.flags |= 1; + req.new_settings.hint = hint; + req.new_settings.new_algo = currentPassword.new_algo; + } + if (email.length() > 0) { + req.new_settings.flags |= 2; + req.new_settings.email = email.trim(); + } + } + needShowProgress(); + Utilities.globalQueue.postRunnable(() -> { + if (req.password == null) { + req.password = getNewSrpPassword(); + } + + byte[] newPasswordBytes; + byte[] newPasswordHash; + if (!clear && password != null) { + newPasswordBytes = AndroidUtilities.getStringBytes(password); + if (currentPassword.new_algo instanceof TLRPC.TL_passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow) { + TLRPC.TL_passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow algo = (TLRPC.TL_passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow) currentPassword.new_algo; + newPasswordHash = SRPHelper.getX(newPasswordBytes, algo); + } else { + newPasswordHash = null; + } + } else { + newPasswordBytes = null; + newPasswordHash = null; + } + + RequestDelegate requestDelegate = (response, error) -> AndroidUtilities.runOnUIThread(() -> { + if (error != null && "SRP_ID_INVALID".equals(error.text)) { + TLRPC.TL_account_getPassword getPasswordReq = new TLRPC.TL_account_getPassword(); + ConnectionsManager.getInstance(currentAccount).sendRequest(getPasswordReq, (response2, error2) -> AndroidUtilities.runOnUIThread(() -> { + if (error2 == null) { + currentPassword = (TLRPC.TL_account_password) response2; + TwoStepVerificationActivity.initPasswordNewAlgo(currentPassword); + setNewPassword(clear); + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.didSetOrRemoveTwoStepPassword, currentPassword); + } + }), ConnectionsManager.RequestFlagWithoutLogin); + return; + } + needHideProgress(); + if (error == null && response instanceof TLRPC.TL_boolTrue) { + if (clear) { + for (int a = 0, N = fragmentsToClose.size(); a < N; a++) { + fragmentsToClose.get(a).removeSelfFromStack(); + } + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.didRemoveTwoStepPassword); + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.didSetOrRemoveTwoStepPassword); + finishFragment(); + } else { + if (getParentActivity() == null) { + return; + } + if (currentPassword.has_password) { + AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); + builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), (dialogInterface, i) -> { + for (int a = 0, N = fragmentsToClose.size(); a < N; a++) { + fragmentsToClose.get(a).removeSelfFromStack(); + } + TwoStepVerificationActivity fragment = new TwoStepVerificationActivity(); + currentPassword.has_password = true; + if (!currentPassword.has_recovery) { + currentPassword.has_recovery = !TextUtils.isEmpty(currentPassword.email_unconfirmed_pattern); + } + fragment.setCurrentPasswordParams(currentPassword, newPasswordHash != null ? newPasswordHash : currentPasswordHash, currentSecretId, currentSecret); + presentFragment(fragment, true); + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.didSetOrRemoveTwoStepPassword, currentPassword); + }); + if (password == null && currentPassword != null && currentPassword.has_password) { + builder.setMessage(LocaleController.getString("YourEmailSuccessText", R.string.YourEmailSuccessText)); + } else { + builder.setMessage(LocaleController.getString("YourPasswordChangedSuccessText", R.string.YourPasswordChangedSuccessText)); + } + builder.setTitle(LocaleController.getString("YourPasswordSuccess", R.string.YourPasswordSuccess)); + Dialog dialog = showDialog(builder.create()); + if (dialog != null) { + dialog.setCanceledOnTouchOutside(false); + dialog.setCancelable(false); + } + } else { + for (int a = 0, N = fragmentsToClose.size(); a < N; a++) { + fragmentsToClose.get(a).removeSelfFromStack(); + } + currentPassword.has_password = true; + if (!currentPassword.has_recovery) { + currentPassword.has_recovery = !TextUtils.isEmpty(currentPassword.email_unconfirmed_pattern); + } + if (closeAfterSet) { + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.twoStepPasswordChanged); + } + TwoStepVerificationSetupActivity fragment = new TwoStepVerificationSetupActivity(TYPE_PASSWORD_SET, currentPassword); + fragment.setCurrentPasswordParams(newPasswordHash != null ? newPasswordHash : currentPasswordHash, currentSecretId, currentSecret, emailOnly); + fragment.closeAfterSet = closeAfterSet; + presentFragment(fragment, true); + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.didSetOrRemoveTwoStepPassword, currentPassword); + } + } + } else if (error != null) { + if ("EMAIL_UNCONFIRMED".equals(error.text) || error.text.startsWith("EMAIL_UNCONFIRMED_")) { + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.twoStepPasswordChanged); + for (int a = 0, N = fragmentsToClose.size(); a < N; a++) { + fragmentsToClose.get(a).removeSelfFromStack(); + } + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.twoStepPasswordChanged, newPasswordHash, req.new_settings.new_algo, currentPassword.new_secure_algo, currentPassword.secure_random, email, hint, email, firstPassword); + currentPassword.email_unconfirmed_pattern = email; + TwoStepVerificationSetupActivity fragment = new TwoStepVerificationSetupActivity(TwoStepVerificationSetupActivity.TYPE_EMAIL_CONFIRM, currentPassword); + fragment.setCurrentPasswordParams(newPasswordHash != null ? newPasswordHash : currentPasswordHash, currentSecretId, currentSecret, emailOnly); + fragment.closeAfterSet = closeAfterSet; + presentFragment(fragment, true); + } else { + if ("EMAIL_INVALID".equals(error.text)) { + showAlertWithText(LocaleController.getString("AppName", R.string.AppName), LocaleController.getString("PasswordEmailInvalid", R.string.PasswordEmailInvalid)); + } else if (error.text.startsWith("FLOOD_WAIT")) { + int time = Utilities.parseInt(error.text); + String timeString; + if (time < 60) { + timeString = LocaleController.formatPluralString("Seconds", time); + } else { + timeString = LocaleController.formatPluralString("Minutes", time / 60); + } + showAlertWithText(LocaleController.getString("AppName", R.string.AppName), LocaleController.formatString("FloodWaitTime", R.string.FloodWaitTime, timeString)); + } else { + showAlertWithText(LocaleController.getString("AppName", R.string.AppName), error.text); + } + } + } + }); + + if (!clear) { + if (password != null && currentSecret != null && currentSecret.length == 32) { + if (currentPassword.new_secure_algo instanceof TLRPC.TL_securePasswordKdfAlgoPBKDF2HMACSHA512iter100000) { + TLRPC.TL_securePasswordKdfAlgoPBKDF2HMACSHA512iter100000 newAlgo = (TLRPC.TL_securePasswordKdfAlgoPBKDF2HMACSHA512iter100000) currentPassword.new_secure_algo; + + byte[] passwordHash = Utilities.computePBKDF2(newPasswordBytes, newAlgo.salt); + byte[] key = new byte[32]; + System.arraycopy(passwordHash, 0, key, 0, 32); + byte[] iv = new byte[16]; + System.arraycopy(passwordHash, 32, iv, 0, 16); + + byte[] encryptedSecret = new byte[32]; + System.arraycopy(currentSecret, 0, encryptedSecret, 0, 32); + Utilities.aesCbcEncryptionByteArraySafe(encryptedSecret, key, iv, 0, encryptedSecret.length, 0, 1); + + req.new_settings.new_secure_settings = new TLRPC.TL_secureSecretSettings(); + req.new_settings.new_secure_settings.secure_algo = newAlgo; + req.new_settings.new_secure_settings.secure_secret = encryptedSecret; + req.new_settings.new_secure_settings.secure_secret_id = currentSecretId; + req.new_settings.flags |= 4; + } + } + + if (currentPassword.new_algo instanceof TLRPC.TL_passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow) { + if (password != null) { + TLRPC.TL_passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow algo = (TLRPC.TL_passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow) currentPassword.new_algo; + req.new_settings.new_password_hash = SRPHelper.getVBytes(newPasswordBytes, algo); + if (req.new_settings.new_password_hash == null) { + TLRPC.TL_error error = new TLRPC.TL_error(); + error.text = "ALGO_INVALID"; + requestDelegate.run(null, error); + } + } + ConnectionsManager.getInstance(currentAccount).sendRequest(req, requestDelegate, ConnectionsManager.RequestFlagFailOnServerErrors | ConnectionsManager.RequestFlagWithoutLogin); + } else { + TLRPC.TL_error error = new TLRPC.TL_error(); + error.text = "PASSWORD_HASH_INVALID"; + requestDelegate.run(null, error); + } + } else { + ConnectionsManager.getInstance(currentAccount).sendRequest(req, requestDelegate, ConnectionsManager.RequestFlagFailOnServerErrors | ConnectionsManager.RequestFlagWithoutLogin); + } + }); + } + + protected TLRPC.TL_inputCheckPasswordSRP getNewSrpPassword() { + if (currentPassword.current_algo instanceof TLRPC.TL_passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow) { + TLRPC.TL_passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow algo = (TLRPC.TL_passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow) currentPassword.current_algo; + return SRPHelper.startCheck(currentPasswordHash, currentPassword.srp_id, currentPassword.srp_B, algo); + } + return null; + } + + private void onFieldError(TextView field, boolean clear) { + if (getParentActivity() == null) { + return; + } + Vibrator v = (Vibrator) getParentActivity().getSystemService(Context.VIBRATOR_SERVICE); + if (v != null) { + v.vibrate(200); + } + if (clear) { + field.setText(""); + } + AndroidUtilities.shakeView(field, 2, 0); + } + + @Override + public ArrayList getThemeDescriptions() { + ArrayList themeDescriptions = new ArrayList<>(); + + themeDescriptions.add(new ThemeDescription(fragmentView, ThemeDescription.FLAG_BACKGROUND | ThemeDescription.FLAG_CHECKTAG, null, null, null, null, Theme.key_windowBackgroundWhite)); + themeDescriptions.add(new ThemeDescription(fragmentView, ThemeDescription.FLAG_BACKGROUND | ThemeDescription.FLAG_CHECKTAG, null, null, null, null, Theme.key_windowBackgroundGray)); + + themeDescriptions.add(new ThemeDescription(actionBar, ThemeDescription.FLAG_BACKGROUND, null, null, null, null, Theme.key_actionBarDefault)); + themeDescriptions.add(new ThemeDescription(actionBar, ThemeDescription.FLAG_AB_ITEMSCOLOR, null, null, null, null, Theme.key_actionBarDefaultIcon)); + themeDescriptions.add(new ThemeDescription(actionBar, ThemeDescription.FLAG_AB_TITLECOLOR, null, null, null, null, Theme.key_actionBarDefaultTitle)); + themeDescriptions.add(new ThemeDescription(actionBar, ThemeDescription.FLAG_AB_SELECTORCOLOR, null, null, null, null, Theme.key_actionBarDefaultSelector)); + + themeDescriptions.add(new ThemeDescription(titleTextView, ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_windowBackgroundWhiteGrayText6)); + themeDescriptions.add(new ThemeDescription(passwordEditText, ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_windowBackgroundWhiteBlackText)); + themeDescriptions.add(new ThemeDescription(passwordEditText, ThemeDescription.FLAG_HINTTEXTCOLOR, null, null, null, null, Theme.key_windowBackgroundWhiteHintText)); + themeDescriptions.add(new ThemeDescription(passwordEditText, ThemeDescription.FLAG_BACKGROUNDFILTER, null, null, null, null, Theme.key_windowBackgroundWhiteInputField)); + themeDescriptions.add(new ThemeDescription(passwordEditText, ThemeDescription.FLAG_BACKGROUNDFILTER | ThemeDescription.FLAG_DRAWABLESELECTEDSTATE, null, null, null, null, Theme.key_windowBackgroundWhiteInputFieldActivated)); + + return themeDescriptions; + } +} diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_bots.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_bots.png new file mode 100644 index 000000000..ed180f129 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/menu_bots.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_private.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_private.png new file mode 100644 index 000000000..3529d394b Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/menu_private.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_unread.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_unread.png new file mode 100644 index 000000000..c17d11d23 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/menu_unread.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_addfolder.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_addfolder.png new file mode 100644 index 000000000..b6edc8122 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/msg_addfolder.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_removefolder.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_removefolder.png new file mode 100644 index 000000000..2948a7e80 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/msg_removefolder.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_text_check.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_text_check.png new file mode 100644 index 000000000..05c1476eb Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/msg_text_check.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_text_framed.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_text_framed.png new file mode 100644 index 000000000..2ca54b9ab Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/msg_text_framed.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_text_outlined.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_text_outlined.png new file mode 100644 index 000000000..0045d5fa4 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/msg_text_outlined.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_text_regular.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_text_regular.png new file mode 100644 index 000000000..5ad8634d9 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/msg_text_regular.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/photo_add.png b/TMessagesProj/src/main/res/drawable-hdpi/photo_add.png index afd010edb..63419b543 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/photo_add.png and b/TMessagesProj/src/main/res/drawable-hdpi/photo_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/photo_tooltip2.png b/TMessagesProj/src/main/res/drawable-hdpi/photo_tooltip2.png new file mode 100644 index 000000000..5056ad9ce Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/photo_tooltip2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/selectphoto_large.png b/TMessagesProj/src/main/res/drawable-hdpi/selectphoto_large.png old mode 100755 new mode 100644 index f522c5730..facdd8a7d Binary files a/TMessagesProj/src/main/res/drawable-hdpi/selectphoto_large.png and b/TMessagesProj/src/main/res/drawable-hdpi/selectphoto_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/stickers_gifs_trending.png b/TMessagesProj/src/main/res/drawable-hdpi/stickers_gifs_trending.png new file mode 100644 index 000000000..28a05f077 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/stickers_gifs_trending.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/toast_folder.png b/TMessagesProj/src/main/res/drawable-hdpi/toast_folder.png new file mode 100644 index 000000000..dc2e26220 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/toast_folder.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/toast_folder_minus.png b/TMessagesProj/src/main/res/drawable-hdpi/toast_folder_minus.png new file mode 100644 index 000000000..a471591e3 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/toast_folder_minus.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/video_cropleft.png b/TMessagesProj/src/main/res/drawable-hdpi/video_cropleft.png index 12520b124..6156a051d 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/video_cropleft.png and b/TMessagesProj/src/main/res/drawable-hdpi/video_cropleft.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/video_cropright.png b/TMessagesProj/src/main/res/drawable-hdpi/video_cropright.png index eaa4a10fe..8e0a7686f 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/video_cropright.png and b/TMessagesProj/src/main/res/drawable-hdpi/video_cropright.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/video_pause1.png b/TMessagesProj/src/main/res/drawable-hdpi/video_pause1.png new file mode 100644 index 000000000..15dda6cf7 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/video_pause1.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/video_play1.png b/TMessagesProj/src/main/res/drawable-hdpi/video_play1.png new file mode 100644 index 000000000..b33b9f4d4 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/video_play1.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/video_send_mute.png b/TMessagesProj/src/main/res/drawable-hdpi/video_send_mute.png new file mode 100644 index 000000000..b7a9f1699 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/video_send_mute.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/video_send_unmute.png b/TMessagesProj/src/main/res/drawable-hdpi/video_send_unmute.png new file mode 100644 index 000000000..a25f4b473 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/video_send_unmute.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_bots.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_bots.png new file mode 100644 index 000000000..da7b914f9 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/menu_bots.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_private.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_private.png new file mode 100644 index 000000000..1b00b8601 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/menu_private.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_unread.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_unread.png new file mode 100644 index 000000000..6bfcdc4a4 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/menu_unread.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_addfolder.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_addfolder.png new file mode 100644 index 000000000..b1af01acb Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/msg_addfolder.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_removefolder.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_removefolder.png new file mode 100644 index 000000000..98627677c Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/msg_removefolder.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_text_check.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_text_check.png new file mode 100644 index 000000000..4bb906c2d Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/msg_text_check.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_text_framed.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_text_framed.png new file mode 100644 index 000000000..2444e8f9a Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/msg_text_framed.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_text_outlined.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_text_outlined.png new file mode 100644 index 000000000..371ef9d04 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/msg_text_outlined.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_text_regular.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_text_regular.png new file mode 100644 index 000000000..1ffe2b9b4 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/msg_text_regular.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/photo_add.png b/TMessagesProj/src/main/res/drawable-mdpi/photo_add.png index b5189257b..3c22285a6 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/photo_add.png and b/TMessagesProj/src/main/res/drawable-mdpi/photo_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/photo_tooltip2.png b/TMessagesProj/src/main/res/drawable-mdpi/photo_tooltip2.png new file mode 100644 index 000000000..8cea1d0a7 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/photo_tooltip2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/selectphoto_large.png b/TMessagesProj/src/main/res/drawable-mdpi/selectphoto_large.png old mode 100755 new mode 100644 index 55c509b7f..833aaf32c Binary files a/TMessagesProj/src/main/res/drawable-mdpi/selectphoto_large.png and b/TMessagesProj/src/main/res/drawable-mdpi/selectphoto_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/stickers_gifs_trending.png b/TMessagesProj/src/main/res/drawable-mdpi/stickers_gifs_trending.png new file mode 100644 index 000000000..cbab2c29a Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/stickers_gifs_trending.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/toast_folder.png b/TMessagesProj/src/main/res/drawable-mdpi/toast_folder.png new file mode 100644 index 000000000..c2b06a8d6 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/toast_folder.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/toast_folder_minus.png b/TMessagesProj/src/main/res/drawable-mdpi/toast_folder_minus.png new file mode 100644 index 000000000..04eb2d4ba Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/toast_folder_minus.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/video_cropleft.png b/TMessagesProj/src/main/res/drawable-mdpi/video_cropleft.png index 4e39dc488..f9b292cc2 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/video_cropleft.png and b/TMessagesProj/src/main/res/drawable-mdpi/video_cropleft.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/video_cropright.png b/TMessagesProj/src/main/res/drawable-mdpi/video_cropright.png index 7d5ae66cf..b3a34be87 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/video_cropright.png and b/TMessagesProj/src/main/res/drawable-mdpi/video_cropright.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/video_pause1.png b/TMessagesProj/src/main/res/drawable-mdpi/video_pause1.png new file mode 100644 index 000000000..8a9f0f51f Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/video_pause1.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/video_play1.png b/TMessagesProj/src/main/res/drawable-mdpi/video_play1.png new file mode 100644 index 000000000..1011ca852 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/video_play1.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/video_send_mute.png b/TMessagesProj/src/main/res/drawable-mdpi/video_send_mute.png new file mode 100644 index 000000000..c91ea55d4 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/video_send_mute.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/video_send_unmute.png b/TMessagesProj/src/main/res/drawable-mdpi/video_send_unmute.png new file mode 100644 index 000000000..73bc7ac3f Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/video_send_unmute.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_bots.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_bots.png new file mode 100644 index 000000000..41bc7ac4a Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_bots.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_private.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_private.png new file mode 100644 index 000000000..1f73b7051 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_private.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_unread.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_unread.png new file mode 100644 index 000000000..f7c5ba027 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_unread.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_addfolder.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_addfolder.png new file mode 100644 index 000000000..a1ac957f8 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_addfolder.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_removefolder.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_removefolder.png new file mode 100644 index 000000000..b9855fc71 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_removefolder.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_text_check.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_text_check.png new file mode 100644 index 000000000..dc29da4df Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_text_check.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_text_framed.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_text_framed.png new file mode 100644 index 000000000..273f5f925 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_text_framed.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_text_outlined.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_text_outlined.png new file mode 100644 index 000000000..9b4a0659c Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_text_outlined.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_text_regular.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_text_regular.png new file mode 100644 index 000000000..5559c0ab1 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_text_regular.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/photo_add.png b/TMessagesProj/src/main/res/drawable-xhdpi/photo_add.png index 0db62e656..d9b8d56b1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/photo_add.png and b/TMessagesProj/src/main/res/drawable-xhdpi/photo_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/photo_tooltip2.png b/TMessagesProj/src/main/res/drawable-xhdpi/photo_tooltip2.png new file mode 100644 index 000000000..f6365236b Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/photo_tooltip2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/selectphoto_large.png b/TMessagesProj/src/main/res/drawable-xhdpi/selectphoto_large.png old mode 100755 new mode 100644 index 8d833d0c8..827de2c9f Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/selectphoto_large.png and b/TMessagesProj/src/main/res/drawable-xhdpi/selectphoto_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/stickers_gifs_trending.png b/TMessagesProj/src/main/res/drawable-xhdpi/stickers_gifs_trending.png new file mode 100644 index 000000000..af10a20c4 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/stickers_gifs_trending.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/toast_folder.png b/TMessagesProj/src/main/res/drawable-xhdpi/toast_folder.png new file mode 100644 index 000000000..b084273e2 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/toast_folder.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/toast_folder_minus.png b/TMessagesProj/src/main/res/drawable-xhdpi/toast_folder_minus.png new file mode 100644 index 000000000..0ca425ee2 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/toast_folder_minus.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/video_cropleft.png b/TMessagesProj/src/main/res/drawable-xhdpi/video_cropleft.png index e219cc02f..f346277c2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/video_cropleft.png and b/TMessagesProj/src/main/res/drawable-xhdpi/video_cropleft.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/video_cropright.png b/TMessagesProj/src/main/res/drawable-xhdpi/video_cropright.png index 755dbbf4e..2a6604e0f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/video_cropright.png and b/TMessagesProj/src/main/res/drawable-xhdpi/video_cropright.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/video_pause1.png b/TMessagesProj/src/main/res/drawable-xhdpi/video_pause1.png new file mode 100644 index 000000000..b061ccbaf Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/video_pause1.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/video_play1.png b/TMessagesProj/src/main/res/drawable-xhdpi/video_play1.png new file mode 100644 index 000000000..02836b77f Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/video_play1.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/video_send_mute.png b/TMessagesProj/src/main/res/drawable-xhdpi/video_send_mute.png new file mode 100644 index 000000000..603425f3d Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/video_send_mute.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/video_send_unmute.png b/TMessagesProj/src/main/res/drawable-xhdpi/video_send_unmute.png new file mode 100644 index 000000000..9c8722a0d Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/video_send_unmute.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_bots.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_bots.png new file mode 100644 index 000000000..df849366f Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_bots.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_private.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_private.png new file mode 100644 index 000000000..3dc671877 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_private.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_unread.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_unread.png new file mode 100644 index 000000000..34c829459 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_unread.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_addfolder.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_addfolder.png new file mode 100644 index 000000000..01810a96b Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_addfolder.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_removefolder.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_removefolder.png new file mode 100644 index 000000000..48b46e67c Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_removefolder.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_text_check.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_text_check.png new file mode 100644 index 000000000..a38540eff Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_text_check.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_text_framed.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_text_framed.png new file mode 100644 index 000000000..285596c7d Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_text_framed.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_text_outlined.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_text_outlined.png new file mode 100644 index 000000000..15e89a512 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_text_outlined.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_text_regular.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_text_regular.png new file mode 100644 index 000000000..9f702dc01 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_text_regular.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/photo_add.png b/TMessagesProj/src/main/res/drawable-xxhdpi/photo_add.png index 3df075a33..04a88a549 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/photo_add.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/photo_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/photo_tooltip2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/photo_tooltip2.png new file mode 100644 index 000000000..e74a53ef1 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/photo_tooltip2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/selectphoto_large.png b/TMessagesProj/src/main/res/drawable-xxhdpi/selectphoto_large.png old mode 100755 new mode 100644 index a90480717..0709ff493 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/selectphoto_large.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/selectphoto_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/stickers_gifs_trending.png b/TMessagesProj/src/main/res/drawable-xxhdpi/stickers_gifs_trending.png new file mode 100644 index 000000000..1c6f1c65e Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/stickers_gifs_trending.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/toast_folder.png b/TMessagesProj/src/main/res/drawable-xxhdpi/toast_folder.png new file mode 100644 index 000000000..f086f2714 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/toast_folder.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/toast_folder_minus.png b/TMessagesProj/src/main/res/drawable-xxhdpi/toast_folder_minus.png new file mode 100644 index 000000000..0e607f8d7 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/toast_folder_minus.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/video_cropleft.png b/TMessagesProj/src/main/res/drawable-xxhdpi/video_cropleft.png index 6fc50b0f5..9ea720c65 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/video_cropleft.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/video_cropleft.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/video_cropright.png b/TMessagesProj/src/main/res/drawable-xxhdpi/video_cropright.png index 49f02ea85..5150b0f14 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/video_cropright.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/video_cropright.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/video_pause1.png b/TMessagesProj/src/main/res/drawable-xxhdpi/video_pause1.png new file mode 100644 index 000000000..36dd02edf Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/video_pause1.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/video_play1.png b/TMessagesProj/src/main/res/drawable-xxhdpi/video_play1.png new file mode 100644 index 000000000..4e226fe7f Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/video_play1.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/video_send_mute.png b/TMessagesProj/src/main/res/drawable-xxhdpi/video_send_mute.png new file mode 100644 index 000000000..7b84a3cbf Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/video_send_mute.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/video_send_unmute.png b/TMessagesProj/src/main/res/drawable-xxhdpi/video_send_unmute.png new file mode 100644 index 000000000..000c1f930 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/video_send_unmute.png differ diff --git a/TMessagesProj/src/main/res/raw/tsv_monkey_close.tgs b/TMessagesProj/src/main/res/raw/tsv_monkey_close.tgs new file mode 100644 index 000000000..2c50181da --- /dev/null +++ b/TMessagesProj/src/main/res/raw/tsv_monkey_close.tgs @@ -0,0 +1 @@ +{"tgs":1,"v":"5.5.2","fr":60,"ip":0,"op":98,"w":512,"h":512,"nm":"password_close","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[-15.209]},{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":15,"s":[-18.946]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":40,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":60,"s":[0]},{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":75,"s":[-18.946]},{"i":{"x":[0.599],"y":[1]},"o":{"x":[0.259],"y":[0]},"t":90,"s":[-15.209]},{"t":98,"s":[-15.209]}]},"p":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.325,"y":0},"t":0,"s":[127.498,805.39,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":0.34},"o":{"x":0.167,"y":0.167},"t":30,"s":[127.498,436.89,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[127.498,436.89,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[127.498,436.89,0],"to":[0,0,0],"ti":[0,0,0]},{"t":98,"s":[127.498,805.39,0]}]},"a":{"a":0,"k":[150.003,211.463,0]},"s":{"a":0,"k":[-95,95,100]}},"ao":0,"ef":[{"ty":5,"nm":"arm R: Path 1 [1.1.1.0]","np":3,"mn":"ADBE Layer Control","ix":1,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.1.1.1]","np":3,"mn":"ADBE Layer Control","ix":2,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.1.1.2]","np":3,"mn":"ADBE Layer Control","ix":3,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.2.1.0]","np":3,"mn":"ADBE Layer Control","ix":4,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.2.1.1]","np":3,"mn":"ADBE Layer Control","ix":5,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.2.1.2]","np":3,"mn":"ADBE Layer Control","ix":6,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.0]","np":3,"mn":"ADBE Layer Control","ix":7,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.1]","np":3,"mn":"ADBE Layer Control","ix":8,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.2]","np":3,"mn":"ADBE Layer Control","ix":9,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.3]","np":3,"mn":"ADBE Layer Control","ix":10,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.4]","np":3,"mn":"ADBE Layer Control","ix":11,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.5]","np":3,"mn":"ADBE Layer Control","ix":12,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.6]","np":3,"mn":"ADBE Layer Control","ix":13,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.0]","np":3,"mn":"ADBE Layer Control","ix":14,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.1]","np":3,"mn":"ADBE Layer Control","ix":15,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.2]","np":3,"mn":"ADBE Layer Control","ix":16,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.3]","np":3,"mn":"ADBE Layer Control","ix":17,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.4]","np":3,"mn":"ADBE Layer Control","ix":18,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.5]","np":3,"mn":"ADBE Layer Control","ix":19,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.6]","np":3,"mn":"ADBE Layer Control","ix":20,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.7]","np":3,"mn":"ADBE Layer Control","ix":21,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.8]","np":3,"mn":"ADBE Layer Control","ix":22,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.9]","np":3,"mn":"ADBE Layer Control","ix":23,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.10]","np":3,"mn":"ADBE Layer Control","ix":24,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.11]","np":3,"mn":"ADBE Layer Control","ix":25,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.12]","np":3,"mn":"ADBE Layer Control","ix":26,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.13]","np":3,"mn":"ADBE Layer Control","ix":27,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.14]","np":3,"mn":"ADBE Layer Control","ix":28,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.15]","np":3,"mn":"ADBE Layer Control","ix":29,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.16]","np":3,"mn":"ADBE Layer Control","ix":30,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]}],"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.365,183.856]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.313,183.938]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.188,184.375]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.188,185.188]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.313,186.375]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.625,188]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105.063,190.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105.688,192.438]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[106.438,194.938]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[107.25,197.563]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[108.063,200]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[108.875,202.188]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[109.563,204]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[110.25,205.438]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[110.813,206.438]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[111.313,207.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[111.75,207.375]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[112.125,207.375]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[112.438,207.188]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[112.688,206.813]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.25,46.563],[98.625,84.625],[112.875,206.438]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[91.438,47],[98.625,84.625],[113.063,205.938]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[90.063,47.688],[98.625,84.625],[113.25,205.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[88,48.75],[98.625,84.625],[113.375,205]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":29,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[85.625,49.938],[98.625,84.625],[113.5,204.563]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[83.188,51.188],[98.625,84.625],[113.625,204.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[81,52.313],[98.625,84.625],[113.688,203.625]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[79.188,53.25],[98.625,84.625],[113.75,203.25]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":33,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[77.625,54],[98.625,84.625],[113.813,202.938]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":34,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[76.438,54.625],[98.625,84.625],[113.875,202.688]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":35,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[75.5,55.125],[98.625,84.625],[113.938,202.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":36,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[74.813,55.438],[98.625,84.625],[114,202.313]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[74.313,55.688],[98.625,84.625],[114,202.188]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[74,55.875],[98.625,84.625],[114.063,202.125]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":39,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.813,56],[98.625,84.625],[114.063,202.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[114.063,202.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":60,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[114.063,202.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":61,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.875,55.938],[98.625,84.625],[114,202.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":62,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[74.25,55.75],[98.625,84.625],[113.875,201.938]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":63,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[74.875,55.438],[98.625,84.625],[113.688,201.625]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":64,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[75.688,55],[98.625,84.625],[113.375,201.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":65,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[76.688,54.5],[98.625,84.625],[112.938,200.25]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":66,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[77.813,53.938],[98.625,84.625],[112.375,199.125]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":67,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[79,53.313],[98.625,84.625],[111.625,197.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":68,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[80.375,52.625],[98.625,84.625],[110.688,196.563]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":69,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[81.75,51.938],[98.625,84.625],[109.688,195.313]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":70,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[83.125,51.25],[98.625,84.625],[108.688,194.25]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":71,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[84.5,50.5],[98.625,84.625],[107.625,193.375]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":72,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[85.875,49.813],[98.625,84.625],[106.625,192.563]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":73,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[87.188,49.125],[98.625,84.625],[105.813,191.75]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":74,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[88.438,48.5],[98.625,84.625],[105.125,190.938]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":75,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[89.563,47.938],[98.625,84.625],[104.625,189.938]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":76,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[90.563,47.438],[98.625,84.625],[104.313,188.938]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":77,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[91.375,47.063],[98.625,84.625],[104.125,188]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":78,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[91.938,46.75],[98.625,84.625],[104,187.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":79,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.375,46.563],[98.625,84.625],[104.063,186.125]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":80,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.125,185.313]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.25,184.625]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":82,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.438,184.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":83,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.563,183.625]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":84,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.688,183.375]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":85,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.75,183.188]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":86,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.875,183.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":87,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.938,183]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.938,182.938]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":89,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":91,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":92,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":93,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":95,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":96,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":97,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"t":98,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.649,162.548],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.563,162.5],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.25,162.5],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.125,162.813],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.125,163.563],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.25,164.75],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.563,166.438],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.063,168.438],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.75,170.75],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[178.5,173.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[179.313,175.5],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[180.125,177.813],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[181,180.063],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[181.875,182.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[182.75,184.188],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[183.688,186.188],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[184.563,188.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[185.375,190.063],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[186.125,191.875],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[186.813,193.563],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[187.313,195.125],[156.688,64.313],[157.688,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[187.75,196.438],[156.688,64.313],[157.875,37.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[188.125,197.563],[156.688,64.313],[158.25,37.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[188.375,198.563],[156.688,64.313],[158.75,37.125]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":29,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[188.625,199.313],[156.688,64.313],[159.313,37.188]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[188.813,199.875],[156.688,64.313],[159.875,37.25]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[188.938,200.375],[156.688,64.313],[160.438,37.313]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189.063,200.75],[156.688,64.313],[160.875,37.375]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":33,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189.125,201.125],[156.688,64.313],[161.25,37.375]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":34,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189.188,201.375],[156.688,64.313],[161.563,37.438]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":35,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189.25,201.625],[156.688,64.313],[161.75,37.438]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":36,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189.313,201.75],[156.688,64.313],[161.938,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189.313,201.938],[156.688,64.313],[162.063,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189.375,202],[156.688,64.313],[162.125,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":39,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189.375,202.063],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189.375,202.063],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":60,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189.375,202.063],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":61,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189.313,201.75],[156.688,64.313],[162.125,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":62,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189.188,200.75],[156.688,64.313],[162.063,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":63,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189,199.063],[156.688,64.313],[161.938,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":64,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[188.563,196.688],[156.688,64.313],[161.688,37.438]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":65,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[188,193.75],[156.688,64.313],[161.5,37.438]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":66,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[187.188,190.375],[156.688,64.313],[161.188,37.375]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":67,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[186.125,186.688],[156.688,64.313],[160.938,37.375]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":68,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[184.813,182.938],[156.688,64.313],[160.563,37.313]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":69,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[183.313,179.313],[156.688,64.313],[160.25,37.313]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":70,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[181.75,176],[156.688,64.313],[159.938,37.25]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":71,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[180.125,173.063],[156.688,64.313],[159.563,37.25]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":72,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[178.688,170.563],[156.688,64.313],[159.25,37.188]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":73,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.438,168.438],[156.688,64.313],[158.938,37.125]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":74,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.438,166.75],[156.688,64.313],[158.625,37.125]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":75,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[175.875,165.5],[156.688,64.313],[158.375,37.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":76,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[175.563,164.563],[156.688,64.313],[158.125,37.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":77,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[175.438,163.813],[156.688,64.313],[157.938,37.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":78,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[175.5,163.313],[156.688,64.313],[157.75,37.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":79,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[175.688,162.938],[156.688,64.313],[157.688,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":80,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176,162.75],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.313,162.688],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":82,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.625,162.688],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":83,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.875,162.688],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":84,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.125,162.813],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":85,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.313,162.938],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":86,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.438,163],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":87,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.563,163.063],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.625,163.063],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":89,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.625,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":91,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":92,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":93,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":95,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":96,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":97,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"t":98,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.168,187.077],[133.298,186.221],[178.144,164.173],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.125,187.125],[133.25,186.25],[178.063,164.125],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.063,187.5],[133.188,186.563],[177.813,164.125],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.063,188.188],[133.188,187.188],[177.688,164.438],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.188,189.313],[133.313,188.188],[177.688,165.188],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.5,190.813],[133.563,189.625],[177.813,166.375],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.938,192.75],[134.063,191.5],[178.188,168],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[122.625,195.063],[134.688,193.75],[178.688,170],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[123.375,197.5],[135.438,196.188],[179.313,172.313],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[124.188,200.063],[136.25,198.688],[180.063,174.688],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[125,202.5],[137.063,201.125],[180.875,177.125],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[125.75,204.688],[137.875,203.375],[181.688,179.375],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[126.5,206.625],[138.563,205.313],[182.563,181.625],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[127.125,208.188],[139.25,207.063],[183.438,183.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[127.688,209.5],[139.813,208.5],[184.313,185.813],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[128.125,210.438],[140.375,209.625],[185.188,187.813],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[128.563,211.125],[141.313,210.438],[186.063,189.813],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[128.875,211.563],[142.5,210.938],[186.813,191.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[129.25,211.875],[144.125,211.25],[187.563,193.625],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[129.563,212.063],[146.063,211.438],[188.125,195.375],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[129.938,212.125],[148.313,211.563],[188.625,196.938],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[130.188,212.188],[150.625,211.625],[189,198.313],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[130.5,212.188],[152.875,211.688],[189.313,199.438],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[130.75,212.125],[154.938,211.75],[189.563,200.438],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":29,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[130.938,212],[156.75,211.813],[189.75,201.25],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.125,211.813],[158.313,211.813],[189.875,201.813],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.25,211.625],[159.625,211.875],[190,202.313],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.375,211.5],[160.688,211.875],[190.125,202.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":33,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.438,211.375],[161.625,211.938],[190.188,203.063],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":34,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.563,211.313],[162.375,212],[190.25,203.375],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":35,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.625,211.188],[162.938,212.063],[190.313,203.563],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":36,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.688,211.188],[163.375,212.125],[190.313,203.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.688,211.125],[163.75,212.125],[190.375,203.875],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.75,211.063],[163.938,212.188],[190.375,204],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":39,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.75,211.063],[164.063,212.188],[190.375,204.063],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.75,211.063],[164.125,212.188],[190.375,204.063],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":60,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.75,211.063],[164.125,212.188],[190.375,204.063],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":61,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.75,210.938],[163.875,211.938],[190.313,203.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":62,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.625,210.563],[163,211.313],[190.25,202.688],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":63,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.375,209.875],[161.438,210.188],[190.063,201],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":64,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.063,208.813],[159.125,208.625],[189.688,198.625],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":65,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[130.5,207.375],[156.188,206.813],[189.188,195.688],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":66,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[129.813,205.625],[153,204.75],[188.375,192.25],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":67,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[128.938,203.688],[149.813,202.563],[187.375,188.5],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":68,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[128,201.75],[146.75,200.5],[186.125,184.688],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":69,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[126.875,199.938],[143.938,198.563],[184.688,181.063],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":70,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[125.813,198.313],[141.438,196.813],[183.188,177.688],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":71,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[124.688,196.875],[139.25,195.375],[181.625,174.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":72,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[123.688,195.688],[137.375,194.063],[180.188,172.188],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":73,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[122.813,194.563],[135.875,193],[179,170.063],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":74,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[122.063,193.5],[134.688,192],[178,168.313],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":75,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.563,192.5],[133.875,191],[177.438,167.063],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":76,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.25,191.438],[133.375,190.063],[177.125,166.125],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":77,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121,190.563],[133.125,189.25],[177,165.375],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":78,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[120.938,189.75],[133,188.5],[177.063,164.875],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":79,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[120.938,189],[133,187.813],[177.25,164.563],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":80,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121,188.313],[133.125,187.25],[177.563,164.375],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.063,187.688],[133.188,186.75],[177.875,164.313],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":82,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.188,187.25],[133.313,186.438],[178.188,164.313],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":83,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.313,187],[133.438,186.188],[178.438,164.375],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":84,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.438,186.813],[133.563,186.063],[178.625,164.438],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":85,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.5,186.688],[133.688,186],[178.813,164.563],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":86,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.625,186.625],[133.75,186],[178.938,164.625],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":87,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.625,186.563],[133.813,185.938],[179.063,164.688],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.813,185.938],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":89,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.938],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":91,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":92,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":93,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":95,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":96,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":97,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"t":98,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.737254917622,0.572549045086,0.349019616842,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178.144,164.173],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.231,186.731],[116.231,187.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178.063,164.125],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.188,186.813],[116.188,187.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.813,164.125],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.063,187.25],[116.125,187.625]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.688,164.438],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.063,188.063],[116.125,188.375]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.688,165.188],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.25,189.25],[116.25,189.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.813,166.375],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.563,190.875],[116.563,191.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178.188,168],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[106,192.875],[117.063,193]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178.688,170],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[106.625,195.25],[117.688,195.313]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.313,172.313],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[107.375,197.813],[118.438,197.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[180.063,174.688],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[108.188,200.375],[119.25,200.375]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[180.875,177.125],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[109.063,202.813],[120.063,202.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[181.688,179.375],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[109.813,205],[120.875,205]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[182.563,181.625],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[110.563,206.813],[121.563,206.875]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[183.438,183.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[111.188,208.25],[122.188,208.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[184.313,185.813],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[111.688,209.313],[122.75,209.625]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[185.188,187.813],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[112.188,209.938],[123.375,210.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[186.063,189.813],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[112.5,210.25],[124.25,211]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[186.813,191.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[112.813,210.313],[125.563,211.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[187.563,193.625],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[113,210.125],[127.25,211.375]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[188.125,195.375],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[113.188,209.813],[129.313,211.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[188.625,196.938],[156.688,64.313],[154.375,35.563],[156.063,41.75],[157.375,34.938],[153.625,31.25],[149.813,36.688],[147.625,26.938],[143.25,27.75],[138,45],[129,29.563],[125.563,31.875],[107.813,54.063],[93.5,42.375],[98.625,84.625],[113.313,209.375],[131.625,211.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[189,198.313],[156.688,64.313],[154.625,35.563],[155.813,41.875],[156.938,34.813],[153.125,31.25],[149.125,36.813],[146.563,26.875],[142.188,27.688],[136.938,44.938],[127.625,29.875],[124.188,32.188],[107.188,54.313],[92.625,42.75],[98.625,84.625],[113.438,208.938],[134.063,211.625]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[189.313,199.438],[156.688,64.313],[155.063,35.5],[155.375,42.125],[156.125,34.625],[152.25,31.25],[147.938,37.063],[144.688,26.813],[140.313,27.625],[135.063,44.875],[125.063,30.438],[121.625,32.75],[106,54.688],[91.063,43.438],[98.625,84.625],[113.563,208.5],[136.438,211.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[189.563,200.438],[156.688,64.313],[155.625,35.375],[154.75,42.375],[154.938,34.313],[151.063,31.188],[146.25,37.438],[142.063,26.688],[137.688,27.5],[132.438,44.75],[121.5,31.313],[118.063,33.625],[104.375,55.25],[88.875,44.375],[98.625,84.625],[113.625,208],[138.563,211.938]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":29,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[189.75,201.25],[156.688,64.313],[156.313,35.25],[154.063,42.75],[153.5,33.938],[149.563,31.188],[144.25,37.813],[138.875,26.563],[134.5,27.375],[129.25,44.625],[117.25,32.25],[113.813,34.563],[102.438,55.875],[86.25,45.5],[98.625,84.625],[113.688,207.563],[140.438,212.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[189.875,201.813],[156.688,64.313],[157.063,35.188],[153.313,43.125],[152.125,33.563],[148.063,31.188],[142.188,38.25],[135.688,26.5],[131.313,27.313],[126.063,44.563],[112.938,33.25],[109.5,35.563],[100.438,56.563],[83.625,46.688],[98.625,84.625],[113.75,207.063],[142,212.125]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190,202.313],[156.688,64.313],[157.688,35.063],[152.625,43.438],[150.813,33.25],[146.75,31.188],[140.375,38.625],[132.813,26.375],[128.438,27.188],[123.188,44.438],[109.063,34.125],[105.625,36.438],[98.688,57.125],[81.188,47.688],[98.625,84.625],[113.813,206.625],[143.375,212.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.125,202.75],[156.688,64.313],[158.25,35],[152.063,43.75],[149.75,32.938],[145.625,31.188],[138.813,39],[130.375,26.25],[126,27.063],[120.75,44.313],[105.813,34.938],[102.375,37.25],[97.188,57.625],[79.188,48.563],[98.625,84.625],[113.875,206.25],[144.5,212.313]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":33,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.188,203.063],[156.688,64.313],[158.688,34.938],[151.625,44],[148.875,32.75],[144.688,31.125],[137.5,39.25],[128.375,26.188],[124,27],[118.75,44.25],[103.125,35.5],[99.688,37.813],[95.938,58.063],[77.5,49.313],[98.625,84.625],[113.938,205.938],[145.438,212.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":34,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.25,203.375],[156.688,64.313],[159,34.875],[151.25,44.125],[148.125,32.563],[143.938,31.125],[136.5,39.438],[126.813,26.125],[122.438,26.938],[117.188,44.188],[101,36],[97.563,38.313],[94.938,58.375],[76.188,49.875],[98.625,84.625],[113.938,205.688],[146.188,212.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":35,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.313,203.563],[156.688,64.313],[159.313,34.813],[151,44.313],[147.625,32.375],[143.375,31.125],[135.75,39.625],[125.563,26.063],[121.188,26.875],[115.938,44.125],[99.313,36.375],[95.875,38.688],[94.188,58.625],[75.188,50.313],[98.625,84.625],[114,205.5],[146.813,212.563]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":36,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.313,203.75],[156.688,64.313],[159.5,34.813],[150.75,44.375],[147.188,32.313],[143,31.125],[135.125,39.75],[124.688,26.063],[120.313,26.875],[115.063,44.125],[98.125,36.688],[94.688,39],[93.625,58.813],[74.438,50.625],[98.625,84.625],[114,205.313],[147.25,212.625]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.375,203.875],[156.688,64.313],[159.625,34.75],[150.625,44.5],[146.875,32.188],[142.688,31.125],[134.75,39.813],[124,26],[119.625,26.813],[114.375,44.063],[97.188,36.875],[93.75,39.188],[93.25,58.938],[73.875,50.875],[98.625,84.625],[114.063,205.188],[147.625,212.688]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.375,204],[156.688,64.313],[159.75,34.75],[150.5,44.5],[146.688,32.188],[142.438,31.125],[134.438,39.875],[123.563,26],[119.188,26.813],[113.938,44.063],[96.625,37],[93.188,39.313],[92.938,59.063],[73.5,51],[98.625,84.625],[114.063,205.125],[147.813,212.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":39,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.375,204.063],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.625,32.125],[142.375,31.125],[134.313,39.938],[123.313,26],[118.938,26.813],[113.688,44.063],[96.313,37.125],[92.875,39.438],[92.813,59.125],[73.313,51.125],[98.625,84.625],[114.063,205.063],[147.938,212.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.375,204.063],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[114.063,205.063],[148,212.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":60,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.375,204.063],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[114.063,205.063],[148,212.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":61,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.313,203.75],[156.688,64.313],[159.75,34.75],[150.5,44.563],[146.625,32.125],[142.375,31.125],[134.375,39.938],[123.438,26],[119.063,26.813],[113.813,44.063],[96.438,37.063],[93,39.375],[92.875,59.063],[73.375,51.063],[98.625,84.625],[114.063,205.063],[147.75,212.563]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":62,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.25,202.688],[156.688,64.313],[159.688,34.75],[150.625,44.5],[146.875,32.188],[142.625,31.125],[134.688,39.875],[123.938,26],[119.563,26.813],[114.313,44.063],[97.125,36.938],[93.688,39.25],[93.188,59],[73.813,50.875],[98.625,84.625],[113.938,204.938],[146.875,211.875]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":63,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.063,201],[156.688,64.313],[159.5,34.813],[150.813,44.375],[147.25,32.313],[143,31.125],[135.188,39.75],[124.75,26.063],[120.375,26.875],[115.125,44.125],[98.188,36.688],[94.75,39],[93.688,58.813],[74.5,50.563],[98.625,84.625],[113.813,204.625],[145.25,210.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":64,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[189.688,198.625],[156.688,64.313],[159.25,34.813],[151,44.25],[147.688,32.438],[143.5,31.125],[135.875,39.563],[125.813,26.125],[121.438,26.938],[116.188,44.188],[99.625,36.313],[96.188,38.625],[94.313,58.625],[75.375,50.188],[98.625,84.625],[113.563,204.063],[142.938,209.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":65,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[189.188,195.688],[156.688,64.313],[158.938,34.875],[151.313,44.125],[148.25,32.563],[144.125,31.125],[136.688,39.438],[127.125,26.125],[122.75,26.938],[117.5,44.188],[101.375,35.938],[97.938,38.25],[95.125,58.313],[76.438,49.75],[98.625,84.625],[113.25,203.188],[139.938,207.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":66,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[188.375,192.25],[156.688,64.313],[158.625,34.938],[151.688,43.938],[148.938,32.75],[144.813,31.125],[137.625,39.25],[128.563,26.188],[124.188,27],[118.938,44.25],[103.375,35.438],[99.938,37.75],[96.063,58],[77.688,49.188],[98.625,84.625],[112.75,202.063],[136.625,205.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":67,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[187.375,188.5],[156.688,64.313],[158.25,35],[152.063,43.75],[149.625,32.938],[145.563,31.188],[138.688,39],[130.188,26.25],[125.813,27.063],[120.563,44.313],[105.563,34.938],[102.125,37.25],[97.063,57.688],[79,48.625],[98.625,84.625],[112.063,200.813],[133.25,203.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":68,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[186.125,184.688],[156.688,64.313],[157.875,35.063],[152.438,43.563],[150.438,33.125],[146.313,31.188],[139.813,38.75],[131.938,26.313],[127.563,27.125],[122.313,44.375],[107.875,34.438],[104.438,36.75],[98.125,57.313],[80.438,48],[98.625,84.625],[111.25,199.5],[130.125,201.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":69,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[184.688,181.063],[156.688,64.313],[157.5,35.125],[152.875,43.375],[151.25,33.313],[147.188,31.188],[140.938,38.5],[133.75,26.375],[129.375,27.188],[124.125,44.438],[110.313,33.875],[106.875,36.188],[99.25,56.938],[81.938,47.375],[98.625,84.625],[110.375,198.25],[127.25,199.313]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":70,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[183.188,177.688],[156.688,64.313],[157.063,35.188],[153.25,43.125],[152.063,33.563],[148.063,31.188],[142.125,38.25],[135.563,26.438],[131.188,27.25],[125.938,44.5],[112.813,33.313],[109.375,35.625],[100.375,56.563],[83.5,46.688],[98.625,84.625],[109.375,197.188],[124.688,197.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":71,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[181.625,174.75],[156.688,64.313],[156.625,35.25],[153.688,42.938],[152.875,33.75],[148.875,31.188],[143.313,38],[137.438,26.563],[133.063,27.375],[127.813,44.625],[115.313,32.688],[111.875,35],[101.5,56.188],[85.063,46.063],[98.625,84.625],[108.438,196.25],[122.438,196.563]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":72,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[180.188,172.188],[156.688,64.313],[156.25,35.313],[154.125,42.75],[153.688,34],[149.75,31.188],[144.438,37.813],[139.25,26.625],[134.875,27.438],[129.625,44.688],[117.75,32.125],[114.313,34.438],[102.625,55.813],[86.563,45.375],[98.625,84.625],[107.5,195.375],[120.5,195.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":73,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179,170.063],[156.688,64.313],[155.875,35.375],[154.5,42.5],[154.438,34.188],[150.563,31.188],[145.563,37.563],[140.938,26.688],[136.563,27.5],[131.313,44.75],[120.063,31.625],[116.625,33.938],[103.688,55.438],[88,44.75],[98.625,84.625],[106.75,194.625],[118.938,194.563]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":74,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178,168.313],[156.688,64.313],[155.5,35.375],[154.875,42.313],[155.188,34.375],[151.313,31.188],[146.563,37.313],[142.563,26.75],[138.188,27.563],[132.938,44.813],[122.25,31.125],[118.813,33.438],[104.688,55.125],[89.313,44.188],[98.625,84.625],[106.063,193.75],[117.75,193.688]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":75,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.438,167.063],[156.688,64.313],[155.188,35.438],[155.25,42.188],[155.813,34.563],[152,31.25],[147.5,37.125],[144.063,26.813],[139.688,27.625],[134.438,44.875],[124.25,30.625],[120.813,32.938],[105.625,54.813],[90.563,43.688],[98.625,84.625],[105.625,192.813],[116.875,192.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":76,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.125,166.125],[156.688,64.313],[154.875,35.5],[155.5,42],[156.375,34.688],[152.563,31.25],[148.375,36.938],[145.375,26.813],[141,27.625],[135.75,44.875],[125.938,30.25],[122.5,32.563],[106.438,54.563],[91.625,43.188],[98.625,84.625],[105.25,191.75],[116.375,191.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":77,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177,165.375],[156.688,64.313],[154.625,35.5],[155.75,41.875],[156.875,34.813],[153.063,31.25],[149,36.813],[146.438,26.875],[142.063,27.688],[136.813,44.938],[127.375,29.938],[123.938,32.25],[107.063,54.313],[92.5,42.813],[98.625,84.625],[105.063,190.813],[116.063,190.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":78,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.063,164.875],[156.688,64.313],[154.5,35.563],[155.938,41.813],[157.25,34.938],[153.438,31.25],[149.563,36.688],[147.25,26.875],[142.875,27.688],[137.625,44.938],[128.5,29.688],[125.063,32],[107.563,54.188],[93.188,42.5],[98.625,84.625],[104.938,189.875],[116,190]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":79,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.25,164.563],[156.688,64.313],[154.375,35.563],[156.063,41.75],[157.438,35],[153.688,31.25],[149.875,36.625],[147.75,26.938],[143.375,27.75],[138.125,45],[129.188,29.5],[125.75,31.813],[107.875,54.063],[93.625,42.313],[98.625,84.625],[104.938,189],[116,189.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":80,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.563,164.375],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.063,188.188],[116.063,188.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.875,164.313],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.125,187.5],[116.188,187.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":82,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178.188,164.313],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.25,186.938],[116.25,187.375]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":83,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178.438,164.375],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.375,186.5],[116.375,187.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":84,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178.625,164.438],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.5,186.25],[116.5,186.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":85,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178.813,164.563],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.563,186.063],[116.625,186.688]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":86,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178.938,164.625],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.688,185.938],[116.688,186.625]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":87,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.063,164.688],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.688,185.875],[116.75,186.563]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.813],[116.75,186.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":89,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":91,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":92,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":93,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":95,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":96,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":97,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"t":98,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[-16.69,-65.288]],"o":[[0,0],[0,0]],"v":[[73.894,-101.727],[107.348,-44.337]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6,"s":[{"i":[[0,0],[-16.69,-65.288]],"o":[[0,0],[0,0]],"v":[[73.894,-101.727],[107.348,-44.337]],"c":false}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":24,"s":[{"i":[[0,0],[-9.623,-65.983]],"o":[[0,0],[0,0]],"v":[[86.517,-104.667],[113.459,-44.71]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[0,0],[-12.183,-34.643]],"o":[[0,0],[0,0]],"v":[[41.387,-96.927],[74.702,-38.38]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":60,"s":[{"i":[[0,0],[-12.183,-34.643]],"o":[[0,0],[0,0]],"v":[[41.387,-96.927],[74.702,-38.38]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":80,"s":[{"i":[[0,0],[-9.623,-65.983]],"o":[[0,0],[0,0]],"v":[[86.517,-104.667],[113.459,-44.71]],"c":false}]},{"t":98,"s":[{"i":[[0,0],[-16.69,-65.288]],"o":[[0,0],[0,0]],"v":[[73.894,-101.727],[107.348,-44.337]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.580392181873,0.376470595598,0.215686276555,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[-2.646,-17.122]],"o":[[0,0],[0,0]],"v":[[138.271,-76.891],[151.566,-37.773]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6,"s":[{"i":[[0,0],[-2.646,-17.122]],"o":[[0,0],[0,0]],"v":[[138.271,-76.891],[151.566,-37.773]],"c":false}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":24,"s":[{"i":[[0,0],[-0.82,-17.124]],"o":[[0,0],[0,0]],"v":[[147.278,-73.523],[156.287,-33.644]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[0,0],[-3.811,-17.322]],"o":[[0,0],[0,0]],"v":[[133.538,-74.755],[147.742,-34.569]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":60,"s":[{"i":[[0,0],[-3.811,-17.322]],"o":[[0,0],[0,0]],"v":[[133.538,-74.755],[147.742,-34.569]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":80,"s":[{"i":[[0,0],[-0.82,-17.124]],"o":[[0,0],[0,0]],"v":[[147.278,-73.523],[156.287,-33.644]],"c":false}]},{"t":98,"s":[{"i":[[0,0],[-2.646,-17.122]],"o":[[0,0],[0,0]],"v":[[138.271,-76.891],[151.566,-37.773]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.580392181873,0.376470595598,0.215686276555,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[-6.464,-30.14]],"o":[[0,0],[0,0]],"v":[[102.888,-115.812],[129.737,-55.865]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6,"s":[{"i":[[0,0],[-6.464,-30.14]],"o":[[0,0],[0,0]],"v":[[102.888,-115.812],[129.737,-55.865]],"c":false}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":24,"s":[{"i":[[0,0],[-3.221,-30.331]],"o":[[0,0],[0,0]],"v":[[116.515,-115.508],[136.69,-53.721]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[0,0],[-9.007,-30.14]],"o":[[0,0],[0,0]],"v":[[76.723,-110.438],[108.941,-50.159]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":60,"s":[{"i":[[0,0],[-9.007,-30.14]],"o":[[0,0],[0,0]],"v":[[76.723,-110.438],[108.941,-50.159]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":80,"s":[{"i":[[0,0],[-3.221,-30.331]],"o":[[0,0],[0,0]],"v":[[116.515,-115.508],[136.69,-53.721]],"c":false}]},{"t":98,"s":[{"i":[[0,0],[-6.464,-30.14]],"o":[[0,0],[0,0]],"v":[[102.888,-115.812],[129.737,-55.865]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.580392181873,0.376470595598,0.215686276555,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[1.676,27.483],[3.695,28.652],[3.658,5.082],[12.679,8.661],[-4.848,-6.104],[8.701,-0.373],[-1.243,-12.125],[3.171,-10.075],[-4.13,-20.458],[-5.598,-30.564]],"o":[[0,0],[-1.916,-14.839],[0,0],[-9.537,-6.514],[0,0],[-8.701,0.373],[0,0],[-3.982,12.672],[4.971,24.626],[5.598,30.564]],"v":[[158.002,30.408],[156.721,-15.376],[138.158,-76.84],[110.861,-121.787],[102.888,-115.812],[85.917,-125.277],[73.12,-101.612],[62.796,-91.3],[80.13,-14.627],[91.476,44.341]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6,"s":[{"i":[[1.676,27.483],[3.695,28.652],[3.658,5.082],[12.679,8.661],[-4.848,-6.104],[8.701,-0.373],[-1.243,-12.125],[3.171,-10.075],[-4.13,-20.458],[-5.598,-30.564]],"o":[[0,0],[-1.916,-14.839],[0,0],[-9.537,-6.514],[0,0],[-8.701,0.373],[0,0],[-3.982,12.672],[4.971,24.626],[5.598,30.564]],"v":[[158.002,30.408],[156.721,-15.376],[138.158,-76.84],[110.861,-121.787],[102.888,-115.812],[85.917,-125.277],[73.12,-101.612],[62.796,-91.3],[80.13,-14.627],[91.476,44.341]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":24,"s":[{"i":[[1.676,27.483],[2.293,28.734],[3.07,5.382],[11.575,9.843],[-4.135,-6.511],[8.601,0.539],[0.04,-12.061],[4.168,-9.585],[-1.933,-20.561],[-5.598,-30.564]],"o":[[0,0],[-1.189,-14.881],[0,0],[-8.706,-7.403],[0,0],[-8.601,-0.539],[0,0],[-5.238,12.055],[2.327,24.75],[5.598,30.564]],"v":[[158.002,30.408],[159.55,-13.781],[147.162,-73.484],[124.983,-120.557],[116.515,-115.508],[100.8,-126.589],[85.743,-104.635],[74.51,-95.563],[83.581,-18.309],[91.476,44.341]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[20.093,-1.386],[17.668,8.661],[0.693,-7.275],[12.125,-0.373],[-1.732,-12.125],[5.123,-13.539],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-13.289,-6.514],[0,0],[-12.125,0.373],[0,0],[-4.85,12.818],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[133.538,-74.755],[98.895,-119.792],[76.723,-110.438],[56.63,-121.551],[41.387,-96.927],[24.412,-87.574],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":60,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[20.093,-1.386],[17.668,8.661],[0.693,-7.275],[12.125,-0.373],[-1.732,-12.125],[5.123,-13.539],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-13.289,-6.514],[0,0],[-12.125,0.373],[0,0],[-4.85,12.818],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[133.538,-74.755],[98.895,-119.792],[76.723,-110.438],[56.63,-121.551],[41.387,-96.927],[24.412,-87.574],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":80,"s":[{"i":[[1.676,27.483],[2.293,28.734],[3.07,5.382],[11.575,9.843],[-4.135,-6.511],[8.601,0.539],[0.04,-12.061],[4.168,-9.585],[-1.933,-20.561],[-5.598,-30.564]],"o":[[0,0],[-1.189,-14.881],[0,0],[-8.706,-7.403],[0,0],[-8.601,-0.539],[0,0],[-5.238,12.055],[2.327,24.75],[5.598,30.564]],"v":[[158.002,30.408],[159.55,-13.781],[147.162,-73.484],[124.983,-120.557],[116.515,-115.508],[100.8,-126.589],[85.743,-104.635],[74.51,-95.563],[83.581,-18.309],[91.476,44.341]],"c":true}]},{"t":98,"s":[{"i":[[1.676,27.483],[3.695,28.652],[3.658,5.082],[12.679,8.661],[-4.848,-6.104],[8.701,-0.373],[-1.243,-12.125],[3.171,-10.075],[-4.13,-20.458],[-5.598,-30.564]],"o":[[0,0],[-1.916,-14.839],[0,0],[-9.537,-6.514],[0,0],[-8.701,0.373],[0,0],[-3.982,12.672],[4.971,24.626],[5.598,30.564]],"v":[[158.002,30.408],[156.721,-15.376],[138.158,-76.84],[110.861,-121.787],[102.888,-115.812],[85.917,-125.277],[73.12,-101.612],[62.796,-91.3],[80.13,-14.627],[91.476,44.341]],"c":true}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.580392181873,0.376470595598,0.215686276555,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[18.227,70.013],[-0.955,-4.807],[-5.174,-30.8],[1.97,27.525],[2.796,28.747],[0.833,4.577],[42.671,-3.275]],"o":[[1.422,5.679],[4.897,24.645],[5.172,30.786],[0,0],[-0.438,-4.506],[0,0],[-33.501,2.571]],"v":[[72.743,-42.351],[80.985,-14.74],[91.955,44.096],[157.821,30.381],[156.339,-15.374],[154.428,-29.076],[126.056,33.44]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6,"s":[{"i":[[18.227,70.013],[-0.955,-4.807],[-5.174,-30.8],[1.97,27.525],[2.796,28.747],[0.833,4.577],[42.671,-3.275]],"o":[[1.422,5.679],[4.897,24.645],[5.172,30.786],[0,0],[-0.438,-4.506],[0,0],[-33.501,2.571]],"v":[[72.743,-42.351],[80.985,-14.74],[91.955,44.096],[157.821,30.381],[156.339,-15.374],[154.428,-29.076],[126.056,33.44]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":24,"s":[{"i":[[10.643,70.793],[-0.439,-4.83],[-5.174,-30.8],[1.97,27.525],[1.391,28.785],[0.608,4.602],[42.671,-3.275]],"o":[[0.808,5.736],[2.251,24.762],[5.172,30.786],[0,0],[-0.218,-4.512],[0,0],[-33.501,2.571]],"v":[[79.2,-46.36],[84.434,-18.331],[91.955,44.096],[157.821,30.381],[159.169,-13.797],[157.931,-27.545],[126.056,33.44]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[25.645,70.013],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[2.001,5.679],[4.557,24.917],[23.028,21.078],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[37.09,-38.535],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":60,"s":[{"i":[[25.645,70.013],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[2.001,5.679],[4.557,24.917],[23.028,21.078],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[37.09,-38.535],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":80,"s":[{"i":[[10.643,70.793],[-0.439,-4.83],[-5.174,-30.8],[1.97,27.525],[1.391,28.785],[0.608,4.602],[42.671,-3.275]],"o":[[0.808,5.736],[2.251,24.762],[5.172,30.786],[0,0],[-0.218,-4.512],[0,0],[-33.501,2.571]],"v":[[79.2,-46.36],[84.434,-18.331],[91.955,44.096],[157.821,30.381],[159.169,-13.797],[157.931,-27.545],[126.056,33.44]],"c":true}]},{"t":98,"s":[{"i":[[18.227,70.013],[-0.955,-4.807],[-5.174,-30.8],[1.97,27.525],[2.796,28.747],[0.833,4.577],[42.671,-3.275]],"o":[[1.422,5.679],[4.897,24.645],[5.172,30.786],[0,0],[-0.438,-4.506],[0,0],[-33.501,2.571]],"v":[[72.743,-42.351],[80.985,-14.74],[91.955,44.096],[157.821,30.381],[156.339,-15.374],[154.428,-29.076],[126.056,33.44]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.86274510622,0.690196096897,0.498039215803,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[-1.514,-7.28],[0.061,1.65],[-9.227,-21.206],[-3.298,-2.59],[0,0],[5.097,11.596],[0,0],[-8.843,-15.225],[-3.241,-8.911],[-0.236,1.029],[0,0],[0,0],[-11.324,-21.096],[-1.026,-3.12],[0,0],[0,0],[-0.359,-0.5],[3.452,0.229],[12.678,8.654],[0.502,-7.28],[8.704,-0.38],[-1.241,-12.13],[3.207,-9.614]],"o":[[0.581,-1.63],[-0.388,-10.39],[9.825,22.58],[4.341,3.409],[-2.102,-11.65],[-5.095,-11.59],[3.696,-18],[7.987,13.751],[3.244,8.92],[0.237,-1.03],[-3.057,-15.14],[0.983,-11.32],[13.14,24.479],[0.902,2.742],[0,0],[-1.188,-8.907],[-4.844,-11.84],[0,0],[-9.537,-6.51],[0,0],[-8.698,0.38],[0,0],[-1.392,4.179]],"v":[[64.06,-73.479],[64.9,-78.479],[85.959,-77.223],[102.23,-39.658],[106.399,-44.978],[89.149,-87.81],[75.586,-103.328],[99.915,-99.538],[122.397,-57.039],[129.968,-54.119],[129.502,-57.959],[107.314,-106.568],[119.816,-94.129],[151.54,-37.516],[151.418,-38.881],[142.579,-54.608],[146.257,-53.662],[138.301,-76.838],[111.097,-121.789],[103.118,-115.807],[86.149,-125.279],[73.354,-101.608],[63.027,-91.299]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6,"s":[{"i":[[-1.514,-7.28],[0.061,1.65],[-9.227,-21.206],[-3.298,-2.59],[0,0],[5.097,11.596],[0,0],[-8.843,-15.225],[-3.241,-8.911],[-0.236,1.029],[0,0],[0,0],[-11.324,-21.096],[-1.026,-3.12],[0,0],[0,0],[-0.359,-0.5],[3.452,0.229],[12.678,8.654],[0.502,-7.28],[8.704,-0.38],[-1.241,-12.13],[3.207,-9.614]],"o":[[0.581,-1.63],[-0.388,-10.39],[9.825,22.58],[4.341,3.409],[-2.102,-11.65],[-5.095,-11.59],[3.696,-18],[7.987,13.751],[3.244,8.92],[0.237,-1.03],[-3.057,-15.14],[0.983,-11.32],[13.14,24.479],[0.902,2.742],[0,0],[-1.188,-8.907],[-4.844,-11.84],[0,0],[-9.537,-6.51],[0,0],[-8.698,0.38],[0,0],[-1.392,4.179]],"v":[[64.06,-73.479],[64.9,-78.479],[85.959,-77.223],[102.23,-39.658],[106.399,-44.978],[89.149,-87.81],[75.586,-103.328],[99.915,-99.538],[122.397,-57.039],[129.968,-54.119],[129.502,-57.959],[107.314,-106.568],[119.816,-94.129],[151.54,-37.516],[151.418,-38.881],[142.579,-54.608],[146.257,-53.662],[138.301,-76.838],[111.097,-121.789],[103.118,-115.807],[86.149,-125.279],[73.354,-101.608],[63.027,-91.299]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":24,"s":[{"i":[[-0.732,-7.321],[-0.111,1.63],[-6.871,-21.828],[-2.976,-2.892],[0,0],[3.808,11.942],[0,0],[-7.116,-15.903],[-2.261,-9.106],[-0.339,0.988],[0,0],[0,0],[-8.946,-21.939],[-0.685,-3.177],[0,0],[0,0],[-0.301,-0.529],[3.373,0.585],[11.574,9.836],[1.253,-7.111],[8.605,0.533],[0.042,-12.066],[4.156,-9.127]],"o":[[0.742,-1.543],[0.701,-10.264],[7.316,23.242],[3.917,3.807],[-0.855,-11.683],[-3.807,-11.936],[5.512,-17.328],[6.427,14.363],[2.263,9.115],[0.34,-0.989],[-1.431,-15.217],[2.147,-11.037],[10.38,25.457],[0.602,2.792],[0,0],[-0.241,-8.888],[-3.533,-12.155],[0,0],[-8.707,-7.399],[0,0],[-8.598,-0.532],[0,0],[-1.805,3.967]],"v":[[73.898,-77.895],[75.245,-82.728],[95.837,-79.298],[107.935,-40.639],[112.592,-45.44],[100.078,-89.384],[88.349,-106.067],[111.894,-99.803],[129.59,-55.641],[136.736,-51.979],[136.677,-55.807],[119.907,-105.95],[130.914,-92.407],[156.234,-33.395],[156.257,-34.75],[149.197,-51.147],[152.717,-49.833],[147.302,-73.467],[125.215,-120.534],[116.74,-115.479],[101.029,-126.567],[85.973,-104.607],[74.737,-95.538]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[-2.11,-7.28],[0.08,1.65],[-12.857,-21.206],[-4.596,-2.59],[0,0],[7.09,11.6],[0,0],[-12.323,-15.225],[-4.52,-8.91],[-0.32,1.03],[0,0],[0,0],[-15.78,-21.096],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[10.24,-0.71],[17.66,8.66],[0.7,-7.28],[12.13,-0.37],[-1.73,-12.13],[5.13,-13.54]],"o":[[0.81,-1.63],[-0.54,-10.39],[13.69,22.58],[6.049,3.409],[-2.93,-11.65],[-7.1,-11.59],[5.15,-18],[11.13,13.751],[4.52,8.92],[0.33,-1.03],[-4.26,-15.14],[1.37,-11.32],[18.31,24.479],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-13.29,-6.51],[0,0],[-12.12,0.38],[0,0],[-1.61,4.25]],"v":[[26.173,-69.753],[27.343,-74.753],[48.083,-70.753],[68.653,-33.843],[74.463,-39.163],[54.034,-80.303],[44.824,-98.643],[74.463,-95.213],[98.713,-51.333],[109.264,-48.413],[108.614,-52.253],[84.773,-102.243],[111.373,-92.133],[140.114,-32.473],[147.793,-35.753],[142.653,-52.793],[159.744,-55.513],[133.864,-74.753],[99.224,-119.793],[77.043,-110.433],[56.954,-121.553],[41.713,-96.923],[24.733,-87.573]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":60,"s":[{"i":[[-2.11,-7.28],[0.08,1.65],[-12.857,-21.206],[-4.596,-2.59],[0,0],[7.09,11.6],[0,0],[-12.323,-15.225],[-4.52,-8.91],[-0.32,1.03],[0,0],[0,0],[-15.78,-21.096],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[10.24,-0.71],[17.66,8.66],[0.7,-7.28],[12.13,-0.37],[-1.73,-12.13],[5.13,-13.54]],"o":[[0.81,-1.63],[-0.54,-10.39],[13.69,22.58],[6.049,3.409],[-2.93,-11.65],[-7.1,-11.59],[5.15,-18],[11.13,13.751],[4.52,8.92],[0.33,-1.03],[-4.26,-15.14],[1.37,-11.32],[18.31,24.479],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-13.29,-6.51],[0,0],[-12.12,0.38],[0,0],[-1.61,4.25]],"v":[[26.173,-69.753],[27.343,-74.753],[48.083,-70.753],[68.653,-33.843],[74.463,-39.163],[54.034,-80.303],[44.824,-98.643],[74.463,-95.213],[98.713,-51.333],[109.264,-48.413],[108.614,-52.253],[84.773,-102.243],[111.373,-92.133],[140.114,-32.473],[147.793,-35.753],[142.653,-52.793],[159.744,-55.513],[133.864,-74.753],[99.224,-119.793],[77.043,-110.433],[56.954,-121.553],[41.713,-96.923],[24.733,-87.573]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":80,"s":[{"i":[[-0.732,-7.321],[-0.111,1.63],[-6.871,-21.828],[-2.976,-2.892],[0,0],[3.808,11.942],[0,0],[-7.116,-15.903],[-2.261,-9.106],[-0.339,0.988],[0,0],[0,0],[-8.946,-21.939],[-0.685,-3.177],[0,0],[0,0],[-0.301,-0.529],[3.373,0.585],[11.574,9.836],[1.253,-7.111],[8.605,0.533],[0.042,-12.066],[4.156,-9.127]],"o":[[0.742,-1.543],[0.701,-10.264],[7.316,23.242],[3.917,3.807],[-0.855,-11.683],[-3.807,-11.936],[5.512,-17.328],[6.427,14.363],[2.263,9.115],[0.34,-0.989],[-1.431,-15.217],[2.147,-11.037],[10.38,25.457],[0.602,2.792],[0,0],[-0.241,-8.888],[-3.533,-12.155],[0,0],[-8.707,-7.399],[0,0],[-8.598,-0.532],[0,0],[-1.805,3.967]],"v":[[73.898,-77.895],[75.245,-82.728],[95.837,-79.298],[107.935,-40.639],[112.592,-45.44],[100.078,-89.384],[88.349,-106.067],[111.894,-99.803],[129.59,-55.641],[136.736,-51.979],[136.677,-55.807],[119.907,-105.95],[130.914,-92.407],[156.234,-33.395],[156.257,-34.75],[149.197,-51.147],[152.717,-49.833],[147.302,-73.467],[125.215,-120.534],[116.74,-115.479],[101.029,-126.567],[85.973,-104.607],[74.737,-95.538]],"c":true}]},{"t":98,"s":[{"i":[[-1.514,-7.28],[0.061,1.65],[-9.227,-21.206],[-3.298,-2.59],[0,0],[5.097,11.596],[0,0],[-8.843,-15.225],[-3.241,-8.911],[-0.236,1.029],[0,0],[0,0],[-11.324,-21.096],[-1.026,-3.12],[0,0],[0,0],[-0.359,-0.5],[3.452,0.229],[12.678,8.654],[0.502,-7.28],[8.704,-0.38],[-1.241,-12.13],[3.207,-9.614]],"o":[[0.581,-1.63],[-0.388,-10.39],[9.825,22.58],[4.341,3.409],[-2.102,-11.65],[-5.095,-11.59],[3.696,-18],[7.987,13.751],[3.244,8.92],[0.237,-1.03],[-3.057,-15.14],[0.983,-11.32],[13.14,24.479],[0.902,2.742],[0,0],[-1.188,-8.907],[-4.844,-11.84],[0,0],[-9.537,-6.51],[0,0],[-8.698,0.38],[0,0],[-1.392,4.179]],"v":[[64.06,-73.479],[64.9,-78.479],[85.959,-77.223],[102.23,-39.658],[106.399,-44.978],[89.149,-87.81],[75.586,-103.328],[99.915,-99.538],[122.397,-57.039],[129.968,-54.119],[129.502,-57.959],[107.314,-106.568],[119.816,-94.129],[151.54,-37.516],[151.418,-38.881],[142.579,-54.608],[146.257,-53.662],[138.301,-76.838],[111.097,-121.789],[103.118,-115.807],[86.149,-125.279],[73.354,-101.608],[63.027,-91.299]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.988235294819,0.890196084976,0.780392169952,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[1.676,27.483],[2.83,28.75],[3.402,5.465],[12.679,8.661],[0.497,-7.275],[8.701,-0.373],[-1.243,-12.125],[3.306,-9.58],[-4.13,-20.458],[-5.598,-30.564]],"o":[[0,0],[-2.762,-28.061],[0,0],[-9.537,-6.514],[0,0],[-8.701,0.373],[0,0],[-4.33,12.558],[4.971,24.626],[5.598,30.564]],"v":[[158.002,30.408],[156.721,-15.376],[138.158,-76.84],[110.861,-121.787],[102.888,-115.812],[85.917,-125.277],[73.12,-101.612],[62.796,-91.3],[80.13,-14.627],[91.476,44.341]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6,"s":[{"i":[[1.676,27.483],[2.83,28.75],[3.402,5.465],[12.679,8.661],[0.497,-7.275],[8.701,-0.373],[-1.243,-12.125],[3.306,-9.58],[-4.13,-20.458],[-5.598,-30.564]],"o":[[0,0],[-2.762,-28.061],[0,0],[-9.537,-6.514],[0,0],[-8.701,0.373],[0,0],[-4.33,12.558],[4.971,24.626],[5.598,30.564]],"v":[[158.002,30.408],[156.721,-15.376],[138.158,-76.84],[110.861,-121.787],[102.888,-115.812],[85.917,-125.277],[73.12,-101.612],[62.796,-91.3],[80.13,-14.627],[91.476,44.341]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":24,"s":[{"i":[[1.676,27.483],[1.424,28.79],[2.778,5.732],[11.575,9.843],[1.247,-7.107],[8.601,0.539],[0.04,-12.061],[4.25,-9.083],[-1.933,-20.561],[-5.598,-30.564]],"o":[[0,0],[-1.39,-28.1],[0,0],[-8.706,-7.403],[0,0],[-8.601,-0.539],[0,0],[-5.569,11.907],[2.327,24.75],[5.598,30.564]],"v":[[158.002,30.408],[159.55,-13.781],[147.162,-73.484],[124.983,-120.557],[116.515,-115.508],[100.8,-126.589],[85.743,-104.635],[74.51,-95.563],[83.581,-18.309],[91.476,44.341]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[20.093,-1.386],[17.668,8.661],[0.693,-7.275],[12.125,-0.373],[-1.732,-12.125],[5.123,-13.539],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-13.289,-6.514],[0,0],[-12.125,0.373],[0,0],[-4.85,12.818],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[133.538,-74.755],[98.895,-119.792],[76.723,-110.438],[56.63,-121.551],[41.387,-96.927],[24.412,-87.574],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":60,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[20.093,-1.386],[17.668,8.661],[0.693,-7.275],[12.125,-0.373],[-1.732,-12.125],[5.123,-13.539],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-13.289,-6.514],[0,0],[-12.125,0.373],[0,0],[-4.85,12.818],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[133.538,-74.755],[98.895,-119.792],[76.723,-110.438],[56.63,-121.551],[41.387,-96.927],[24.412,-87.574],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":80,"s":[{"i":[[1.676,27.483],[1.424,28.79],[2.778,5.732],[11.575,9.843],[1.247,-7.107],[8.601,0.539],[0.04,-12.061],[4.25,-9.083],[-1.933,-20.561],[-5.598,-30.564]],"o":[[0,0],[-1.39,-28.099],[0,0],[-8.706,-7.403],[0,0],[-8.601,-0.539],[0,0],[-5.569,11.907],[2.327,24.75],[5.598,30.564]],"v":[[158.002,30.408],[159.55,-13.781],[147.162,-73.484],[124.983,-120.557],[116.515,-115.508],[100.8,-126.589],[85.743,-104.635],[74.51,-95.563],[83.581,-18.309],[91.476,44.341]],"c":true}]},{"t":98,"s":[{"i":[[1.676,27.483],[2.83,28.75],[3.402,5.465],[12.679,8.661],[0.497,-7.275],[8.701,-0.373],[-1.243,-12.125],[3.306,-9.58],[-4.13,-20.458],[-5.598,-30.564]],"o":[[0,0],[-2.762,-28.061],[0,0],[-9.537,-6.514],[0,0],[-8.701,0.373],[0,0],[-4.33,12.558],[4.971,24.626],[5.598,30.564]],"v":[[158.002,30.408],[156.721,-15.376],[138.158,-76.84],[110.861,-121.787],[102.888,-115.812],[85.917,-125.277],[73.12,-101.612],[62.796,-91.3],[80.13,-14.627],[91.476,44.341]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.913725495338,0.78823530674,0.647058844566,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[15.209]},{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":15,"s":[18.946]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":40,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":60,"s":[0]},{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":75,"s":[18.946]},{"i":{"x":[0.599],"y":[1]},"o":{"x":[0.259],"y":[0]},"t":90,"s":[15.209]},{"t":98,"s":[15.209]}]},"p":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.325,"y":0},"t":0,"s":[394.502,805.39,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":0.34},"o":{"x":0.167,"y":0.167},"t":30,"s":[394.502,436.89,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[394.502,436.89,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[394.502,436.89,0],"to":[0,0,0],"ti":[0,0,0]},{"t":98,"s":[394.502,805.39,0]}]},"a":{"a":0,"k":[150.003,211.463,0]},"s":{"a":0,"k":[95,95,100]}},"ao":0,"ef":[{"ty":5,"nm":"arm R: Path 1 [1.1.1.0]","np":3,"mn":"ADBE Layer Control","ix":1,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.1.1.1]","np":3,"mn":"ADBE Layer Control","ix":2,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.1.1.2]","np":3,"mn":"ADBE Layer Control","ix":3,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.2.1.0]","np":3,"mn":"ADBE Layer Control","ix":4,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.2.1.1]","np":3,"mn":"ADBE Layer Control","ix":5,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.2.1.2]","np":3,"mn":"ADBE Layer Control","ix":6,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.0]","np":3,"mn":"ADBE Layer Control","ix":7,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.1]","np":3,"mn":"ADBE Layer Control","ix":8,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.2]","np":3,"mn":"ADBE Layer Control","ix":9,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.3]","np":3,"mn":"ADBE Layer Control","ix":10,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.4]","np":3,"mn":"ADBE Layer Control","ix":11,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.5]","np":3,"mn":"ADBE Layer Control","ix":12,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.6]","np":3,"mn":"ADBE Layer Control","ix":13,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.0]","np":3,"mn":"ADBE Layer Control","ix":14,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.1]","np":3,"mn":"ADBE Layer Control","ix":15,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.2]","np":3,"mn":"ADBE Layer Control","ix":16,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.3]","np":3,"mn":"ADBE Layer Control","ix":17,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.4]","np":3,"mn":"ADBE Layer Control","ix":18,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.5]","np":3,"mn":"ADBE Layer Control","ix":19,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.6]","np":3,"mn":"ADBE Layer Control","ix":20,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.7]","np":3,"mn":"ADBE Layer Control","ix":21,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.8]","np":3,"mn":"ADBE Layer Control","ix":22,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.9]","np":3,"mn":"ADBE Layer Control","ix":23,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.10]","np":3,"mn":"ADBE Layer Control","ix":24,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.11]","np":3,"mn":"ADBE Layer Control","ix":25,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.12]","np":3,"mn":"ADBE Layer Control","ix":26,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.13]","np":3,"mn":"ADBE Layer Control","ix":27,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.14]","np":3,"mn":"ADBE Layer Control","ix":28,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.15]","np":3,"mn":"ADBE Layer Control","ix":29,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.16]","np":3,"mn":"ADBE Layer Control","ix":30,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":2}}]}],"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.365,183.856]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.313,183.938]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.188,184.375]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.188,185.188]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.313,186.375]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.625,188]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105.063,190.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105.688,192.438]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[106.438,194.938]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[107.25,197.563]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[108.063,200]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[108.875,202.188]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[109.563,204]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[110.25,205.438]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[110.813,206.438]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[111.313,207.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[111.75,207.375]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[112.125,207.375]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[112.438,207.188]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[112.688,206.813]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.25,46.563],[98.625,84.625],[112.875,206.438]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[91.438,47],[98.625,84.625],[113.063,205.938]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[90.063,47.688],[98.625,84.625],[113.25,205.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[88,48.75],[98.625,84.625],[113.375,205]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":29,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[85.625,49.938],[98.625,84.625],[113.5,204.563]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[83.188,51.188],[98.625,84.625],[113.625,204.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[81,52.313],[98.625,84.625],[113.688,203.625]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[79.188,53.25],[98.625,84.625],[113.75,203.25]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":33,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[77.625,54],[98.625,84.625],[113.813,202.938]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":34,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[76.438,54.625],[98.625,84.625],[113.875,202.688]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":35,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[75.5,55.125],[98.625,84.625],[113.938,202.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":36,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[74.813,55.438],[98.625,84.625],[114,202.313]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[74.313,55.688],[98.625,84.625],[114,202.188]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[74,55.875],[98.625,84.625],[114.063,202.125]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":39,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.813,56],[98.625,84.625],[114.063,202.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[114.063,202.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":60,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[114.063,202.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":61,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.875,55.938],[98.625,84.625],[114,202.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":62,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[74.25,55.75],[98.625,84.625],[113.875,201.938]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":63,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[74.875,55.438],[98.625,84.625],[113.688,201.625]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":64,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[75.688,55],[98.625,84.625],[113.375,201.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":65,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[76.688,54.5],[98.625,84.625],[112.938,200.25]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":66,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[77.813,53.938],[98.625,84.625],[112.375,199.125]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":67,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[79,53.313],[98.625,84.625],[111.625,197.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":68,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[80.375,52.625],[98.625,84.625],[110.688,196.563]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":69,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[81.75,51.938],[98.625,84.625],[109.688,195.313]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":70,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[83.125,51.25],[98.625,84.625],[108.688,194.25]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":71,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[84.5,50.5],[98.625,84.625],[107.625,193.375]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":72,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[85.875,49.813],[98.625,84.625],[106.625,192.563]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":73,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[87.188,49.125],[98.625,84.625],[105.813,191.75]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":74,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[88.438,48.5],[98.625,84.625],[105.125,190.938]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":75,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[89.563,47.938],[98.625,84.625],[104.625,189.938]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":76,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[90.563,47.438],[98.625,84.625],[104.313,188.938]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":77,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[91.375,47.063],[98.625,84.625],[104.125,188]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":78,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[91.938,46.75],[98.625,84.625],[104,187.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":79,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.375,46.563],[98.625,84.625],[104.063,186.125]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":80,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.125,185.313]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.25,184.625]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":82,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.438,184.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":83,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.563,183.625]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":84,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.688,183.375]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":85,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.75,183.188]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":86,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.875,183.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":87,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.938,183]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.938,182.938]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":89,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":91,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":92,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":93,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":95,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":96,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":97,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"t":98,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.649,162.548],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.563,162.5],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.25,162.5],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.125,162.813],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.125,163.563],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.25,164.75],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.563,166.438],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.063,168.438],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.75,170.75],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[178.5,173.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[179.313,175.5],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[180.125,177.813],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[181,180.063],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[181.875,182.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[182.75,184.188],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[183.688,186.188],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[184.563,188.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[185.375,190.063],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[186.125,191.875],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[186.813,193.563],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[187.313,195.125],[156.688,64.313],[157.688,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[187.75,196.438],[156.688,64.313],[157.875,37.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[188.125,197.563],[156.688,64.313],[158.25,37.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[188.375,198.563],[156.688,64.313],[158.75,37.125]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":29,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[188.625,199.313],[156.688,64.313],[159.313,37.188]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[188.813,199.875],[156.688,64.313],[159.875,37.25]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[188.938,200.375],[156.688,64.313],[160.438,37.313]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189.063,200.75],[156.688,64.313],[160.875,37.375]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":33,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189.125,201.125],[156.688,64.313],[161.25,37.375]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":34,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189.188,201.375],[156.688,64.313],[161.563,37.438]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":35,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189.25,201.625],[156.688,64.313],[161.75,37.438]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":36,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189.313,201.75],[156.688,64.313],[161.938,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189.313,201.938],[156.688,64.313],[162.063,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189.375,202],[156.688,64.313],[162.125,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":39,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189.375,202.063],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189.375,202.063],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":60,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189.375,202.063],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":61,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189.313,201.75],[156.688,64.313],[162.125,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":62,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189.188,200.75],[156.688,64.313],[162.063,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":63,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189,199.063],[156.688,64.313],[161.938,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":64,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[188.563,196.688],[156.688,64.313],[161.688,37.438]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":65,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[188,193.75],[156.688,64.313],[161.5,37.438]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":66,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[187.188,190.375],[156.688,64.313],[161.188,37.375]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":67,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[186.125,186.688],[156.688,64.313],[160.938,37.375]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":68,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[184.813,182.938],[156.688,64.313],[160.563,37.313]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":69,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[183.313,179.313],[156.688,64.313],[160.25,37.313]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":70,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[181.75,176],[156.688,64.313],[159.938,37.25]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":71,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[180.125,173.063],[156.688,64.313],[159.563,37.25]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":72,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[178.688,170.563],[156.688,64.313],[159.25,37.188]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":73,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.438,168.438],[156.688,64.313],[158.938,37.125]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":74,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.438,166.75],[156.688,64.313],[158.625,37.125]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":75,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[175.875,165.5],[156.688,64.313],[158.375,37.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":76,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[175.563,164.563],[156.688,64.313],[158.125,37.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":77,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[175.438,163.813],[156.688,64.313],[157.938,37.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":78,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[175.5,163.313],[156.688,64.313],[157.75,37.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":79,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[175.688,162.938],[156.688,64.313],[157.688,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":80,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176,162.75],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.313,162.688],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":82,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.625,162.688],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":83,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.875,162.688],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":84,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.125,162.813],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":85,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.313,162.938],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":86,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.438,163],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":87,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.563,163.063],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.625,163.063],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":89,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.625,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":91,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":92,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":93,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":95,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":96,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":97,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"t":98,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.168,187.077],[133.298,186.221],[178.144,164.173],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.125,187.125],[133.25,186.25],[178.063,164.125],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.063,187.5],[133.188,186.563],[177.813,164.125],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.063,188.188],[133.188,187.188],[177.688,164.438],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.188,189.313],[133.313,188.188],[177.688,165.188],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.5,190.813],[133.563,189.625],[177.813,166.375],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.938,192.75],[134.063,191.5],[178.188,168],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[122.625,195.063],[134.688,193.75],[178.688,170],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[123.375,197.5],[135.438,196.188],[179.313,172.313],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[124.188,200.063],[136.25,198.688],[180.063,174.688],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[125,202.5],[137.063,201.125],[180.875,177.125],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[125.75,204.688],[137.875,203.375],[181.688,179.375],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[126.5,206.625],[138.563,205.313],[182.563,181.625],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[127.125,208.188],[139.25,207.063],[183.438,183.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[127.688,209.5],[139.813,208.5],[184.313,185.813],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[128.125,210.438],[140.375,209.625],[185.188,187.813],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[128.563,211.125],[141.313,210.438],[186.063,189.813],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[128.875,211.563],[142.5,210.938],[186.813,191.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[129.25,211.875],[144.125,211.25],[187.563,193.625],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[129.563,212.063],[146.063,211.438],[188.125,195.375],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[129.938,212.125],[148.313,211.563],[188.625,196.938],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[130.188,212.188],[150.625,211.625],[189,198.313],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[130.5,212.188],[152.875,211.688],[189.313,199.438],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[130.75,212.125],[154.938,211.75],[189.563,200.438],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":29,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[130.938,212],[156.75,211.813],[189.75,201.25],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.125,211.813],[158.313,211.813],[189.875,201.813],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.25,211.625],[159.625,211.875],[190,202.313],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.375,211.5],[160.688,211.875],[190.125,202.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":33,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.438,211.375],[161.625,211.938],[190.188,203.063],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":34,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.563,211.313],[162.375,212],[190.25,203.375],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":35,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.625,211.188],[162.938,212.063],[190.313,203.563],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":36,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.688,211.188],[163.375,212.125],[190.313,203.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.688,211.125],[163.75,212.125],[190.375,203.875],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.75,211.063],[163.938,212.188],[190.375,204],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":39,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.75,211.063],[164.063,212.188],[190.375,204.063],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.75,211.063],[164.125,212.188],[190.375,204.063],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":60,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.75,211.063],[164.125,212.188],[190.375,204.063],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":61,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.75,210.938],[163.875,211.938],[190.313,203.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":62,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.625,210.563],[163,211.313],[190.25,202.688],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":63,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.375,209.875],[161.438,210.188],[190.063,201],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":64,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.063,208.813],[159.125,208.625],[189.688,198.625],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":65,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[130.5,207.375],[156.188,206.813],[189.188,195.688],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":66,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[129.813,205.625],[153,204.75],[188.375,192.25],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":67,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[128.938,203.688],[149.813,202.563],[187.375,188.5],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":68,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[128,201.75],[146.75,200.5],[186.125,184.688],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":69,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[126.875,199.938],[143.938,198.563],[184.688,181.063],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":70,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[125.813,198.313],[141.438,196.813],[183.188,177.688],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":71,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[124.688,196.875],[139.25,195.375],[181.625,174.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":72,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[123.688,195.688],[137.375,194.063],[180.188,172.188],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":73,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[122.813,194.563],[135.875,193],[179,170.063],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":74,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[122.063,193.5],[134.688,192],[178,168.313],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":75,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.563,192.5],[133.875,191],[177.438,167.063],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":76,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.25,191.438],[133.375,190.063],[177.125,166.125],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":77,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121,190.563],[133.125,189.25],[177,165.375],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":78,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[120.938,189.75],[133,188.5],[177.063,164.875],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":79,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[120.938,189],[133,187.813],[177.25,164.563],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":80,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121,188.313],[133.125,187.25],[177.563,164.375],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.063,187.688],[133.188,186.75],[177.875,164.313],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":82,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.188,187.25],[133.313,186.438],[178.188,164.313],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":83,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.313,187],[133.438,186.188],[178.438,164.375],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":84,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.438,186.813],[133.563,186.063],[178.625,164.438],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":85,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.5,186.688],[133.688,186],[178.813,164.563],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":86,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.625,186.625],[133.75,186],[178.938,164.625],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":87,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.625,186.563],[133.813,185.938],[179.063,164.688],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.813,185.938],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":89,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.938],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":91,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":92,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":93,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":95,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":96,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":97,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"t":98,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.737254917622,0.572549045086,0.349019616842,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178.144,164.173],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.231,186.731],[116.231,187.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178.063,164.125],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.188,186.813],[116.188,187.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.813,164.125],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.063,187.25],[116.125,187.625]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.688,164.438],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.063,188.063],[116.125,188.375]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.688,165.188],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.25,189.25],[116.25,189.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.813,166.375],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.563,190.875],[116.563,191.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178.188,168],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[106,192.875],[117.063,193]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178.688,170],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[106.625,195.25],[117.688,195.313]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.313,172.313],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[107.375,197.813],[118.438,197.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[180.063,174.688],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[108.188,200.375],[119.25,200.375]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[180.875,177.125],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[109.063,202.813],[120.063,202.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[181.688,179.375],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[109.813,205],[120.875,205]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[182.563,181.625],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[110.563,206.813],[121.563,206.875]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[183.438,183.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[111.188,208.25],[122.188,208.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[184.313,185.813],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[111.688,209.313],[122.75,209.625]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[185.188,187.813],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[112.188,209.938],[123.375,210.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[186.063,189.813],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[112.5,210.25],[124.25,211]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[186.813,191.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[112.813,210.313],[125.563,211.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[187.563,193.625],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[113,210.125],[127.25,211.375]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[188.125,195.375],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[113.188,209.813],[129.313,211.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[188.625,196.938],[156.688,64.313],[154.375,35.563],[156.063,41.75],[157.375,34.938],[153.625,31.25],[149.813,36.688],[147.625,26.938],[143.25,27.75],[138,45],[129,29.563],[125.563,31.875],[107.813,54.063],[93.5,42.375],[98.625,84.625],[113.313,209.375],[131.625,211.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[189,198.313],[156.688,64.313],[154.625,35.563],[155.813,41.875],[156.938,34.813],[153.125,31.25],[149.125,36.813],[146.563,26.875],[142.188,27.688],[136.938,44.938],[127.625,29.875],[124.188,32.188],[107.188,54.313],[92.625,42.75],[98.625,84.625],[113.438,208.938],[134.063,211.625]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[189.313,199.438],[156.688,64.313],[155.063,35.5],[155.375,42.125],[156.125,34.625],[152.25,31.25],[147.938,37.063],[144.688,26.813],[140.313,27.625],[135.063,44.875],[125.063,30.438],[121.625,32.75],[106,54.688],[91.063,43.438],[98.625,84.625],[113.563,208.5],[136.438,211.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[189.563,200.438],[156.688,64.313],[155.625,35.375],[154.75,42.375],[154.938,34.313],[151.063,31.188],[146.25,37.438],[142.063,26.688],[137.688,27.5],[132.438,44.75],[121.5,31.313],[118.063,33.625],[104.375,55.25],[88.875,44.375],[98.625,84.625],[113.625,208],[138.563,211.938]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":29,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[189.75,201.25],[156.688,64.313],[156.313,35.25],[154.063,42.75],[153.5,33.938],[149.563,31.188],[144.25,37.813],[138.875,26.563],[134.5,27.375],[129.25,44.625],[117.25,32.25],[113.813,34.563],[102.438,55.875],[86.25,45.5],[98.625,84.625],[113.688,207.563],[140.438,212.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[189.875,201.813],[156.688,64.313],[157.063,35.188],[153.313,43.125],[152.125,33.563],[148.063,31.188],[142.188,38.25],[135.688,26.5],[131.313,27.313],[126.063,44.563],[112.938,33.25],[109.5,35.563],[100.438,56.563],[83.625,46.688],[98.625,84.625],[113.75,207.063],[142,212.125]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190,202.313],[156.688,64.313],[157.688,35.063],[152.625,43.438],[150.813,33.25],[146.75,31.188],[140.375,38.625],[132.813,26.375],[128.438,27.188],[123.188,44.438],[109.063,34.125],[105.625,36.438],[98.688,57.125],[81.188,47.688],[98.625,84.625],[113.813,206.625],[143.375,212.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.125,202.75],[156.688,64.313],[158.25,35],[152.063,43.75],[149.75,32.938],[145.625,31.188],[138.813,39],[130.375,26.25],[126,27.063],[120.75,44.313],[105.813,34.938],[102.375,37.25],[97.188,57.625],[79.188,48.563],[98.625,84.625],[113.875,206.25],[144.5,212.313]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":33,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.188,203.063],[156.688,64.313],[158.688,34.938],[151.625,44],[148.875,32.75],[144.688,31.125],[137.5,39.25],[128.375,26.188],[124,27],[118.75,44.25],[103.125,35.5],[99.688,37.813],[95.938,58.063],[77.5,49.313],[98.625,84.625],[113.938,205.938],[145.438,212.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":34,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.25,203.375],[156.688,64.313],[159,34.875],[151.25,44.125],[148.125,32.563],[143.938,31.125],[136.5,39.438],[126.813,26.125],[122.438,26.938],[117.188,44.188],[101,36],[97.563,38.313],[94.938,58.375],[76.188,49.875],[98.625,84.625],[113.938,205.688],[146.188,212.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":35,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.313,203.563],[156.688,64.313],[159.313,34.813],[151,44.313],[147.625,32.375],[143.375,31.125],[135.75,39.625],[125.563,26.063],[121.188,26.875],[115.938,44.125],[99.313,36.375],[95.875,38.688],[94.188,58.625],[75.188,50.313],[98.625,84.625],[114,205.5],[146.813,212.563]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":36,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.313,203.75],[156.688,64.313],[159.5,34.813],[150.75,44.375],[147.188,32.313],[143,31.125],[135.125,39.75],[124.688,26.063],[120.313,26.875],[115.063,44.125],[98.125,36.688],[94.688,39],[93.625,58.813],[74.438,50.625],[98.625,84.625],[114,205.313],[147.25,212.625]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.375,203.875],[156.688,64.313],[159.625,34.75],[150.625,44.5],[146.875,32.188],[142.688,31.125],[134.75,39.813],[124,26],[119.625,26.813],[114.375,44.063],[97.188,36.875],[93.75,39.188],[93.25,58.938],[73.875,50.875],[98.625,84.625],[114.063,205.188],[147.625,212.688]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.375,204],[156.688,64.313],[159.75,34.75],[150.5,44.5],[146.688,32.188],[142.438,31.125],[134.438,39.875],[123.563,26],[119.188,26.813],[113.938,44.063],[96.625,37],[93.188,39.313],[92.938,59.063],[73.5,51],[98.625,84.625],[114.063,205.125],[147.813,212.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":39,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.375,204.063],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.625,32.125],[142.375,31.125],[134.313,39.938],[123.313,26],[118.938,26.813],[113.688,44.063],[96.313,37.125],[92.875,39.438],[92.813,59.125],[73.313,51.125],[98.625,84.625],[114.063,205.063],[147.938,212.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.375,204.063],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[114.063,205.063],[148,212.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":60,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.375,204.063],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[114.063,205.063],[148,212.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":61,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.313,203.75],[156.688,64.313],[159.75,34.75],[150.5,44.563],[146.625,32.125],[142.375,31.125],[134.375,39.938],[123.438,26],[119.063,26.813],[113.813,44.063],[96.438,37.063],[93,39.375],[92.875,59.063],[73.375,51.063],[98.625,84.625],[114.063,205.063],[147.75,212.563]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":62,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.25,202.688],[156.688,64.313],[159.688,34.75],[150.625,44.5],[146.875,32.188],[142.625,31.125],[134.688,39.875],[123.938,26],[119.563,26.813],[114.313,44.063],[97.125,36.938],[93.688,39.25],[93.188,59],[73.813,50.875],[98.625,84.625],[113.938,204.938],[146.875,211.875]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":63,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.063,201],[156.688,64.313],[159.5,34.813],[150.813,44.375],[147.25,32.313],[143,31.125],[135.188,39.75],[124.75,26.063],[120.375,26.875],[115.125,44.125],[98.188,36.688],[94.75,39],[93.688,58.813],[74.5,50.563],[98.625,84.625],[113.813,204.625],[145.25,210.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":64,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[189.688,198.625],[156.688,64.313],[159.25,34.813],[151,44.25],[147.688,32.438],[143.5,31.125],[135.875,39.563],[125.813,26.125],[121.438,26.938],[116.188,44.188],[99.625,36.313],[96.188,38.625],[94.313,58.625],[75.375,50.188],[98.625,84.625],[113.563,204.063],[142.938,209.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":65,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[189.188,195.688],[156.688,64.313],[158.938,34.875],[151.313,44.125],[148.25,32.563],[144.125,31.125],[136.688,39.438],[127.125,26.125],[122.75,26.938],[117.5,44.188],[101.375,35.938],[97.938,38.25],[95.125,58.313],[76.438,49.75],[98.625,84.625],[113.25,203.188],[139.938,207.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":66,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[188.375,192.25],[156.688,64.313],[158.625,34.938],[151.688,43.938],[148.938,32.75],[144.813,31.125],[137.625,39.25],[128.563,26.188],[124.188,27],[118.938,44.25],[103.375,35.438],[99.938,37.75],[96.063,58],[77.688,49.188],[98.625,84.625],[112.75,202.063],[136.625,205.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":67,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[187.375,188.5],[156.688,64.313],[158.25,35],[152.063,43.75],[149.625,32.938],[145.563,31.188],[138.688,39],[130.188,26.25],[125.813,27.063],[120.563,44.313],[105.563,34.938],[102.125,37.25],[97.063,57.688],[79,48.625],[98.625,84.625],[112.063,200.813],[133.25,203.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":68,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[186.125,184.688],[156.688,64.313],[157.875,35.063],[152.438,43.563],[150.438,33.125],[146.313,31.188],[139.813,38.75],[131.938,26.313],[127.563,27.125],[122.313,44.375],[107.875,34.438],[104.438,36.75],[98.125,57.313],[80.438,48],[98.625,84.625],[111.25,199.5],[130.125,201.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":69,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[184.688,181.063],[156.688,64.313],[157.5,35.125],[152.875,43.375],[151.25,33.313],[147.188,31.188],[140.938,38.5],[133.75,26.375],[129.375,27.188],[124.125,44.438],[110.313,33.875],[106.875,36.188],[99.25,56.938],[81.938,47.375],[98.625,84.625],[110.375,198.25],[127.25,199.313]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":70,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[183.188,177.688],[156.688,64.313],[157.063,35.188],[153.25,43.125],[152.063,33.563],[148.063,31.188],[142.125,38.25],[135.563,26.438],[131.188,27.25],[125.938,44.5],[112.813,33.313],[109.375,35.625],[100.375,56.563],[83.5,46.688],[98.625,84.625],[109.375,197.188],[124.688,197.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":71,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[181.625,174.75],[156.688,64.313],[156.625,35.25],[153.688,42.938],[152.875,33.75],[148.875,31.188],[143.313,38],[137.438,26.563],[133.063,27.375],[127.813,44.625],[115.313,32.688],[111.875,35],[101.5,56.188],[85.063,46.063],[98.625,84.625],[108.438,196.25],[122.438,196.563]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":72,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[180.188,172.188],[156.688,64.313],[156.25,35.313],[154.125,42.75],[153.688,34],[149.75,31.188],[144.438,37.813],[139.25,26.625],[134.875,27.438],[129.625,44.688],[117.75,32.125],[114.313,34.438],[102.625,55.813],[86.563,45.375],[98.625,84.625],[107.5,195.375],[120.5,195.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":73,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179,170.063],[156.688,64.313],[155.875,35.375],[154.5,42.5],[154.438,34.188],[150.563,31.188],[145.563,37.563],[140.938,26.688],[136.563,27.5],[131.313,44.75],[120.063,31.625],[116.625,33.938],[103.688,55.438],[88,44.75],[98.625,84.625],[106.75,194.625],[118.938,194.563]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":74,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178,168.313],[156.688,64.313],[155.5,35.375],[154.875,42.313],[155.188,34.375],[151.313,31.188],[146.563,37.313],[142.563,26.75],[138.188,27.563],[132.938,44.813],[122.25,31.125],[118.813,33.438],[104.688,55.125],[89.313,44.188],[98.625,84.625],[106.063,193.75],[117.75,193.688]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":75,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.438,167.063],[156.688,64.313],[155.188,35.438],[155.25,42.188],[155.813,34.563],[152,31.25],[147.5,37.125],[144.063,26.813],[139.688,27.625],[134.438,44.875],[124.25,30.625],[120.813,32.938],[105.625,54.813],[90.563,43.688],[98.625,84.625],[105.625,192.813],[116.875,192.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":76,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.125,166.125],[156.688,64.313],[154.875,35.5],[155.5,42],[156.375,34.688],[152.563,31.25],[148.375,36.938],[145.375,26.813],[141,27.625],[135.75,44.875],[125.938,30.25],[122.5,32.563],[106.438,54.563],[91.625,43.188],[98.625,84.625],[105.25,191.75],[116.375,191.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":77,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177,165.375],[156.688,64.313],[154.625,35.5],[155.75,41.875],[156.875,34.813],[153.063,31.25],[149,36.813],[146.438,26.875],[142.063,27.688],[136.813,44.938],[127.375,29.938],[123.938,32.25],[107.063,54.313],[92.5,42.813],[98.625,84.625],[105.063,190.813],[116.063,190.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":78,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.063,164.875],[156.688,64.313],[154.5,35.563],[155.938,41.813],[157.25,34.938],[153.438,31.25],[149.563,36.688],[147.25,26.875],[142.875,27.688],[137.625,44.938],[128.5,29.688],[125.063,32],[107.563,54.188],[93.188,42.5],[98.625,84.625],[104.938,189.875],[116,190]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":79,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.25,164.563],[156.688,64.313],[154.375,35.563],[156.063,41.75],[157.438,35],[153.688,31.25],[149.875,36.625],[147.75,26.938],[143.375,27.75],[138.125,45],[129.188,29.5],[125.75,31.813],[107.875,54.063],[93.625,42.313],[98.625,84.625],[104.938,189],[116,189.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":80,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.563,164.375],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.063,188.188],[116.063,188.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.875,164.313],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.125,187.5],[116.188,187.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":82,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178.188,164.313],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.25,186.938],[116.25,187.375]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":83,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178.438,164.375],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.375,186.5],[116.375,187.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":84,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178.625,164.438],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.5,186.25],[116.5,186.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":85,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178.813,164.563],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.563,186.063],[116.625,186.688]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":86,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178.938,164.625],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.688,185.938],[116.688,186.625]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":87,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.063,164.688],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.688,185.875],[116.75,186.563]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.813],[116.75,186.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":89,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":91,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":92,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":93,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":95,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":96,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":97,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"t":98,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[-16.69,-65.288]],"o":[[0,0],[0,0]],"v":[[73.894,-101.727],[107.348,-44.337]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6,"s":[{"i":[[0,0],[-16.69,-65.288]],"o":[[0,0],[0,0]],"v":[[73.894,-101.727],[107.348,-44.337]],"c":false}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":24,"s":[{"i":[[0,0],[-9.623,-65.983]],"o":[[0,0],[0,0]],"v":[[86.517,-104.667],[113.459,-44.71]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[0,0],[-12.183,-34.643]],"o":[[0,0],[0,0]],"v":[[41.387,-96.927],[74.702,-38.38]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":60,"s":[{"i":[[0,0],[-12.183,-34.643]],"o":[[0,0],[0,0]],"v":[[41.387,-96.927],[74.702,-38.38]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":80,"s":[{"i":[[0,0],[-9.623,-65.983]],"o":[[0,0],[0,0]],"v":[[86.517,-104.667],[113.459,-44.71]],"c":false}]},{"t":98,"s":[{"i":[[0,0],[-16.69,-65.288]],"o":[[0,0],[0,0]],"v":[[73.894,-101.727],[107.348,-44.337]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.580392181873,0.376470595598,0.215686276555,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[-2.646,-17.122]],"o":[[0,0],[0,0]],"v":[[138.271,-76.891],[151.566,-37.773]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6,"s":[{"i":[[0,0],[-2.646,-17.122]],"o":[[0,0],[0,0]],"v":[[138.271,-76.891],[151.566,-37.773]],"c":false}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":24,"s":[{"i":[[0,0],[-0.82,-17.124]],"o":[[0,0],[0,0]],"v":[[147.278,-73.523],[156.287,-33.644]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[0,0],[-3.811,-17.322]],"o":[[0,0],[0,0]],"v":[[133.538,-74.755],[147.742,-34.569]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":60,"s":[{"i":[[0,0],[-3.811,-17.322]],"o":[[0,0],[0,0]],"v":[[133.538,-74.755],[147.742,-34.569]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":80,"s":[{"i":[[0,0],[-0.82,-17.124]],"o":[[0,0],[0,0]],"v":[[147.278,-73.523],[156.287,-33.644]],"c":false}]},{"t":98,"s":[{"i":[[0,0],[-2.646,-17.122]],"o":[[0,0],[0,0]],"v":[[138.271,-76.891],[151.566,-37.773]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.580392181873,0.376470595598,0.215686276555,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[-6.464,-30.14]],"o":[[0,0],[0,0]],"v":[[102.888,-115.812],[129.737,-55.865]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6,"s":[{"i":[[0,0],[-6.464,-30.14]],"o":[[0,0],[0,0]],"v":[[102.888,-115.812],[129.737,-55.865]],"c":false}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":24,"s":[{"i":[[0,0],[-3.221,-30.331]],"o":[[0,0],[0,0]],"v":[[116.515,-115.508],[136.69,-53.721]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[0,0],[-9.007,-30.14]],"o":[[0,0],[0,0]],"v":[[76.723,-110.438],[108.941,-50.159]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":60,"s":[{"i":[[0,0],[-9.007,-30.14]],"o":[[0,0],[0,0]],"v":[[76.723,-110.438],[108.941,-50.159]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":80,"s":[{"i":[[0,0],[-3.221,-30.331]],"o":[[0,0],[0,0]],"v":[[116.515,-115.508],[136.69,-53.721]],"c":false}]},{"t":98,"s":[{"i":[[0,0],[-6.464,-30.14]],"o":[[0,0],[0,0]],"v":[[102.888,-115.812],[129.737,-55.865]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.580392181873,0.376470595598,0.215686276555,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[1.676,27.483],[3.695,28.652],[3.658,5.082],[12.679,8.661],[-4.848,-6.104],[8.701,-0.373],[-1.243,-12.125],[3.171,-10.075],[-4.13,-20.458],[-5.598,-30.564]],"o":[[0,0],[-1.916,-14.839],[0,0],[-9.537,-6.514],[0,0],[-8.701,0.373],[0,0],[-3.982,12.672],[4.971,24.626],[5.598,30.564]],"v":[[158.002,30.408],[156.721,-15.376],[138.158,-76.84],[110.861,-121.787],[102.888,-115.812],[85.917,-125.277],[73.12,-101.612],[62.796,-91.3],[80.13,-14.627],[91.476,44.341]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6,"s":[{"i":[[1.676,27.483],[3.695,28.652],[3.658,5.082],[12.679,8.661],[-4.848,-6.104],[8.701,-0.373],[-1.243,-12.125],[3.171,-10.075],[-4.13,-20.458],[-5.598,-30.564]],"o":[[0,0],[-1.916,-14.839],[0,0],[-9.537,-6.514],[0,0],[-8.701,0.373],[0,0],[-3.982,12.672],[4.971,24.626],[5.598,30.564]],"v":[[158.002,30.408],[156.721,-15.376],[138.158,-76.84],[110.861,-121.787],[102.888,-115.812],[85.917,-125.277],[73.12,-101.612],[62.796,-91.3],[80.13,-14.627],[91.476,44.341]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":24,"s":[{"i":[[1.676,27.483],[2.293,28.734],[3.07,5.382],[11.575,9.843],[-4.135,-6.511],[8.601,0.539],[0.04,-12.061],[4.168,-9.585],[-1.933,-20.561],[-5.598,-30.564]],"o":[[0,0],[-1.189,-14.881],[0,0],[-8.706,-7.403],[0,0],[-8.601,-0.539],[0,0],[-5.238,12.055],[2.327,24.75],[5.598,30.564]],"v":[[158.002,30.408],[159.55,-13.781],[147.162,-73.484],[124.983,-120.557],[116.515,-115.508],[100.8,-126.589],[85.743,-104.635],[74.51,-95.563],[83.581,-18.309],[91.476,44.341]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[20.093,-1.386],[17.668,8.661],[0.693,-7.275],[12.125,-0.373],[-1.732,-12.125],[5.123,-13.539],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-13.289,-6.514],[0,0],[-12.125,0.373],[0,0],[-4.85,12.818],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[133.538,-74.755],[98.895,-119.792],[76.723,-110.438],[56.63,-121.551],[41.387,-96.927],[24.412,-87.574],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":60,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[20.093,-1.386],[17.668,8.661],[0.693,-7.275],[12.125,-0.373],[-1.732,-12.125],[5.123,-13.539],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-13.289,-6.514],[0,0],[-12.125,0.373],[0,0],[-4.85,12.818],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[133.538,-74.755],[98.895,-119.792],[76.723,-110.438],[56.63,-121.551],[41.387,-96.927],[24.412,-87.574],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":80,"s":[{"i":[[1.676,27.483],[2.293,28.734],[3.07,5.382],[11.575,9.843],[-4.135,-6.511],[8.601,0.539],[0.04,-12.061],[4.168,-9.585],[-1.933,-20.561],[-5.598,-30.564]],"o":[[0,0],[-1.189,-14.881],[0,0],[-8.706,-7.403],[0,0],[-8.601,-0.539],[0,0],[-5.238,12.055],[2.327,24.75],[5.598,30.564]],"v":[[158.002,30.408],[159.55,-13.781],[147.162,-73.484],[124.983,-120.557],[116.515,-115.508],[100.8,-126.589],[85.743,-104.635],[74.51,-95.563],[83.581,-18.309],[91.476,44.341]],"c":true}]},{"t":98,"s":[{"i":[[1.676,27.483],[3.695,28.652],[3.658,5.082],[12.679,8.661],[-4.848,-6.104],[8.701,-0.373],[-1.243,-12.125],[3.171,-10.075],[-4.13,-20.458],[-5.598,-30.564]],"o":[[0,0],[-1.916,-14.839],[0,0],[-9.537,-6.514],[0,0],[-8.701,0.373],[0,0],[-3.982,12.672],[4.971,24.626],[5.598,30.564]],"v":[[158.002,30.408],[156.721,-15.376],[138.158,-76.84],[110.861,-121.787],[102.888,-115.812],[85.917,-125.277],[73.12,-101.612],[62.796,-91.3],[80.13,-14.627],[91.476,44.341]],"c":true}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.580392181873,0.376470595598,0.215686276555,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[18.227,70.013],[-0.955,-4.807],[-5.174,-30.8],[1.97,27.525],[2.796,28.747],[0.833,4.577],[42.671,-3.275]],"o":[[1.422,5.679],[4.897,24.645],[5.172,30.786],[0,0],[-0.438,-4.506],[0,0],[-33.501,2.571]],"v":[[72.743,-42.351],[80.985,-14.74],[91.955,44.096],[157.821,30.381],[156.339,-15.374],[154.428,-29.076],[126.056,33.44]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6,"s":[{"i":[[18.227,70.013],[-0.955,-4.807],[-5.174,-30.8],[1.97,27.525],[2.796,28.747],[0.833,4.577],[42.671,-3.275]],"o":[[1.422,5.679],[4.897,24.645],[5.172,30.786],[0,0],[-0.438,-4.506],[0,0],[-33.501,2.571]],"v":[[72.743,-42.351],[80.985,-14.74],[91.955,44.096],[157.821,30.381],[156.339,-15.374],[154.428,-29.076],[126.056,33.44]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":24,"s":[{"i":[[10.643,70.793],[-0.439,-4.83],[-5.174,-30.8],[1.97,27.525],[1.391,28.785],[0.608,4.602],[42.671,-3.275]],"o":[[0.808,5.736],[2.251,24.762],[5.172,30.786],[0,0],[-0.218,-4.512],[0,0],[-33.501,2.571]],"v":[[79.2,-46.36],[84.434,-18.331],[91.955,44.096],[157.821,30.381],[159.169,-13.797],[157.931,-27.545],[126.056,33.44]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[25.645,70.013],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[2.001,5.679],[4.557,24.917],[23.028,21.078],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[37.09,-38.535],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":60,"s":[{"i":[[25.645,70.013],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[2.001,5.679],[4.557,24.917],[23.028,21.078],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[37.09,-38.535],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":80,"s":[{"i":[[10.643,70.793],[-0.439,-4.83],[-5.174,-30.8],[1.97,27.525],[1.391,28.785],[0.608,4.602],[42.671,-3.275]],"o":[[0.808,5.736],[2.251,24.762],[5.172,30.786],[0,0],[-0.218,-4.512],[0,0],[-33.501,2.571]],"v":[[79.2,-46.36],[84.434,-18.331],[91.955,44.096],[157.821,30.381],[159.169,-13.797],[157.931,-27.545],[126.056,33.44]],"c":true}]},{"t":98,"s":[{"i":[[18.227,70.013],[-0.955,-4.807],[-5.174,-30.8],[1.97,27.525],[2.796,28.747],[0.833,4.577],[42.671,-3.275]],"o":[[1.422,5.679],[4.897,24.645],[5.172,30.786],[0,0],[-0.438,-4.506],[0,0],[-33.501,2.571]],"v":[[72.743,-42.351],[80.985,-14.74],[91.955,44.096],[157.821,30.381],[156.339,-15.374],[154.428,-29.076],[126.056,33.44]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.86274510622,0.690196096897,0.498039215803,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[-1.514,-7.28],[0.061,1.65],[-9.227,-21.206],[-3.298,-2.59],[0,0],[5.097,11.596],[0,0],[-8.843,-15.225],[-3.241,-8.911],[-0.236,1.029],[0,0],[0,0],[-11.324,-21.096],[-1.026,-3.12],[0,0],[0,0],[-0.359,-0.5],[3.452,0.229],[12.678,8.654],[0.502,-7.28],[8.704,-0.38],[-1.241,-12.13],[3.207,-9.614]],"o":[[0.581,-1.63],[-0.388,-10.39],[9.825,22.58],[4.341,3.409],[-2.102,-11.65],[-5.095,-11.59],[3.696,-18],[7.987,13.751],[3.244,8.92],[0.237,-1.03],[-3.057,-15.14],[0.983,-11.32],[13.14,24.479],[0.902,2.742],[0,0],[-1.188,-8.907],[-4.844,-11.84],[0,0],[-9.537,-6.51],[0,0],[-8.698,0.38],[0,0],[-1.392,4.179]],"v":[[64.06,-73.479],[64.9,-78.479],[85.959,-77.223],[102.23,-39.658],[106.399,-44.978],[89.149,-87.81],[75.586,-103.328],[99.915,-99.538],[122.397,-57.039],[129.968,-54.119],[129.502,-57.959],[107.314,-106.568],[119.816,-94.129],[151.54,-37.516],[151.418,-38.881],[142.579,-54.608],[146.257,-53.662],[138.301,-76.838],[111.097,-121.789],[103.118,-115.807],[86.149,-125.279],[73.354,-101.608],[63.027,-91.299]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6,"s":[{"i":[[-1.514,-7.28],[0.061,1.65],[-9.227,-21.206],[-3.298,-2.59],[0,0],[5.097,11.596],[0,0],[-8.843,-15.225],[-3.241,-8.911],[-0.236,1.029],[0,0],[0,0],[-11.324,-21.096],[-1.026,-3.12],[0,0],[0,0],[-0.359,-0.5],[3.452,0.229],[12.678,8.654],[0.502,-7.28],[8.704,-0.38],[-1.241,-12.13],[3.207,-9.614]],"o":[[0.581,-1.63],[-0.388,-10.39],[9.825,22.58],[4.341,3.409],[-2.102,-11.65],[-5.095,-11.59],[3.696,-18],[7.987,13.751],[3.244,8.92],[0.237,-1.03],[-3.057,-15.14],[0.983,-11.32],[13.14,24.479],[0.902,2.742],[0,0],[-1.188,-8.907],[-4.844,-11.84],[0,0],[-9.537,-6.51],[0,0],[-8.698,0.38],[0,0],[-1.392,4.179]],"v":[[64.06,-73.479],[64.9,-78.479],[85.959,-77.223],[102.23,-39.658],[106.399,-44.978],[89.149,-87.81],[75.586,-103.328],[99.915,-99.538],[122.397,-57.039],[129.968,-54.119],[129.502,-57.959],[107.314,-106.568],[119.816,-94.129],[151.54,-37.516],[151.418,-38.881],[142.579,-54.608],[146.257,-53.662],[138.301,-76.838],[111.097,-121.789],[103.118,-115.807],[86.149,-125.279],[73.354,-101.608],[63.027,-91.299]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":24,"s":[{"i":[[-0.732,-7.321],[-0.111,1.63],[-6.871,-21.828],[-2.976,-2.892],[0,0],[3.808,11.942],[0,0],[-7.116,-15.903],[-2.261,-9.106],[-0.339,0.988],[0,0],[0,0],[-8.946,-21.939],[-0.685,-3.177],[0,0],[0,0],[-0.301,-0.529],[3.373,0.585],[11.574,9.836],[1.253,-7.111],[8.605,0.533],[0.042,-12.066],[4.156,-9.127]],"o":[[0.742,-1.543],[0.701,-10.264],[7.316,23.242],[3.917,3.807],[-0.855,-11.683],[-3.807,-11.936],[5.512,-17.328],[6.427,14.363],[2.263,9.115],[0.34,-0.989],[-1.431,-15.217],[2.147,-11.037],[10.38,25.457],[0.602,2.792],[0,0],[-0.241,-8.888],[-3.533,-12.155],[0,0],[-8.707,-7.399],[0,0],[-8.598,-0.532],[0,0],[-1.805,3.967]],"v":[[73.898,-77.895],[75.245,-82.728],[95.837,-79.298],[107.935,-40.639],[112.592,-45.44],[100.078,-89.384],[88.349,-106.067],[111.894,-99.803],[129.59,-55.641],[136.736,-51.979],[136.677,-55.807],[119.907,-105.95],[130.914,-92.407],[156.234,-33.395],[156.257,-34.75],[149.197,-51.147],[152.717,-49.833],[147.302,-73.467],[125.215,-120.534],[116.74,-115.479],[101.029,-126.567],[85.973,-104.607],[74.737,-95.538]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[-2.11,-7.28],[0.08,1.65],[-12.857,-21.206],[-4.596,-2.59],[0,0],[7.09,11.6],[0,0],[-12.323,-15.225],[-4.52,-8.91],[-0.32,1.03],[0,0],[0,0],[-15.78,-21.096],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[10.24,-0.71],[17.66,8.66],[0.7,-7.28],[12.13,-0.37],[-1.73,-12.13],[5.13,-13.54]],"o":[[0.81,-1.63],[-0.54,-10.39],[13.69,22.58],[6.049,3.409],[-2.93,-11.65],[-7.1,-11.59],[5.15,-18],[11.13,13.751],[4.52,8.92],[0.33,-1.03],[-4.26,-15.14],[1.37,-11.32],[18.31,24.479],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-13.29,-6.51],[0,0],[-12.12,0.38],[0,0],[-1.61,4.25]],"v":[[26.173,-69.753],[27.343,-74.753],[48.083,-70.753],[68.653,-33.843],[74.463,-39.163],[54.034,-80.303],[44.824,-98.643],[74.463,-95.213],[98.713,-51.333],[109.264,-48.413],[108.614,-52.253],[84.773,-102.243],[111.373,-92.133],[140.114,-32.473],[147.793,-35.753],[142.653,-52.793],[159.744,-55.513],[133.864,-74.753],[99.224,-119.793],[77.043,-110.433],[56.954,-121.553],[41.713,-96.923],[24.733,-87.573]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":60,"s":[{"i":[[-2.11,-7.28],[0.08,1.65],[-12.857,-21.206],[-4.596,-2.59],[0,0],[7.09,11.6],[0,0],[-12.323,-15.225],[-4.52,-8.91],[-0.32,1.03],[0,0],[0,0],[-15.78,-21.096],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[10.24,-0.71],[17.66,8.66],[0.7,-7.28],[12.13,-0.37],[-1.73,-12.13],[5.13,-13.54]],"o":[[0.81,-1.63],[-0.54,-10.39],[13.69,22.58],[6.049,3.409],[-2.93,-11.65],[-7.1,-11.59],[5.15,-18],[11.13,13.751],[4.52,8.92],[0.33,-1.03],[-4.26,-15.14],[1.37,-11.32],[18.31,24.479],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-13.29,-6.51],[0,0],[-12.12,0.38],[0,0],[-1.61,4.25]],"v":[[26.173,-69.753],[27.343,-74.753],[48.083,-70.753],[68.653,-33.843],[74.463,-39.163],[54.034,-80.303],[44.824,-98.643],[74.463,-95.213],[98.713,-51.333],[109.264,-48.413],[108.614,-52.253],[84.773,-102.243],[111.373,-92.133],[140.114,-32.473],[147.793,-35.753],[142.653,-52.793],[159.744,-55.513],[133.864,-74.753],[99.224,-119.793],[77.043,-110.433],[56.954,-121.553],[41.713,-96.923],[24.733,-87.573]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":80,"s":[{"i":[[-0.732,-7.321],[-0.111,1.63],[-6.871,-21.828],[-2.976,-2.892],[0,0],[3.808,11.942],[0,0],[-7.116,-15.903],[-2.261,-9.106],[-0.339,0.988],[0,0],[0,0],[-8.946,-21.939],[-0.685,-3.177],[0,0],[0,0],[-0.301,-0.529],[3.373,0.585],[11.574,9.836],[1.253,-7.111],[8.605,0.533],[0.042,-12.066],[4.156,-9.127]],"o":[[0.742,-1.543],[0.701,-10.264],[7.316,23.242],[3.917,3.807],[-0.855,-11.683],[-3.807,-11.936],[5.512,-17.328],[6.427,14.363],[2.263,9.115],[0.34,-0.989],[-1.431,-15.217],[2.147,-11.037],[10.38,25.457],[0.602,2.792],[0,0],[-0.241,-8.888],[-3.533,-12.155],[0,0],[-8.707,-7.399],[0,0],[-8.598,-0.532],[0,0],[-1.805,3.967]],"v":[[73.898,-77.895],[75.245,-82.728],[95.837,-79.298],[107.935,-40.639],[112.592,-45.44],[100.078,-89.384],[88.349,-106.067],[111.894,-99.803],[129.59,-55.641],[136.736,-51.979],[136.677,-55.807],[119.907,-105.95],[130.914,-92.407],[156.234,-33.395],[156.257,-34.75],[149.197,-51.147],[152.717,-49.833],[147.302,-73.467],[125.215,-120.534],[116.74,-115.479],[101.029,-126.567],[85.973,-104.607],[74.737,-95.538]],"c":true}]},{"t":98,"s":[{"i":[[-1.514,-7.28],[0.061,1.65],[-9.227,-21.206],[-3.298,-2.59],[0,0],[5.097,11.596],[0,0],[-8.843,-15.225],[-3.241,-8.911],[-0.236,1.029],[0,0],[0,0],[-11.324,-21.096],[-1.026,-3.12],[0,0],[0,0],[-0.359,-0.5],[3.452,0.229],[12.678,8.654],[0.502,-7.28],[8.704,-0.38],[-1.241,-12.13],[3.207,-9.614]],"o":[[0.581,-1.63],[-0.388,-10.39],[9.825,22.58],[4.341,3.409],[-2.102,-11.65],[-5.095,-11.59],[3.696,-18],[7.987,13.751],[3.244,8.92],[0.237,-1.03],[-3.057,-15.14],[0.983,-11.32],[13.14,24.479],[0.902,2.742],[0,0],[-1.188,-8.907],[-4.844,-11.84],[0,0],[-9.537,-6.51],[0,0],[-8.698,0.38],[0,0],[-1.392,4.179]],"v":[[64.06,-73.479],[64.9,-78.479],[85.959,-77.223],[102.23,-39.658],[106.399,-44.978],[89.149,-87.81],[75.586,-103.328],[99.915,-99.538],[122.397,-57.039],[129.968,-54.119],[129.502,-57.959],[107.314,-106.568],[119.816,-94.129],[151.54,-37.516],[151.418,-38.881],[142.579,-54.608],[146.257,-53.662],[138.301,-76.838],[111.097,-121.789],[103.118,-115.807],[86.149,-125.279],[73.354,-101.608],[63.027,-91.299]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.988235294819,0.890196084976,0.780392169952,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[1.676,27.483],[2.83,28.75],[3.402,5.465],[12.679,8.661],[0.497,-7.275],[8.701,-0.373],[-1.243,-12.125],[3.306,-9.58],[-4.13,-20.458],[-5.598,-30.564]],"o":[[0,0],[-2.762,-28.061],[0,0],[-9.537,-6.514],[0,0],[-8.701,0.373],[0,0],[-4.33,12.558],[4.971,24.626],[5.598,30.564]],"v":[[158.002,30.408],[156.721,-15.376],[138.158,-76.84],[110.861,-121.787],[102.888,-115.812],[85.917,-125.277],[73.12,-101.612],[62.796,-91.3],[80.13,-14.627],[91.476,44.341]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6,"s":[{"i":[[1.676,27.483],[2.83,28.75],[3.402,5.465],[12.679,8.661],[0.497,-7.275],[8.701,-0.373],[-1.243,-12.125],[3.306,-9.58],[-4.13,-20.458],[-5.598,-30.564]],"o":[[0,0],[-2.762,-28.061],[0,0],[-9.537,-6.514],[0,0],[-8.701,0.373],[0,0],[-4.33,12.558],[4.971,24.626],[5.598,30.564]],"v":[[158.002,30.408],[156.721,-15.376],[138.158,-76.84],[110.861,-121.787],[102.888,-115.812],[85.917,-125.277],[73.12,-101.612],[62.796,-91.3],[80.13,-14.627],[91.476,44.341]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":24,"s":[{"i":[[1.676,27.483],[1.424,28.79],[2.778,5.732],[11.575,9.843],[1.247,-7.107],[8.601,0.539],[0.04,-12.061],[4.25,-9.083],[-1.933,-20.561],[-5.598,-30.564]],"o":[[0,0],[-1.39,-28.1],[0,0],[-8.706,-7.403],[0,0],[-8.601,-0.539],[0,0],[-5.569,11.907],[2.327,24.75],[5.598,30.564]],"v":[[158.002,30.408],[159.55,-13.781],[147.162,-73.484],[124.983,-120.557],[116.515,-115.508],[100.8,-126.589],[85.743,-104.635],[74.51,-95.563],[83.581,-18.309],[91.476,44.341]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[20.093,-1.386],[17.668,8.661],[0.693,-7.275],[12.125,-0.373],[-1.732,-12.125],[5.123,-13.539],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-13.289,-6.514],[0,0],[-12.125,0.373],[0,0],[-4.85,12.818],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[133.538,-74.755],[98.895,-119.792],[76.723,-110.438],[56.63,-121.551],[41.387,-96.927],[24.412,-87.574],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":60,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[20.093,-1.386],[17.668,8.661],[0.693,-7.275],[12.125,-0.373],[-1.732,-12.125],[5.123,-13.539],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-13.289,-6.514],[0,0],[-12.125,0.373],[0,0],[-4.85,12.818],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[133.538,-74.755],[98.895,-119.792],[76.723,-110.438],[56.63,-121.551],[41.387,-96.927],[24.412,-87.574],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":80,"s":[{"i":[[1.676,27.483],[1.424,28.79],[2.778,5.732],[11.575,9.843],[1.247,-7.107],[8.601,0.539],[0.04,-12.061],[4.25,-9.083],[-1.933,-20.561],[-5.598,-30.564]],"o":[[0,0],[-1.39,-28.099],[0,0],[-8.706,-7.403],[0,0],[-8.601,-0.539],[0,0],[-5.569,11.907],[2.327,24.75],[5.598,30.564]],"v":[[158.002,30.408],[159.55,-13.781],[147.162,-73.484],[124.983,-120.557],[116.515,-115.508],[100.8,-126.589],[85.743,-104.635],[74.51,-95.563],[83.581,-18.309],[91.476,44.341]],"c":true}]},{"t":98,"s":[{"i":[[1.676,27.483],[2.83,28.75],[3.402,5.465],[12.679,8.661],[0.497,-7.275],[8.701,-0.373],[-1.243,-12.125],[3.306,-9.58],[-4.13,-20.458],[-5.598,-30.564]],"o":[[0,0],[-2.762,-28.061],[0,0],[-9.537,-6.514],[0,0],[-8.701,0.373],[0,0],[-4.33,12.558],[4.971,24.626],[5.598,30.564]],"v":[[158.002,30.408],[156.721,-15.376],[138.158,-76.84],[110.861,-121.787],[102.888,-115.812],[85.917,-125.277],[73.12,-101.612],[62.796,-91.3],[80.13,-14.627],[91.476,44.341]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.913725495338,0.78823530674,0.647058844566,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"refId":"comp_0","sr":1,"ks":{"p":{"a":0,"k":[256,256,0]},"a":{"a":0,"k":[256,232,0]}},"ao":0,"w":512,"h":464,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":3,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":0,"k":[256,256,0]},"s":{"a":0,"k":[95,95,100]}},"ao":0,"ip":0,"op":98,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":3,"parent":10,"sr":1,"ks":{"o":{"a":0,"k":0}},"ao":0,"ip":0,"op":98,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":23,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":40,"s":[20]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":60,"s":[20]},{"t":72,"s":[0]}]},"p":{"a":0,"k":[341.929,268.75,0]},"a":{"a":0,"k":[87.294,20.789,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":23,"s":[{"i":[[-9.544,-45.525],[-2.313,-18.001],[-22.887,-17.421],[-2.092,-10.973],[24.022,-19.266],[-14.52,12.287],[0.354,6.457],[-2.768,5.81],[-0.798,2.021],[3.941,28.757],[20.087,-1.394],[17.672,8.669],[0.697,-7.275],[12.125,-0.374],[-1.728,-12.125]],"o":[[2.508,11.963],[4.19,32.601],[6.982,5.183],[1.516,7.952],[29.779,-13.028],[-5.103,-21.33],[-0.636,-11.388],[1.375,-1.91],[0,0],[-3.85,-28.06],[0,0],[-13.287,-6.507],[0,0],[-12.125,0.374],[0,0]],"v":[[65.863,-40.638],[77.433,5.71],[111.84,88],[128.118,112.846],[105.181,146.531],[146.032,119.066],[182.157,92.577],[187.704,65.73],[190.988,59.839],[198.132,12.723],[159.291,-46.509],[124.644,-91.553],[102.475,-82.197],[100.203,-100.544],[84.965,-75.92]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[-12.801,-44.719],[-3.605,-17.788],[-24.083,-15.726],[-2.877,-10.794],[30.317,-18.567],[-14.52,12.287],[0.825,6.413],[-2.342,5.994],[-0.65,2.073],[6.008,28.397],[19.934,-2.839],[18.256,7.361],[0.171,-7.306],[12.067,-1.247],[-2.597,-11.969]],"o":[[3.364,11.751],[6.529,32.214],[7.337,4.667],[2.085,7.822],[32.946,-6.739],[-5.103,-21.33],[-1.456,-11.312],[1.233,-2.004],[0,0],[-5.862,-27.709],[0,0],[-13.721,-5.533],[0,0],[-12.067,1.247],[0,0]],"v":[[12.775,-39.308],[27.656,6.086],[67.904,85.681],[85.931,109.29],[51.49,160.266],[147.472,120.625],[138.368,85.178],[141.966,58.001],[144.817,51.889],[148.546,4.38],[105.537,-51.897],[67.733,-94.328],[46.297,-83.398],[35.29,-89.718],[29.285,-75.875]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":60,"s":[{"i":[[-12.801,-44.719],[-3.605,-17.788],[-24.083,-15.726],[-2.877,-10.794],[30.317,-18.567],[-14.52,12.287],[0.825,6.413],[-2.342,5.994],[-0.65,2.073],[6.008,28.397],[19.934,-2.839],[18.256,7.361],[0.171,-7.306],[12.067,-1.247],[-2.597,-11.969]],"o":[[3.364,11.751],[6.529,32.214],[7.337,4.667],[2.085,7.822],[32.946,-6.739],[-5.103,-21.33],[-1.456,-11.312],[1.233,-2.004],[0,0],[-5.862,-27.709],[0,0],[-13.721,-5.533],[0,0],[-12.067,1.247],[0,0]],"v":[[12.775,-39.308],[27.656,6.086],[67.904,85.681],[85.931,109.29],[51.49,160.266],[147.472,120.625],[138.368,85.178],[141.966,58.001],[144.817,51.889],[148.546,4.38],[105.537,-51.897],[67.733,-94.328],[46.297,-83.398],[35.29,-89.718],[29.285,-75.875]],"c":true}]},{"t":72,"s":[{"i":[[-9.544,-45.525],[-2.313,-18.001],[-22.887,-17.421],[-2.092,-10.973],[24.022,-19.266],[-14.52,12.287],[0.354,6.457],[-2.768,5.81],[-0.798,2.021],[3.941,28.757],[20.087,-1.394],[17.672,8.669],[0.697,-7.275],[12.125,-0.374],[-1.728,-12.125]],"o":[[2.508,11.963],[4.19,32.601],[6.982,5.183],[1.516,7.952],[29.779,-13.028],[-5.103,-21.33],[-0.636,-11.388],[1.375,-1.91],[0,0],[-3.85,-28.06],[0,0],[-13.287,-6.507],[0,0],[-12.125,0.374],[0,0]],"v":[[65.863,-40.638],[77.433,5.71],[111.84,88],[128.118,112.846],[105.181,146.531],[146.032,119.066],[182.157,92.577],[187.704,65.73],[190.988,59.839],[198.132,12.723],[159.291,-46.509],[124.644,-91.553],[102.475,-82.197],[100.203,-100.544],[84.965,-75.92]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":23,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":40,"s":[20]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":60,"s":[20]},{"t":72,"s":[0]}]},"p":{"a":0,"k":[178.129,267.75,0]},"a":{"a":0,"k":[87.294,20.789,0]},"s":{"a":0,"k":[-100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":23,"s":[{"i":[[-9.544,-45.525],[-2.313,-18.001],[-22.887,-17.421],[-2.092,-10.973],[24.022,-19.266],[-14.52,12.287],[0.354,6.457],[-2.768,5.81],[-0.798,2.021],[3.941,28.757],[20.087,-1.394],[17.672,8.669],[0.697,-7.275],[12.125,-0.374],[-1.728,-12.125]],"o":[[2.508,11.963],[4.19,32.601],[6.982,5.183],[1.516,7.952],[29.779,-13.028],[-5.103,-21.33],[-0.636,-11.388],[1.375,-1.91],[0,0],[-3.85,-28.06],[0,0],[-13.287,-6.507],[0,0],[-12.125,0.374],[0,0]],"v":[[65.863,-40.638],[77.433,5.71],[111.84,88],[128.118,112.846],[105.181,146.531],[146.032,119.066],[182.157,92.577],[187.704,65.73],[190.988,59.839],[198.132,12.723],[159.291,-46.509],[124.644,-91.553],[102.475,-82.197],[100.203,-100.544],[84.965,-75.92]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[-12.801,-44.719],[-3.605,-17.788],[-24.083,-15.726],[-2.877,-10.794],[30.317,-18.567],[-14.52,12.287],[0.825,6.413],[-2.342,5.994],[-0.65,2.073],[6.008,28.397],[19.934,-2.839],[18.256,7.361],[0.171,-7.306],[12.067,-1.247],[-2.597,-11.969]],"o":[[3.364,11.751],[6.529,32.214],[7.337,4.667],[2.085,7.822],[32.946,-6.739],[-5.103,-21.33],[-1.456,-11.312],[1.233,-2.004],[0,0],[-5.862,-27.709],[0,0],[-13.721,-5.533],[0,0],[-12.067,1.247],[0,0]],"v":[[12.775,-39.308],[27.656,6.086],[67.904,85.681],[85.931,109.29],[51.49,160.266],[147.472,120.625],[138.368,85.178],[141.966,58.001],[144.817,51.889],[148.546,4.38],[105.537,-51.897],[67.733,-94.328],[46.297,-83.398],[35.29,-89.718],[29.285,-75.875]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":60,"s":[{"i":[[-12.801,-44.719],[-3.605,-17.788],[-24.083,-15.726],[-2.877,-10.794],[30.317,-18.567],[-14.52,12.287],[0.825,6.413],[-2.342,5.994],[-0.65,2.073],[6.008,28.397],[19.934,-2.839],[18.256,7.361],[0.171,-7.306],[12.067,-1.247],[-2.597,-11.969]],"o":[[3.364,11.751],[6.529,32.214],[7.337,4.667],[2.085,7.822],[32.946,-6.739],[-5.103,-21.33],[-1.456,-11.312],[1.233,-2.004],[0,0],[-5.862,-27.709],[0,0],[-13.721,-5.533],[0,0],[-12.067,1.247],[0,0]],"v":[[12.775,-39.308],[27.656,6.086],[67.904,85.681],[85.931,109.29],[51.49,160.266],[147.472,120.625],[138.368,85.178],[141.966,58.001],[144.817,51.889],[148.546,4.38],[105.537,-51.897],[67.733,-94.328],[46.297,-83.398],[35.29,-89.718],[29.285,-75.875]],"c":true}]},{"t":72,"s":[{"i":[[-9.544,-45.525],[-2.313,-18.001],[-22.887,-17.421],[-2.092,-10.973],[24.022,-19.266],[-14.52,12.287],[0.354,6.457],[-2.768,5.81],[-0.798,2.021],[3.941,28.757],[20.087,-1.394],[17.672,8.669],[0.697,-7.275],[12.125,-0.374],[-1.728,-12.125]],"o":[[2.508,11.963],[4.19,32.601],[6.982,5.183],[1.516,7.952],[29.779,-13.028],[-5.103,-21.33],[-0.636,-11.388],[1.375,-1.91],[0,0],[-3.85,-28.06],[0,0],[-13.287,-6.507],[0,0],[-12.125,0.374],[0,0]],"v":[[65.863,-40.638],[77.433,5.71],[111.84,88],[128.118,112.846],[105.181,146.531],[146.032,119.066],[182.157,92.577],[187.704,65.73],[190.988,59.839],[198.132,12.723],[159.291,-46.509],[124.644,-91.553],[102.475,-82.197],[100.203,-100.544],[84.965,-75.92]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"parent":3,"sr":1,"ks":{"p":{"a":0,"k":[-63.783,7.296,0]},"a":{"a":0,"k":[-63.783,7.296,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":19,"s":[{"i":[[0,-11.871],[9.986,0],[0,7.079],[-9.986,0]],"o":[[0,7.079],[-9.986,0],[0,-11.357],[9.986,0]],"v":[[-46.701,12.524],[-63.783,33.272],[-80.865,12.524],[-63.783,11.875]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":26,"s":[{"i":[[0,-0.618],[4.754,0],[0,2.194],[-4.754,0]],"o":[[0,2.194],[-4.754,0],[0,-1.118],[4.754,0]],"v":[[-50.556,14.024],[-63.816,16.897],[-76.57,13.649],[-63.82,15.407]],"c":true}]},{"i":{"x":0.67,"y":1},"o":{"x":0.66,"y":0},"t":70,"s":[{"i":[[0,-0.618],[4.754,0],[0,2.194],[-4.754,0]],"o":[[0,2.194],[-4.754,0],[0,-1.118],[4.754,0]],"v":[[-50.556,14.024],[-63.816,16.897],[-76.57,13.649],[-63.82,15.407]],"c":true}]},{"t":77,"s":[{"i":[[0,-11.871],[9.986,0],[0,7.079],[-9.986,0]],"o":[[0,7.079],[-9.986,0],[0,-11.357],[9.986,0]],"v":[[-46.701,12.524],[-63.783,33.272],[-80.865,12.524],[-63.783,11.875]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.282352954149,0.286274522543,0.286274522543,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":19,"s":[{"i":[[0,-3.629],[7.358,0],[0,5.828],[-7.358,0]],"o":[[0,5.701],[-7.358,0],[0,-3.63],[7.358,0]],"v":[[-50.461,-12.676],[-63.783,-11.535],[-77.106,-12.676],[-63.783,-23.45]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":26,"s":[{"i":[[0,0.161],[7.358,0],[0,-0.258],[-7.358,0]],"o":[[0,-0.253],[-7.358,0],[0,0.161],[7.358,0]],"v":[[-50.31,11.585],[-63.766,14.468],[-77.067,11.366],[-63.766,14.441]],"c":true}]},{"i":{"x":0.67,"y":1},"o":{"x":0.66,"y":0},"t":70,"s":[{"i":[[0,0.161],[7.358,0],[0,-0.258],[-7.358,0]],"o":[[0,-0.253],[-7.358,0],[0,0.161],[7.358,0]],"v":[[-50.31,11.585],[-63.766,14.468],[-77.067,11.366],[-63.766,14.441]],"c":true}]},{"t":77,"s":[{"i":[[0,-3.629],[7.358,0],[0,5.828],[-7.358,0]],"o":[[0,5.701],[-7.358,0],[0,-3.63],[7.358,0]],"v":[[-50.461,-12.676],[-63.783,-11.535],[-77.106,-12.676],[-63.783,-23.45]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.960784316063,0.960784316063,0.960784316063,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":19,"s":[{"i":[[0,-19.516],[13.393,0],[0,19.516],[-13.393,0]],"o":[[0,19.516],[-13.393,0],[0,-19.516],[13.393,0]],"v":[[-39.533,4.77],[-63.783,40.106],[-88.033,4.77],[-63.783,-30.566]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":26,"s":[{"i":[[0,-5.552],[13.393,0],[0,5.198],[-13.393,0]],"o":[[0,6.698],[-13.393,0],[0,-5.427],[13.393,0]],"v":[[-39.533,4.77],[-63.758,17.731],[-88.033,4.77],[-63.758,12.934]],"c":true}]},{"i":{"x":0.67,"y":1},"o":{"x":0.66,"y":0},"t":70,"s":[{"i":[[0,-5.552],[13.393,0],[0,5.198],[-13.393,0]],"o":[[0,6.698],[-13.393,0],[0,-5.427],[13.393,0]],"v":[[-39.533,4.77],[-63.758,17.731],[-88.033,4.77],[-63.758,12.934]],"c":true}]},{"t":77,"s":[{"i":[[0,-19.516],[13.393,0],[0,19.516],[-13.393,0]],"o":[[0,19.516],[-13.393,0],[0,-19.516],[13.393,0]],"v":[[-39.533,4.77],[-63.783,40.106],[-88.033,4.77],[-63.783,-30.566]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.066666670144,0.066666670144,0.066666670144,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":19,"s":[{"i":[[0,-19.516],[13.393,0],[0,19.516],[-13.393,0]],"o":[[0,19.516],[-13.393,0],[0,-19.516],[13.393,0]],"v":[[-38.523,9.822],[-63.783,45.158],[-89.044,9.822],[-63.783,-25.514]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":26,"s":[{"i":[[0,-10.354],[13.393,0],[0,4.146],[-13.393,0]],"o":[[0,6.771],[-13.393,0],[0,-11.604],[13.393,0]],"v":[[-38.545,7.822],[-63.816,19.658],[-89.088,8.322],[-63.816,13.986]],"c":true}]},{"i":{"x":0.67,"y":1},"o":{"x":0.66,"y":0},"t":70,"s":[{"i":[[0,-10.354],[13.393,0],[0,4.146],[-13.393,0]],"o":[[0,6.771],[-13.393,0],[0,-11.604],[13.393,0]],"v":[[-38.545,7.822],[-63.816,19.658],[-89.088,8.322],[-63.816,13.986]],"c":true}]},{"t":77,"s":[{"i":[[0,-19.516],[13.393,0],[0,19.516],[-13.393,0]],"o":[[0,19.516],[-13.393,0],[0,-19.516],[13.393,0]],"v":[[-38.523,9.822],[-63.783,45.158],[-89.044,9.822],[-63.783,-25.514]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.749019622803,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":98,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"parent":3,"sr":1,"ks":{"p":{"a":0,"k":[73.842,7.296,0]},"a":{"a":0,"k":[-63.783,7.296,0]},"s":{"a":0,"k":[-100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":19,"s":[{"i":[[0,-11.871],[9.986,0],[0,7.079],[-9.986,0]],"o":[[0,7.079],[-9.986,0],[0,-11.357],[9.986,0]],"v":[[-46.701,12.524],[-63.783,33.272],[-80.865,12.524],[-63.783,11.875]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":26,"s":[{"i":[[0,-0.618],[4.754,0],[0,2.194],[-4.754,0]],"o":[[0,2.194],[-4.754,0],[0,-1.118],[4.754,0]],"v":[[-50.556,14.024],[-63.816,16.897],[-76.57,13.649],[-63.82,15.407]],"c":true}]},{"i":{"x":0.67,"y":1},"o":{"x":0.66,"y":0},"t":70,"s":[{"i":[[0,-0.618],[4.754,0],[0,2.194],[-4.754,0]],"o":[[0,2.194],[-4.754,0],[0,-1.118],[4.754,0]],"v":[[-50.556,14.024],[-63.816,16.897],[-76.57,13.649],[-63.82,15.407]],"c":true}]},{"t":77,"s":[{"i":[[0,-11.871],[9.986,0],[0,7.079],[-9.986,0]],"o":[[0,7.079],[-9.986,0],[0,-11.357],[9.986,0]],"v":[[-46.701,12.524],[-63.783,33.272],[-80.865,12.524],[-63.783,11.875]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.282352954149,0.286274522543,0.286274522543,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":19,"s":[{"i":[[0,-3.629],[7.358,0],[0,5.828],[-7.358,0]],"o":[[0,5.701],[-7.358,0],[0,-3.63],[7.358,0]],"v":[[-50.461,-12.676],[-63.783,-11.535],[-77.106,-12.676],[-63.783,-23.45]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":26,"s":[{"i":[[0,0.161],[7.358,0],[0,-0.258],[-7.358,0]],"o":[[0,-0.253],[-7.358,0],[0,0.161],[7.358,0]],"v":[[-50.31,11.585],[-63.766,14.468],[-77.067,11.366],[-63.766,14.441]],"c":true}]},{"i":{"x":0.67,"y":1},"o":{"x":0.66,"y":0},"t":70,"s":[{"i":[[0,0.161],[7.358,0],[0,-0.258],[-7.358,0]],"o":[[0,-0.253],[-7.358,0],[0,0.161],[7.358,0]],"v":[[-50.31,11.585],[-63.766,14.468],[-77.067,11.366],[-63.766,14.441]],"c":true}]},{"t":77,"s":[{"i":[[0,-3.629],[7.358,0],[0,5.828],[-7.358,0]],"o":[[0,5.701],[-7.358,0],[0,-3.63],[7.358,0]],"v":[[-50.461,-12.676],[-63.783,-11.535],[-77.106,-12.676],[-63.783,-23.45]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.960784316063,0.960784316063,0.960784316063,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":19,"s":[{"i":[[0,-19.516],[13.393,0],[0,19.516],[-13.393,0]],"o":[[0,19.516],[-13.393,0],[0,-19.516],[13.393,0]],"v":[[-39.533,4.77],[-63.783,40.106],[-88.033,4.77],[-63.783,-30.566]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":26,"s":[{"i":[[0,-5.552],[13.393,0],[0,5.198],[-13.393,0]],"o":[[0,6.698],[-13.393,0],[0,-5.427],[13.393,0]],"v":[[-39.533,4.77],[-63.758,17.731],[-88.033,4.77],[-63.758,12.934]],"c":true}]},{"i":{"x":0.67,"y":1},"o":{"x":0.66,"y":0},"t":70,"s":[{"i":[[0,-5.552],[13.393,0],[0,5.198],[-13.393,0]],"o":[[0,6.698],[-13.393,0],[0,-5.427],[13.393,0]],"v":[[-39.533,4.77],[-63.758,17.731],[-88.033,4.77],[-63.758,12.934]],"c":true}]},{"t":77,"s":[{"i":[[0,-19.516],[13.393,0],[0,19.516],[-13.393,0]],"o":[[0,19.516],[-13.393,0],[0,-19.516],[13.393,0]],"v":[[-39.533,4.77],[-63.783,40.106],[-88.033,4.77],[-63.783,-30.566]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.066666670144,0.066666670144,0.066666670144,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":19,"s":[{"i":[[0,-19.516],[13.393,0],[0,19.516],[-13.393,0]],"o":[[0,19.516],[-13.393,0],[0,-19.516],[13.393,0]],"v":[[-38.523,9.822],[-63.783,45.158],[-89.044,9.822],[-63.783,-25.514]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":26,"s":[{"i":[[0,-10.354],[13.393,0],[0,4.146],[-13.393,0]],"o":[[0,6.771],[-13.393,0],[0,-11.604],[13.393,0]],"v":[[-38.545,7.822],[-63.816,19.658],[-89.088,8.322],[-63.816,13.986]],"c":true}]},{"i":{"x":0.67,"y":1},"o":{"x":0.66,"y":0},"t":70,"s":[{"i":[[0,-10.354],[13.393,0],[0,4.146],[-13.393,0]],"o":[[0,6.771],[-13.393,0],[0,-11.604],[13.393,0]],"v":[[-38.545,7.822],[-63.816,19.658],[-89.088,8.322],[-63.816,13.986]],"c":true}]},{"t":77,"s":[{"i":[[0,-19.516],[13.393,0],[0,19.516],[-13.393,0]],"o":[[0,19.516],[-13.393,0],[0,-19.516],[13.393,0]],"v":[[-38.523,9.822],[-63.783,45.158],[-89.044,9.822],[-63.783,-25.514]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.749019622803,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":98,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"parent":3,"sr":1,"ks":{"p":{"a":0,"k":[5.883,50.25,0]},"a":{"a":0,"k":[5.883,50.25,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[2.511,-4.918],[0.213,-0.942],[-3.744,-1.911],[2.476,-4.893],[-0.478,0.936],[3.948,2.016]],"o":[[-0.469,0.919],[2.519,-4.85],[3.744,1.911],[0.643,-0.734],[2.511,-4.918],[-3.948,-2.016]],"v":[[13.327,44.758],[12.3,47.57],[24.125,43.208],[25.922,54.567],[27.623,52.056],[25.019,39.507]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.211764708161,0.086274512112,0.035294119269,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[2.509,-4.914],[-3.948,-2.015],[-2.509,4.914],[3.948,2.015]],"o":[[-2.509,4.914],[3.948,2.015],[2.509,-4.914],[-3.948,-2.015]],"v":[[13.326,44.758],[15.931,57.305],[27.621,52.056],[25.016,39.509]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.403921574354,0.266666680574,0.188235297799,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[3.93,-7.699],[-3.948,-2.015],[-2.812,4.747],[3.948,2.015]],"o":[[-2.509,4.914],[3.948,2.015],[4.225,-7.134],[-3.948,-2.015]],"v":[[12.111,46.986],[15.567,59.968],[27.169,55.043],[25.661,40.199]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.941176474094,0.847058832645,0.705882370472,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.511,-4.918],[-0.213,-0.942],[3.744,-1.911],[-2.476,-4.893],[0.478,0.936],[-3.948,2.016]],"o":[[0.469,0.919],[-2.519,-4.85],[-3.744,1.911],[-0.643,-0.734],[-2.511,-4.918],[3.948,-2.016]],"v":[[-1.485,44.758],[-0.457,47.57],[-12.282,43.208],[-14.08,54.567],[-15.78,52.056],[-13.177,39.507]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.211764708161,0.086274512112,0.035294119269,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.509,-4.914],[3.948,-2.015],[2.509,4.914],[-3.948,2.015]],"o":[[2.509,4.914],[-3.948,2.015],[-2.509,-4.914],[3.948,-2.015]],"v":[[-1.484,44.758],[-4.089,57.305],[-15.779,52.056],[-13.174,39.509]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.403921574354,0.266666680574,0.188235297799,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-3.93,-7.699],[3.948,-2.015],[2.812,4.747],[-3.948,2.015]],"o":[[2.509,4.914],[-3.948,2.015],[-4.225,-7.134],[3.948,-2.015]],"v":[[-0.269,46.986],[-3.725,59.968],[-15.327,55.043],[-13.818,40.199]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.941176474094,0.847058832645,0.705882370472,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[11.287,0.292],[3.048,-1.351],[3.153,1.398],[3.628,-0.094],[-0.105,-10.467],[-29.829,0],[-0.445,8.16]],"o":[[-3.628,-0.094],[-3.153,1.398],[-3.048,-1.351],[-11.287,0.292],[0.079,7.902],[29.532,0],[0.569,-10.452]],"v":[[23.934,29.849],[11.849,32.814],[-0.121,32.814],[-12.206,29.849],[-28.625,47.042],[5.864,70.656],[40.353,47.042]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.749019622803,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":98,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"parent":3,"sr":1,"ks":{"p":{"a":0,"k":[5.864,107.189,0]},"a":{"a":0,"k":[5.864,107.189,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":19,"s":[{"i":[[2.193,-4.476],[1.697,0.768],[11.863,-1.475],[12.691,0],[4.8,0.596],[2.647,-1.192],[-0.687,-2.577],[-2.567,1.122],[-12.216,-1.475],[-13.075,0],[-4.941,0.596],[-2.718,-1.192]],"o":[[0.697,-2.577],[-2.647,-1.192],[-4.789,0.596],[-12.701,0],[-11.852,-1.475],[-1.697,0.768],[-2.193,-4.476],[2.728,-1.192],[4.941,0.596],[13.075,0],[12.216,-1.475],[2.576,1.122]],"v":[[58.155,95.404],[56.912,90.109],[36.046,93.282],[5.865,95.192],[-24.327,93.282],[-45.182,90.109],[-46.435,95.394],[-46.718,86.128],[-25.226,89.301],[5.865,91.201],[36.956,89.301],[58.437,86.128]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":39,"s":[{"i":[[1.188,-2.439],[0.921,0.417],[6.452,0.59],[6.878,0],[2.613,-0.213],[1.434,-0.652],[-0.372,-1.404],[-1.391,0.611],[-6.645,0.566],[-7.086,0],[-2.685,-0.256],[-1.475,-0.645]],"o":[[0.378,-1.404],[-1.435,-0.65],[-2.605,-0.238],[-6.884,0],[-6.452,0.525],[-0.92,0.418],[-1.188,-2.439],[1.479,-0.65],[2.688,-0.229],[7.086,0],[6.639,0.632],[1.396,0.611]],"v":[[34.087,94.056],[33.413,91.171],[21.553,89.807],[5.926,89.257],[-9.991,89.703],[-21.919,91.171],[-22.598,94.051],[-22.751,89.003],[-10.911,87.679],[5.926,87.083],[22.498,87.794],[34.24,89.003]],"c":true}]},{"i":{"x":0.67,"y":1},"o":{"x":0.66,"y":0},"t":60,"s":[{"i":[[1.188,-2.439],[0.921,0.417],[6.452,0.59],[6.878,0],[2.613,-0.213],[1.434,-0.652],[-0.372,-1.404],[-1.391,0.611],[-6.645,0.566],[-7.086,0],[-2.685,-0.256],[-1.475,-0.645]],"o":[[0.378,-1.404],[-1.435,-0.65],[-2.605,-0.238],[-6.884,0],[-6.452,0.525],[-0.92,0.418],[-1.188,-2.439],[1.479,-0.65],[2.688,-0.229],[7.086,0],[6.639,0.632],[1.396,0.611]],"v":[[34.087,94.056],[33.413,91.171],[21.553,89.807],[5.926,89.257],[-9.991,89.703],[-21.919,91.171],[-22.598,94.051],[-22.751,89.003],[-10.911,87.679],[5.926,87.083],[22.498,87.794],[34.24,89.003]],"c":true}]},{"t":80,"s":[{"i":[[2.193,-4.476],[1.697,0.768],[11.863,-1.475],[12.691,0],[4.8,0.596],[2.647,-1.192],[-0.687,-2.577],[-2.567,1.122],[-12.216,-1.475],[-13.075,0],[-4.941,0.596],[-2.718,-1.192]],"o":[[0.697,-2.577],[-2.647,-1.192],[-4.789,0.596],[-12.701,0],[-11.852,-1.475],[-1.697,0.768],[-2.193,-4.476],[2.728,-1.192],[4.941,0.596],[13.075,0],[12.216,-1.475],[2.576,1.122]],"v":[[58.155,95.404],[56.912,90.109],[36.046,93.282],[5.865,95.192],[-24.327,93.282],[-45.182,90.109],[-46.435,95.394],[-46.718,86.128],[-25.226,89.301],[5.865,91.201],[36.956,89.301],[58.437,86.128]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.015686275437,0,0.003921568859,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":19,"s":[{"i":[[1.87,-5.25],[11.39,0],[9.21,5.82],[-5.92,2.3],[0,0],[-10.91,-4.15]],"o":[[-9.09,5.6],[-11.71,0],[-1.77,-5.25],[11,-4.29],[0,0],[5.82,2.21]],"v":[[37.739,116.517],[5.859,126.517],[-26.771,116.047],[-19.781,101.617],[5.509,103.267],[31.209,102.077]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":39,"s":[{"i":[[0.676,0],[6.173,0],[4.992,3.171],[-1.401,0],[0,0],[-6.229,-1.128]],"o":[[-4.927,3.051],[-6.347,0],[-0.236,0],[6.404,0],[0,0],[1.339,0.243]],"v":[[23.022,105.559],[5.744,111.007],[-11.941,105.116],[-8.151,106.691],[5.555,107.59],[19.484,106.941]],"c":true}]},{"i":{"x":0.67,"y":1},"o":{"x":0.66,"y":0},"t":60,"s":[{"i":[[0.676,0],[6.173,0],[4.992,3.171],[-1.401,0],[0,0],[-6.229,-1.128]],"o":[[-4.927,3.051],[-6.347,0],[-0.236,0],[6.404,0],[0,0],[1.339,0.243]],"v":[[23.022,105.559],[5.744,111.007],[-11.941,105.116],[-8.151,106.691],[5.555,107.59],[19.484,106.941]],"c":true}]},{"t":80,"s":[{"i":[[1.87,-5.25],[11.39,0],[9.21,5.82],[-5.92,2.3],[0,0],[-10.91,-4.15]],"o":[[-9.09,5.6],[-11.71,0],[-1.77,-5.25],[11,-4.29],[0,0],[5.82,2.21]],"v":[[37.739,116.517],[5.859,126.517],[-26.771,116.047],[-19.781,101.617],[5.509,103.267],[31.209,102.077]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.698039233685,0.274509817362,0.376470595598,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":19,"s":[{"i":[[3.69,1.615],[12.212,-1.472],[13.077,0],[4.939,0.595],[2.722,-1.191],[-4.613,-6.966],[-21.068,0],[-6.539,9.873]],"o":[[-2.722,-1.191],[-4.939,0.595],[-13.077,0],[-12.212,-1.472],[-3.69,1.615],[6.539,9.873],[21.068,0],[4.614,-6.966]],"v":[[58.441,86.126],[36.956,89.3],[5.864,91.203],[-25.229,89.3],[-46.713,86.126],[-42.811,101.598],[5.863,126.512],[54.538,101.598]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":39,"s":[{"i":[[2,0.88],[6.637,0.633],[7.087,0],[2.687,-0.229],[1.475,-0.649],[-2.5,-3.795],[-11.418,0],[-3.544,5.379]],"o":[[-1.475,-0.649],[-2.684,-0.256],[-7.087,0],[-6.643,0.567],[-2,0.88],[3.544,5.379],[11.418,0],[2.5,-3.795]],"v":[[34.242,89.001],[22.499,87.793],[5.925,87.084],[-10.913,87.679],[-22.749,89.001],[-20.634,97.431],[5.746,111.004],[32.127,97.431]],"c":true}]},{"i":{"x":0.67,"y":1},"o":{"x":0.66,"y":0},"t":60,"s":[{"i":[[2,0.88],[6.637,0.633],[7.087,0],[2.687,-0.229],[1.475,-0.649],[-2.5,-3.795],[-11.418,0],[-3.544,5.379]],"o":[[-1.475,-0.649],[-2.684,-0.256],[-7.087,0],[-6.643,0.567],[-2,0.88],[3.544,5.379],[11.418,0],[2.5,-3.795]],"v":[[34.242,89.001],[22.499,87.793],[5.925,87.084],[-10.913,87.679],[-22.749,89.001],[-20.634,97.431],[5.746,111.004],[32.127,97.431]],"c":true}]},{"t":80,"s":[{"i":[[3.69,1.615],[12.212,-1.472],[13.077,0],[4.939,0.595],[2.722,-1.191],[-4.613,-6.966],[-21.068,0],[-6.539,9.873]],"o":[[-2.722,-1.191],[-4.939,0.595],[-13.077,0],[-12.212,-1.472],[-3.69,1.615],[6.539,9.873],[21.068,0],[4.614,-6.966]],"v":[[58.441,86.126],[36.956,89.3],[5.864,91.203],[-25.229,89.3],[-46.713,86.126],[-42.811,101.598],[5.863,126.512],[54.538,101.598]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.247058823705,0.039215687662,0.141176477075,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":19,"s":[{"i":[[5.883,0.759],[12.676,-1.472],[13.573,0],[5.127,0.595],[2.946,-0.851],[-4.788,-6.966],[-21.868,0],[-6.787,9.873]],"o":[[-3.042,-0.392],[-5.126,0.595],[-13.574,0],[-12.676,-1.472],[-5.624,1.625],[6.787,9.873],[21.868,0],[4.789,-6.966]],"v":[[58.441,86.126],[38.137,93.341],[5.864,95.245],[-26.41,93.341],[-46.713,86.126],[-43.649,106.65],[5.863,132.575],[55.376,106.65]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":39,"s":[{"i":[[3.188,0.413],[6.882,0.687],[7.357,0],[2.786,-0.25],[1.597,-0.464],[-2.595,-3.795],[-11.852,0],[-3.679,5.379]],"o":[[-1.648,-0.214],[-2.783,-0.278],[-7.357,0],[-6.889,0.618],[-3.048,0.885],[3.678,5.379],[11.852,0],[2.595,-3.795]],"v":[[34.242,89.001],[22.653,90.081],[5.925,89.286],[-11.089,89.965],[-22.749,89.001],[-21.823,100.948],[5.733,115.682],[33.554,101.21]],"c":true}]},{"i":{"x":0.67,"y":1},"o":{"x":0.66,"y":0},"t":60,"s":[{"i":[[3.188,0.413],[6.882,0.687],[7.357,0],[2.786,-0.25],[1.597,-0.464],[-2.595,-3.795],[-11.852,0],[-3.679,5.379]],"o":[[-1.648,-0.214],[-2.783,-0.278],[-7.357,0],[-6.889,0.618],[-3.048,0.885],[3.678,5.379],[11.852,0],[2.595,-3.795]],"v":[[34.242,89.001],[22.653,90.081],[5.925,89.286],[-11.089,89.965],[-22.749,89.001],[-21.823,100.948],[5.733,115.682],[33.554,101.21]],"c":true}]},{"t":80,"s":[{"i":[[5.883,0.759],[12.676,-1.472],[13.573,0],[5.127,0.595],[2.946,-0.851],[-4.788,-6.966],[-21.868,0],[-6.787,9.873]],"o":[[-3.042,-0.392],[-5.126,0.595],[-13.574,0],[-12.676,-1.472],[-5.624,1.625],[6.787,9.873],[21.868,0],[4.789,-6.966]],"v":[[58.441,86.126],[38.137,93.341],[5.864,95.245],[-26.41,93.341],[-46.713,86.126],[-43.649,106.65],[5.863,132.575],[55.376,106.65]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.956862747669,0.913725495338,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":19,"s":[{"i":[[3.69,1.615],[12.212,-1.472],[13.077,0],[4.939,0.595],[2.722,-1.191],[-4.613,-6.966],[-21.068,0],[-6.539,9.873]],"o":[[-2.722,-1.191],[-4.939,0.595],[-13.077,0],[-12.212,-1.472],[-3.69,1.615],[6.539,9.873],[21.068,0],[4.614,-6.966]],"v":[[61.472,82.084],[36.956,85.258],[5.864,87.162],[-25.229,85.258],[-49.744,82.084],[-45.842,97.556],[5.863,122.47],[57.569,97.556]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":39,"s":[{"i":[[2,0.88],[6.637,0.633],[7.087,0],[2.687,-0.229],[1.475,-0.649],[-2.5,-3.795],[-11.418,0],[-3.544,5.379]],"o":[[-1.475,-0.649],[-2.684,-0.256],[-7.087,0],[-6.643,0.567],[-2,0.88],[3.544,5.379],[11.418,0],[2.5,-3.795]],"v":[[35.881,85.862],[23.167,84.726],[5.922,83.945],[-11.558,84.606],[-24.395,85.862],[-22.277,95.229],[5.746,108.802],[33.769,95.229]],"c":true}]},{"i":{"x":0.67,"y":1},"o":{"x":0.66,"y":0},"t":60,"s":[{"i":[[2,0.88],[6.637,0.633],[7.087,0],[2.687,-0.229],[1.475,-0.649],[-2.5,-3.795],[-11.418,0],[-3.544,5.379]],"o":[[-1.475,-0.649],[-2.684,-0.256],[-7.087,0],[-6.643,0.567],[-2,0.88],[3.544,5.379],[11.418,0],[2.5,-3.795]],"v":[[35.881,85.862],[23.167,84.726],[5.922,83.945],[-11.558,84.606],[-24.395,85.862],[-22.277,95.229],[5.746,108.802],[33.769,95.229]],"c":true}]},{"t":80,"s":[{"i":[[3.69,1.615],[12.212,-1.472],[13.077,0],[4.939,0.595],[2.722,-1.191],[-4.613,-6.966],[-21.068,0],[-6.539,9.873]],"o":[[-2.722,-1.191],[-4.939,0.595],[-13.077,0],[-12.212,-1.472],[-3.69,1.615],[6.539,9.873],[21.068,0],[4.614,-6.966]],"v":[[61.472,82.084],[36.956,85.258],[5.864,87.162],[-25.229,85.258],[-49.744,82.084],[-45.842,97.556],[5.863,122.47],[57.569,97.556]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.749019622803,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":98,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"parent":2,"sr":1,"ks":{"p":{"a":0,"k":[5.303,144.067,0]},"a":{"a":0,"k":[5.303,144.067,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-10.992,-6.96],[0,0],[-16.976,11.779],[-18.657,4.78]],"o":[[17.211,5.126],[18.61,11.782],[0,0],[10.182,-7.065],[0,0]],"v":[[-70.986,150.908],[-27.847,165.744],[5.303,176.601],[37.654,165.544],[81.313,150.908]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.698039233685,0.584313750267,0.447058826685,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-24.85,4.01],[2.81,-4.07],[4.9,-0.67],[10.74,-7.45],[0,0],[16.98,11.78],[7.38,1.01],[3.407,3.585],[1.57,5.1],[-14.42,-8.27],[-8.4,5.66]],"o":[[-1.671,6.6],[-2.81,4.07],[-7.38,1.01],[-16.97,11.78],[0,0],[-10.73,-7.45],[-4.9,-0.67],[-3.841,-4.041],[12.31,3.41],[17.93,10.29],[7.89,-5.32]],"v":[[91.856,131.627],[83.799,149.584],[68.549,154.317],[37.649,165.547],[5.299,176.597],[-27.051,165.547],[-57.941,154.317],[-72.457,150.111],[-81.201,131.67],[-17.101,154.037],[28.949,154.037]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":11},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[51.445,12.472],[11.245,-13.381],[2.922,3.477],[38.8,-9.406],[-5.196,-23.384],[-28.607,-10.289],[0.785,-3.583],[-16.2,-23.457],[-4.902,-0.674],[-10.738,-7.451],[0,0],[-16.975,11.779],[-7.382,1.015],[-2.812,4.072],[3.47,15.845],[-3.452,1.242],[-4.853,21.841]],"o":[[-38.801,-9.406],[-2.922,3.477],[-11.245,-13.381],[-51.445,12.472],[4.854,21.841],[3.452,1.242],[-3.47,15.845],[2.812,4.072],[7.382,1.015],[16.975,11.779],[0,0],[10.737,-7.451],[4.902,-0.674],[16.2,-23.457],[-0.785,-3.583],[28.607,-10.289],[5.197,-23.384]],"v":[[88.579,-75.949],[10.891,-45.909],[-0.285,-45.909],[-77.973,-75.949],[-132.017,4.597],[-80.556,57.662],[-75.875,66.071],[-70.075,146.877],[-57.943,154.316],[-27.048,165.544],[5.303,176.601],[37.654,165.544],[68.548,153.316],[80.68,146.877],[86.481,66.071],[91.162,57.662],[142.623,4.597]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.941176474094,0.847058832645,0.701960802078,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-6.695,-15.921],[5.747,-3.178],[22.493,4.591],[6.631,-1.555],[16.983,8.766],[-3.144,6.284],[-28.696,7.38],[-11.25,-13.38],[-2.92,3.48],[-38.8,-9.4]],"o":[[2.546,6.053],[-39.7,21.954],[-6.674,-1.362],[-56.127,13.163],[-6.244,-3.223],[5.486,-10.965],[38.664,-9.944],[2.92,3.48],[11.25,-13.38],[26.786,6.499]],"v":[[134.093,-35.971],[128.458,-19.704],[14.574,-11.647],[-5.621,-11.396],[-116.496,-21.256],[-122.192,-38.41],[-76.315,-72.759],[-0.282,-45.913],[10.887,-45.913],[87.791,-72.245]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.749019622803,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[51.445,12.472],[11.245,-13.381],[2.922,3.477],[38.8,-9.406],[-5.196,-23.384],[-28.607,-10.289],[0.785,-3.583],[-16.2,-23.457],[-4.902,-0.674],[-10.738,-7.451],[0,0],[-16.975,11.779],[-7.382,1.015],[-2.812,4.072],[3.47,15.845],[-3.452,1.242],[-4.853,21.841]],"o":[[-38.801,-9.406],[-2.922,3.477],[-11.245,-13.381],[-51.445,12.472],[4.854,21.841],[3.452,1.242],[-3.47,15.845],[2.812,4.072],[7.382,1.015],[16.975,11.779],[0,0],[10.737,-7.451],[4.902,-0.674],[16.2,-23.457],[-0.785,-3.583],[28.607,-10.289],[5.197,-23.384]],"v":[[88.579,-75.949],[10.891,-45.909],[-0.285,-45.909],[-77.973,-75.949],[-132.017,4.597],[-80.556,57.662],[-75.875,66.071],[-70.075,146.877],[-57.943,154.316],[-27.048,165.544],[5.303,176.601],[37.654,165.544],[68.548,154.316],[80.68,146.877],[86.481,66.071],[91.162,57.662],[142.623,4.597]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.941176474094,0.847058832645,0.701960802078,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[24.154,48.305],[13.203,43.885],[77.248,0],[15.205,-50.539],[21.999,-43.995],[-198.638,0]],"o":[[-21.999,-43.995],[-15.205,-50.539],[-78.08,0],[-13.203,43.885],[-24.154,48.305],[198.638,0]],"v":[[169.587,-20.913],[146.026,-110.813],[5.303,-207.093],[-135.42,-110.813],[-158.981,-20.913],[5.303,159.087]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-7.633,-2.073]],"o":[[0,0],[0,0]],"v":[[41.579,-186.44],[54.078,-183.608]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-1.612,-0.576]],"o":[[1.511,0.494],[0,0]],"v":[[62.717,-181.024],[67.407,-179.42]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-23.536],[50.223,0],[0,23.536],[-50.223,0]],"o":[[0,23.536],[-50.223,0],[0,-23.536],[50.223,0]],"v":[[96.859,-148.606],[5.921,-105.99],[-85.016,-148.606],[5.921,-191.222]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.780392169952,0.623529434204,0.419607847929,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[22.173,44.342],[12.12,40.285],[70.911,0],[13.958,-46.393],[20.194,-40.385],[-182.343,0]],"o":[[-20.194,-40.385],[-13.957,-46.393],[-71.675,0],[-12.12,40.285],[-22.173,44.342],[182.343,0]],"v":[[156.11,-21.166],[134.482,-103.692],[5.303,-192.073],[-123.876,-103.692],[-145.504,-21.166],[5.303,144.067]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.737254917622,0.572549045086,0.349019616842,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[24.154,48.305],[13.203,43.885],[77.248,0],[15.205,-50.539],[21.999,-43.995],[-198.638,0]],"o":[[-21.999,-43.995],[-15.205,-50.539],[-78.08,0],[-13.203,43.885],[-24.154,48.305],[198.638,0]],"v":[[169.587,-20.913],[146.026,-110.813],[5.303,-207.093],[-135.42,-110.813],[-158.981,-20.913],[5.303,159.087]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":98,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"parent":10,"sr":1,"ks":{"p":{"a":0,"k":[-148.03,-63.49,0]},"a":{"a":0,"k":[-148.03,-63.49,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[1.081,-15.591],[0,0],[0.01,0],[-5.699,9.64],[0,0]],"o":[[-42.636,-22.157],[-0.01,0],[-1.283,-12.428],[16.864,-28.514],[5.547,-0.606]],"v":[[-120.56,-89.291],[-178.963,-61.424],[-178.983,-61.434],[-172.678,-95.859],[-126.714,-115.865]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.596078455448,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[17.728,-1.949],[16.87,-28.514],[-21.623,-17.626]],"o":[[0,0],[-13.747,23.235],[25.716,20.962]],"v":[[-126.711,-115.866],[-172.682,-95.857],[-156.36,-15.922]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.929411768913,0.674509823322,0.666666686535,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[55.083,3.638],[22.172,-27.368],[-47.288,-39.234]],"o":[[-19.765,-1.305],[-24.472,30.208],[49.528,41.092]],"v":[[-115.798,-143.021],[-186.99,-118.078],[-164.645,10.795]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-36.319,10.182]],"o":[[0,0],[0,0]],"v":[[-194.126,-81.406],[-152.972,-131.334]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.737254917622,0.572549045086,0.349019616842,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":10},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[55.083,3.638],[22.172,-27.368],[-47.288,-39.234]],"o":[[-19.765,-1.305],[-24.472,30.208],[49.528,41.092]],"v":[[-115.798,-143.021],[-186.99,-118.078],[-164.645,10.795]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":98,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"parent":10,"sr":1,"ks":{"p":{"a":0,"k":[157.962,-63.49,0]},"a":{"a":0,"k":[157.962,-63.49,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.081,-15.591],[0,0],[-0.01,0],[5.699,9.64],[0,0]],"o":[[42.636,-22.157],[0.01,0],[1.283,-12.428],[-16.864,-28.514],[-5.547,-0.606]],"v":[[130.917,-89.291],[189.319,-61.424],[189.34,-61.434],[183.034,-95.859],[137.07,-115.865]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.596078455448,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-55.083,3.638],[-22.172,-27.368],[47.288,-39.234]],"o":[[19.765,-1.305],[24.472,30.208],[-49.528,41.092]],"v":[[125.73,-143.021],[196.922,-118.078],[174.577,10.795]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[36.319,10.182]],"o":[[0,0],[0,0]],"v":[[203.905,-80.406],[162.752,-130.334]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.737254917622,0.572549045086,0.349019616842,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":10},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-17.728,-1.949],[-16.87,-28.514],[21.623,-17.626]],"o":[[0,0],[13.747,23.235],[-25.716,20.962]],"v":[[136.643,-115.866],[182.613,-95.857],[166.291,-15.922]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.929411768913,0.674509823322,0.666666686535,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-55.083,3.638],[-22.172,-27.368],[47.288,-39.234]],"o":[[19.765,-1.305],[24.472,30.208],[-49.528,41.092]],"v":[[125.73,-143.021],[196.922,-118.078],[174.577,10.795]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":98,"st":0,"bm":0}]} \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/tsv_setup_email_sent.tgs b/TMessagesProj/src/main/res/raw/tsv_setup_email_sent.tgs new file mode 100644 index 000000000..38b593bdc --- /dev/null +++ b/TMessagesProj/src/main/res/raw/tsv_setup_email_sent.tgs @@ -0,0 +1 @@ +{"tgs":1,"v":"5.5.2","fr":60,"ip":0,"op":180,"w":512,"h":512,"nm":"message rev4","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"resize","sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":0,"k":[257.5,278,0]},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":71,"s":[100,100,100]},{"t":120,"s":[142,142,100]}]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":3,"nm":"masterscale","parent":1,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":0,"k":[-25.5,-8,0]},"s":{"a":0,"k":[121,121,100]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":3,"nm":"Y","parent":2,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.333,"y":0},"t":59,"s":[0,59.851,0],"to":[0,0,0],"ti":[0,0,0]},{"t":90,"s":[0,-27.752,0]}]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":3,"nm":"X","parent":3,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":0,"k":[14.25,0,0]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":3,"nm":"Stabilize-motion","parent":4,"sr":1,"ks":{"o":{"a":0,"k":0},"s":{"a":0,"k":[176,176,100]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"heart","parent":13,"sr":1,"ks":{"p":{"a":0,"k":[3.734,33.314,0]},"a":{"a":0,"k":[3.734,33.314,0]},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,16.185]},"t":71,"s":[0,0,100]},{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":85,"s":[100.75,100.75,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":95,"s":[100.75,100.75,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":98,"s":[126.75,126.75,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":107,"s":[100.75,100.75,100]},{"i":{"x":[0.34,0.34,0.34],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"t":110,"s":[126.75,126.75,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.33,0.33,0.33],"y":[0,0,0]},"t":119,"s":[100.75,100.75,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":138,"s":[100.75,100.75,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":141,"s":[126.75,126.75,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":150,"s":[100.75,100.75,100]},{"i":{"x":[0.34,0.34,0.34],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"t":153,"s":[126.75,126.75,100]},{"t":162,"s":[100.75,100.75,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[39.603,0],[2.849,-7.808],[0.222,0.69],[31.605,0],[-4.114,-22.114],[-70.447,-56.572],[-4.114,22.114]],"o":[[-30.215,0],[-0.248,0.68],[-2.522,-7.84],[-39.603,0],[4.114,22.114],[70.447,-56.572],[4.114,-22.114]],"v":[[49.001,-61.639],[4.498,-28.987],[3.067,-29.015],[-41.533,-61.639],[-90.39,0.59],[3.734,113.732],[97.858,0.59]],"c":true}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.690196096897,0,0.129411771894,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-2.78,-1.14]],"o":[[0,0],[0,0]],"v":[[54.629,-41.557],[59.356,-40.232]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-3.514,-3.504],[0,0],[-0.205,-5.113],[23.591,-0.942],[8.065,13.429],[-3.487,12.266],[0.004,0.014],[-3.704,3.21],[-6.033,2.168],[-10.521,-6.255]],"o":[[0,0],[1.501,4.552],[1.065,26.553],[-15.392,0.615],[-5.413,-12.384],[0.014,-0.004],[2.318,-4.028],[4.152,-3.598],[15.871,-5.704],[5.761,3.425]],"v":[[-7.923,-40.969],[-7.919,-40.955],[-5.565,-33.586],[-46.343,16.189],[-83.631,-5.249],[-86.537,-36.903],[-86.532,-36.934],[-77.499,-47.821],[-62.24,-56.577],[-21.955,-51.975]],"c":true}},"nm":"Path 1","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0,1,1,1,0.643,0.99,0.62,0.62,0.911,0.98,0.239,0.239]}},"s":{"a":0,"k":[-46.367,-56.073]},"e":{"a":0,"k":[-46.367,13.991]},"t":2,"h":{"a":0,"k":0},"a":{"a":0,"k":0},"nm":"Gradient Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":25},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[95,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 8","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-3.848,-3.504],[0,0],[-0.23,-5.112],[25.837,-0.938],[8.833,13.429],[-3.819,12.266],[0.005,0.014],[-4.076,3.19],[-6.606,2.172],[-11.517,-6.263]],"o":[[0,0],[1.643,4.552],[1.166,26.553],[-16.858,0.615],[-5.928,-12.384],[0.015,-0.004],[2.539,-4.028],[4.547,-3.598],[17.382,-5.704],[6.309,3.425]],"v":[[-0.108,-40.969],[-0.103,-40.955],[2.476,-33.586],[-42.185,16.189],[-83.023,-5.249],[-86.205,-36.903],[-86.2,-36.934],[-76.306,-47.821],[-59.595,-56.577],[-15.475,-51.975]],"c":true}},"nm":"Path 1","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0,1,1,1,0.643,0.99,0.62,0.62,0.911,0.98,0.239,0.239]}},"s":{"a":0,"k":[-46.367,-56.073]},"e":{"a":0,"k":[-46.367,13.991]},"t":2,"h":{"a":0,"k":0},"a":{"a":0,"k":0},"nm":"Gradient Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":25},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 4","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[37.588,0],[2.699,-7.152],[0.21,0.63],[30.007,0],[-3.905,-20.281],[-2.84,-5.944],[-32.837,68.739],[-0.895,4.648]],"o":[[-28.687,0],[-0.235,0.622],[-2.389,-7.181],[-37.588,0],[0.895,4.648],[32.837,68.739],[2.84,-5.944],[3.905,-20.281]],"v":[[46.697,-61.639],[4.456,-31.686],[3.103,-31.712],[-39.229,-61.639],[-85.6,-4.57],[-80.2,11.264],[87.668,11.264],[93.068,-4.57]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.980392158031,0.239215686917,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 5","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[39.603,0],[2.849,-7.808],[0.222,0.69],[31.605,0],[-4.114,-22.114],[-70.447,-56.572],[-4.114,22.114]],"o":[[-30.215,0],[-0.248,0.68],[-2.522,-7.84],[-39.603,0],[4.114,22.114],[70.447,-56.572],[4.114,-22.114]],"v":[[49.001,-61.639],[4.498,-28.987],[3.067,-29.015],[-41.533,-61.639],[-90.39,0.59],[3.734,113.732],[97.858,0.59]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.898039221764,0.129411771894,0.121568627656,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 6","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[41.741,0],[2.997,-7.799],[0.241,0.712],[33.319,0],[-4.336,-22.114],[-69.549,-53.943],[-3.398,2.636],[-4.222,21.529]],"o":[[-31.857,0],[-0.27,0.702],[-2.655,-7.833],[-41.741,0],[4.222,21.529],[3.398,2.636],[69.549,-53.943],[4.336,-22.114]],"v":[[51.444,-44.639],[4.536,-11.978],[3.033,-12.01],[-43.977,-44.639],[-95.471,17.59],[-2.046,126.289],[9.514,126.289],[102.939,17.59]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.639215707779,0.639215707779,0.639215707779,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":60},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 7","bm":0,"hd":false}],"ip":0,"op":180,"st":1,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"message top 2","parent":5,"sr":1,"ks":{"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":56,"s":[3.96,18.419,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":59,"s":[3.96,27.811,0],"to":[0,0,0],"ti":[0,0,0]},{"t":74,"s":[3.96,18.419,0]}]},"a":{"a":0,"k":[3.96,19.555,0]},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"t":15,"s":[0,0,100]},{"t":32,"s":[37,37,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":32,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-101.565,-97.136],[-122.783,-97.136]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":49,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-101.565,-111.636],[-122.783,-111.636]],"c":false}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":58,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-101.565,-111.636],[-122.783,-111.636]],"c":false}]},{"t":84,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-101.565,-97.136],[-122.783,-97.136]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":32,"s":[6]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":42,"s":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":76,"s":[0]},{"t":84,"s":[6]}]},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":32,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-137.947,-97.136],[-144,-97.136]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":49,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-137.947,-111.636],[-144,-111.636]],"c":false}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":58,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-137.947,-111.636],[-144,-111.636]],"c":false}]},{"t":84,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-137.947,-97.136],[-144,-97.136]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":32,"s":[6]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":42,"s":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":76,"s":[0]},{"t":84,"s":[6]}]},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":32,"s":[{"i":[[0,0],[1.492,-1.451],[0,0],[4.49,4.35],[0,0],[-2.082,0]],"o":[[2.081,0],[0,0],[-4.49,4.35],[0,0],[-1.495,-1.45],[0,0]],"v":[[170.925,-96.913],[172.541,-92.933],[12.013,63.207],[-4.087,63.207],[-165.071,-92.931],[-163.457,-96.913]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":49,"s":[{"i":[[0,0],[1.492,1.388],[0,0],[4.49,-4.161],[0,0],[-2.082,0]],"o":[[2.081,0],[0,0],[-4.49,-4.161],[0,0],[-1.495,1.387],[0,0]],"v":[[168.053,-118.062],[169.669,-121.868],[12.013,-265],[-4.087,-265],[-159.694,-121.87],[-158.081,-118.062]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":58,"s":[{"i":[[0,0],[1.492,1.388],[0,0],[4.49,-4.161],[0,0],[-2.082,0]],"o":[[2.081,0],[0,0],[-4.49,-4.161],[0,0],[-1.495,1.387],[0,0]],"v":[[168.053,-118.062],[169.669,-121.868],[12.013,-265],[-4.087,-265],[-159.694,-121.87],[-158.081,-118.062]],"c":true}]},{"t":84,"s":[{"i":[[0,0],[1.492,-1.451],[0,0],[4.49,4.35],[0,0],[-2.082,0]],"o":[[2.081,0],[0,0],[-4.49,4.35],[0,0],[-1.495,-1.45],[0,0]],"v":[[170.925,-96.913],[172.541,-92.933],[12.013,63.207],[-4.087,63.207],[-165.071,-92.931],[-163.457,-96.913]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.898039221764,0.898039221764,0.898039221764,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":32,"s":[{"i":[[0,-0.917],[0,0],[5.369,5.207],[0,0],[-0.046,0.4],[-5.408,0],[0,0],[-1.178,-4.535]],"o":[[0,0],[-5.369,5.207],[0,0],[0,-0.412],[0.604,-5.246],[0,0],[4.903,0],[0.22,0.849]],"v":[[200.413,-99.503],[13.599,81.691],[-5.673,81.691],[-192.497,-99.503],[-192.427,-100.722],[-181.957,-110.043],[189.873,-110.043],[200.075,-102.159]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":49,"s":[{"i":[[0,-0.917],[0,0],[9.251,-9.517],[0,0],[-0.046,0.4],[-5.408,0],[0,0],[-1.178,-4.535]],"o":[[0,0],[-5.369,-4.981],[0,0],[0,-0.412],[0.604,-5.246],[0,0],[4.903,0],[0.22,0.849]],"v":[[199.739,-107.356],[10.228,-287.993],[-9.956,-280.934],[-191.704,-106.126],[-192.427,-100.722],[-181.957,-110.043],[189.873,-110.043],[200.075,-102.159]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":58,"s":[{"i":[[0,-0.917],[0,0],[9.251,-9.517],[0,0],[-0.046,0.4],[-5.408,0],[0,0],[-1.178,-4.535]],"o":[[0,0],[-5.369,-4.981],[0,0],[0,-0.412],[0.604,-5.246],[0,0],[4.903,0],[0.22,0.849]],"v":[[199.739,-107.356],[10.228,-287.993],[-9.956,-280.934],[-191.704,-106.126],[-192.427,-100.722],[-181.957,-110.043],[189.873,-110.043],[200.075,-102.159]],"c":true}]},{"t":84,"s":[{"i":[[0,-0.917],[0,0],[5.369,5.207],[0,0],[-0.046,0.4],[-5.408,0],[0,0],[-1.178,-4.535]],"o":[[0,0],[-5.369,5.207],[0,0],[0,-0.412],[0.604,-5.246],[0,0],[4.903,0],[0.22,0.849]],"v":[[200.413,-99.503],[13.599,81.691],[-5.673,81.691],[-192.497,-99.503],[-192.427,-100.722],[-181.957,-110.043],[189.873,-110.043],[200.075,-102.159]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.639215707779,0.639215707779,0.639215707779,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 5","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":32,"s":[{"i":[[0,-1.343],[0,0],[5.369,5.207],[0,0],[-0.78,1.471],[-4.04,0],[0,0],[-1.528,-3.938]],"o":[[0,0],[-5.369,5.207],[0,0],[0,-1.78],[1.769,-3.337],[0,0],[4.477,0],[0.458,1.182]],"v":[[200.413,-99.503],[13.599,81.691],[-5.673,81.691],[-192.497,-99.503],[-191.275,-104.432],[-181.957,-110.043],[189.873,-110.043],[199.703,-103.313]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":49,"s":[{"i":[[0,-1.343],[0,0],[8.854,-7.614],[0,0],[-0.78,1.471],[-4.04,0],[0,0],[-1.528,-3.938]],"o":[[0,0],[-5.369,-4.981],[0,0],[0,-1.78],[1.769,-3.337],[0,0],[4.477,0],[0.458,1.182]],"v":[[199.818,-107.316],[17.248,-281.251],[-2.976,-287.121],[-191.783,-105.928],[-191.275,-104.432],[-181.957,-110.043],[189.873,-110.043],[199.703,-103.313]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":58,"s":[{"i":[[0,-1.343],[0,0],[8.854,-7.614],[0,0],[-0.78,1.471],[-4.04,0],[0,0],[-1.528,-3.938]],"o":[[0,0],[-5.369,-4.981],[0,0],[0,-1.78],[1.769,-3.337],[0,0],[4.477,0],[0.458,1.182]],"v":[[199.818,-107.316],[17.248,-281.251],[-2.976,-287.121],[-191.783,-105.928],[-191.275,-104.432],[-181.957,-110.043],[189.873,-110.043],[199.703,-103.313]],"c":true}]},{"t":84,"s":[{"i":[[0,-1.343],[0,0],[5.369,5.207],[0,0],[-0.78,1.471],[-4.04,0],[0,0],[-1.528,-3.938]],"o":[[0,0],[-5.369,5.207],[0,0],[0,-1.78],[1.769,-3.337],[0,0],[4.477,0],[0.458,1.182]],"v":[[200.413,-99.503],[13.599,81.691],[-5.673,81.691],[-192.497,-99.503],[-191.275,-104.432],[-181.957,-110.043],[189.873,-110.043],[199.703,-103.313]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.960784316063,0.960784316063,0.960784316063,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 6","bm":0,"hd":false}],"ip":56,"op":180,"st":7,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"message top","parent":5,"sr":1,"ks":{"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":56,"s":[3.96,18.419,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":59,"s":[3.96,27.811,0],"to":[0,0,0],"ti":[0,0,0]},{"t":74,"s":[3.96,18.419,0]}]},"a":{"a":0,"k":[3.96,19.555,0]},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"t":15,"s":[0,0,100]},{"t":32,"s":[37,37,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":32,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-101.565,-97.136],[-122.783,-97.136]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":49,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-101.565,-111.636],[-122.783,-111.636]],"c":false}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":61,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-101.565,-111.636],[-122.783,-111.636]],"c":false}]},{"t":84,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-101.565,-97.136],[-122.783,-97.136]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":32,"s":[6]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":35,"s":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":76,"s":[0]},{"t":84,"s":[6]}]},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":32,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-137.947,-97.136],[-144,-97.136]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":49,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-137.947,-111.636],[-144,-111.636]],"c":false}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":61,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-137.947,-111.636],[-144,-111.636]],"c":false}]},{"t":84,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-137.947,-97.136],[-144,-97.136]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":32,"s":[6]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":35,"s":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":76,"s":[0]},{"t":84,"s":[6]}]},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":32,"s":[{"i":[[0,0],[1.492,-1.451],[0,0],[4.49,4.35],[0,0],[-2.082,0]],"o":[[2.081,0],[0,0],[-4.49,4.35],[0,0],[-1.495,-1.45],[0,0]],"v":[[170.925,-96.913],[172.541,-92.933],[12.013,63.207],[-4.087,63.207],[-165.071,-92.931],[-163.457,-96.913]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":49,"s":[{"i":[[0,0],[1.492,1.388],[0,0],[4.49,-4.161],[0,0],[-2.082,0]],"o":[[2.081,0],[0,0],[-4.49,-4.161],[0,0],[-1.495,1.387],[0,0]],"v":[[168.053,-118.062],[169.669,-121.868],[12.013,-265],[-4.087,-265],[-159.694,-121.87],[-158.081,-118.062]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":61,"s":[{"i":[[0,0],[1.492,1.388],[0,0],[4.49,-4.161],[0,0],[-2.082,0]],"o":[[2.081,0],[0,0],[-4.49,-4.161],[0,0],[-1.495,1.387],[0,0]],"v":[[168.053,-118.062],[169.669,-121.868],[12.013,-265],[-4.087,-265],[-159.694,-121.87],[-158.081,-118.062]],"c":true}]},{"t":84,"s":[{"i":[[0,0],[1.492,-1.451],[0,0],[4.49,4.35],[0,0],[-2.082,0]],"o":[[2.081,0],[0,0],[-4.49,4.35],[0,0],[-1.495,-1.45],[0,0]],"v":[[170.925,-96.913],[172.541,-92.933],[12.013,63.207],[-4.087,63.207],[-165.071,-92.931],[-163.457,-96.913]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.898039221764,0.898039221764,0.898039221764,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":32,"s":[{"i":[[0,-0.917],[0,0],[5.369,5.207],[0,0],[-0.046,0.4],[-5.408,0],[0,0],[-1.178,-4.535]],"o":[[0,0],[-5.369,5.207],[0,0],[0,-0.412],[0.604,-5.246],[0,0],[4.903,0],[0.22,0.849]],"v":[[200.413,-99.503],[13.599,81.691],[-5.673,81.691],[-192.497,-99.503],[-192.427,-100.722],[-181.957,-110.043],[189.873,-110.043],[200.075,-102.159]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":49,"s":[{"i":[[0,-0.917],[0,0],[9.251,-9.517],[0,0],[-0.046,0.4],[-5.408,0],[0,0],[-1.178,-4.535]],"o":[[0,0],[-5.369,-4.981],[0,0],[0,-0.412],[0.604,-5.246],[0,0],[4.903,0],[0.22,0.849]],"v":[[199.739,-107.356],[10.228,-287.993],[-9.956,-280.934],[-191.704,-106.126],[-192.427,-100.722],[-181.957,-110.043],[189.873,-110.043],[200.075,-102.159]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":61,"s":[{"i":[[0,-0.917],[0,0],[9.251,-9.517],[0,0],[-0.046,0.4],[-5.408,0],[0,0],[-1.178,-4.535]],"o":[[0,0],[-5.369,-4.981],[0,0],[0,-0.412],[0.604,-5.246],[0,0],[4.903,0],[0.22,0.849]],"v":[[199.739,-107.356],[10.228,-287.993],[-9.956,-280.934],[-191.704,-106.126],[-192.427,-100.722],[-181.957,-110.043],[189.873,-110.043],[200.075,-102.159]],"c":true}]},{"t":84,"s":[{"i":[[0,-0.917],[0,0],[5.369,5.207],[0,0],[-0.046,0.4],[-5.408,0],[0,0],[-1.178,-4.535]],"o":[[0,0],[-5.369,5.207],[0,0],[0,-0.412],[0.604,-5.246],[0,0],[4.903,0],[0.22,0.849]],"v":[[200.413,-99.503],[13.599,81.691],[-5.673,81.691],[-192.497,-99.503],[-192.427,-100.722],[-181.957,-110.043],[189.873,-110.043],[200.075,-102.159]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.639215707779,0.639215707779,0.639215707779,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 5","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":32,"s":[{"i":[[0,-1.343],[0,0],[5.369,5.207],[0,0],[-0.78,1.471],[-4.04,0],[0,0],[-1.528,-3.938]],"o":[[0,0],[-5.369,5.207],[0,0],[0,-1.78],[1.769,-3.337],[0,0],[4.477,0],[0.458,1.182]],"v":[[200.413,-99.503],[13.599,81.691],[-5.673,81.691],[-192.497,-99.503],[-191.275,-104.432],[-181.957,-110.043],[189.873,-110.043],[199.703,-103.313]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":49,"s":[{"i":[[0,-1.343],[0,0],[8.854,-7.614],[0,0],[-0.78,1.471],[-4.04,0],[0,0],[-1.528,-3.938]],"o":[[0,0],[-5.369,-4.981],[0,0],[0,-1.78],[1.769,-3.337],[0,0],[4.477,0],[0.458,1.182]],"v":[[199.818,-107.316],[17.248,-281.251],[-2.976,-287.121],[-191.783,-105.928],[-191.275,-104.432],[-181.957,-110.043],[189.873,-110.043],[199.703,-103.313]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":61,"s":[{"i":[[0,-1.343],[0,0],[8.854,-7.614],[0,0],[-0.78,1.471],[-4.04,0],[0,0],[-1.528,-3.938]],"o":[[0,0],[-5.369,-4.981],[0,0],[0,-1.78],[1.769,-3.337],[0,0],[4.477,0],[0.458,1.182]],"v":[[199.818,-107.316],[17.248,-281.251],[-2.976,-287.121],[-191.783,-105.928],[-191.275,-104.432],[-181.957,-110.043],[189.873,-110.043],[199.703,-103.313]],"c":true}]},{"t":84,"s":[{"i":[[0,-1.343],[0,0],[5.369,5.207],[0,0],[-0.78,1.471],[-4.04,0],[0,0],[-1.528,-3.938]],"o":[[0,0],[-5.369,5.207],[0,0],[0,-1.78],[1.769,-3.337],[0,0],[4.477,0],[0.458,1.182]],"v":[[200.413,-99.503],[13.599,81.691],[-5.673,81.691],[-192.497,-99.503],[-191.275,-104.432],[-181.957,-110.043],[189.873,-110.043],[199.703,-103.313]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.960784316063,0.960784316063,0.960784316063,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 6","bm":0,"hd":false}],"ip":0,"op":38,"st":7,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"messagefront","parent":5,"sr":1,"ks":{"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":56,"s":[3.96,18.419,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":59,"s":[3.96,27.811,0],"to":[0,0,0],"ti":[0,0,0]},{"t":74,"s":[3.96,18.419,0]}]},"a":{"a":0,"k":[3.96,19.555,0]},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"t":15,"s":[0,0,100]},{"t":32,"s":[37,37,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0.9],[8.641,8.641],[36.896,-36.896],[0,0],[-5.82,0],[0,0],[-1.161,4.559]],"o":[[0,0],[-29.261,-29.261],[-8.386,7.612],[0,5.82],[0,0],[4.92,0],[0.212,-0.834]],"v":[[200.413,138.615],[43.036,-8.997],[-39.911,-6.643],[-192.497,138.615],[-181.957,149.156],[189.873,149.156],[200.088,141.223]],"c":true}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.639215707779,0.639215707779,0.639215707779,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 7","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-15.382,-15.382],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[15.297,-15.297],[0,0],[0,0],[0,0],[0,0]],"v":[[-181.954,149.155],[-165.074,132.147],[-20.057,-8.412],[27.311,-8.022],[172.539,132.144],[189.732,149.155],[189.648,149.155]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.898039221764,0.898039221764,0.898039221764,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 8","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,2.145],[52.132,49.557],[38.109,-35.682],[0,0],[-5.82,0],[0,0],[-1.886,2.852]],"o":[[0,0],[-31.297,-29.751],[-51.154,47.895],[0,5.82],[0,0],[3.675,0],[1.101,-1.665]],"v":[[200.413,138.615],[42.965,-8.94],[-40.084,-6.182],[-192.497,138.615],[-181.957,149.155],[189.873,149.155],[198.671,144.421]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.960784316063,0.960784316063,0.960784316063,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 9","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[5.821,0],[0,0],[0,-5.821],[0,0],[0,0],[2.262,-2.194],[0,0],[0,0],[-5.821,0],[0,0],[0,5.821],[0,0],[0,0],[-2.262,2.194],[0,0]],"o":[[0,-5.821],[0,0],[-5.821,0],[0,0],[0,0],[2.262,2.194],[0,0],[0,0],[0,5.821],[0,0],[5.821,0],[0,0],[0,0],[-2.262,-2.194],[0,0],[0,0]],"v":[[200.413,-99.503],[59.154,23.848],[-53.142,27.021],[-190.91,-106.8],[-192.497,-94.503],[-94.493,15.547],[-94.493,23.566],[-192.497,133.615],[-192.497,138.615],[-181.957,149.155],[189.873,149.155],[200.413,138.615],[200.413,133.615],[102.415,23.565],[102.415,15.547],[200.413,-94.503]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.639215707779,0.670588254929,0.666666686535,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":40},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 10","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-61.147,20.164],[-188.851,-107.858]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.639215707779,0.639215707779,0.639215707779,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 2","hd":false},{"ty":"tr","p":{"a":0,"k":[7.513,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[-100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-61.147,20.164],[-188.851,-107.858]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.639215707779,0.639215707779,0.639215707779,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 2","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[5.823,0],[0,0],[0,5.823],[0,0],[-5.823,0],[0,0],[0,-5.823],[0,0]],"o":[[0,0],[-5.823,0],[0,0],[0,-5.823],[0,0],[5.823,0],[0,0],[0,5.823]],"v":[[177.189,149.156],[-169.268,149.156],[-187.426,138.593],[-188.06,-99.677],[-53.144,26.385],[59.796,25.116],[194.712,-99.677],[195.346,138.593]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.898039221764,0.898039221764,0.898039221764,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 11","bm":0,"hd":false}],"ip":0,"op":180,"st":7,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"letter 2","parent":13,"sr":1,"ks":{"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":22,"s":[5.006,-303.618,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.66,"y":0},"t":32,"s":[5.006,-329,0],"to":[0,0,0],"ti":[0,0,0]},{"t":56,"s":[5.006,26.351,0]}]},"a":{"a":0,"k":[2.5,59,0]},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"t":0,"s":[0,0,100]},{"t":12,"s":[126.911,126.911,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[74,81]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 27","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[24,81]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 26","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[134,81]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 25","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[134,59]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 24","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[54,59]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 23","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[123,41]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 20","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[-6,59]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 22","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[93,41]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 19","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[-25,59]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 21","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[74,41]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 18","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[24,41]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 17","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[-6,41]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 16","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[160,20]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 15","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[110,20]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 14","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[60,20]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 13","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[30,20]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 12","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[150,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 10","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,20]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 11","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[100,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 9","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[20,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 8","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 7","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[-70.25,17.836]},"a":{"a":0,"k":[-70.25,17.836]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"spaces","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[69.5,25.5],[113,25.5]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.564705882353,0.564705882353,0.564705882353,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.839215985466,0.839215985466,0.839215985466,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,100]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 6","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-108,18],[113,18]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.564705882353,0.564705882353,0.564705882353,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.839215985466,0.839215985466,0.839215985466,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,80]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 5","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-108,18],[113,18]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.564705882353,0.564705882353,0.564705882353,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.839215985466,0.839215985466,0.839215985466,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,60]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 4","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-108,18],[113,18]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.564705882353,0.564705882353,0.564705882353,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.839215985466,0.839215985466,0.839215985466,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,40]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 3","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-108,18],[113,18]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.564705882353,0.564705882353,0.564705882353,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.839215985466,0.839215985466,0.839215985466,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,20]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-108,18],[113,18]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.564705882353,0.564705882353,0.564705882353,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.839215985466,0.839215985466,0.839215985466,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[2.5,71.75]},"a":{"a":0,"k":[2.5,71.75]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"txt","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[129.5,45.5],[129.5,204.463],[-138.5,204.463],[-138.5,45.5]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.945098039216,0.945098039216,0.945098039216,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[7,-65]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Rectangle 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[140,35],[140,213],[-149,213],[-149,35]],"c":true}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.639215707779,0.639215707779,0.639215707779,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.980392156863,0.976547480564,0.976547480564,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[7,-65]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Rectangle 1","bm":0,"hd":false}],"ip":56,"op":180,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"letter","parent":5,"sr":1,"ks":{"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":22,"s":[4.347,-101.155,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.66,"y":0},"t":32,"s":[4.347,-110.547,0],"to":[0,0,0],"ti":[0,0,0]},{"t":56,"s":[4.347,20.934,0]}]},"a":{"a":0,"k":[2.5,59,0]},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"t":0,"s":[0,0,100]},{"t":12,"s":[46.957,46.957,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[74,81]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 27","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[24,81]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 26","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[134,81]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 25","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[134,59]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 24","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[54,59]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 23","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[123,41]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 20","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[-6,59]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 22","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[93,41]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 19","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[-25,59]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 21","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[74,41]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 18","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[24,41]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 17","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[-6,41]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 16","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[160,20]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 15","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[110,20]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 14","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[60,20]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 13","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[30,20]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 12","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[150,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 10","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,20]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 11","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[100,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 9","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[20,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 8","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.25,10.836],[-70.25,24.836]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.945098099054,0.945098099054,0.945098099054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 7","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[-70.25,17.836]},"a":{"a":0,"k":[-70.25,17.836]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"spaces","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[69.5,25.5],[113,25.5]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.564705882353,0.564705882353,0.564705882353,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.839215985466,0.839215985466,0.839215985466,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,100]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 6","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-108,18],[113,18]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.564705882353,0.564705882353,0.564705882353,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.839215985466,0.839215985466,0.839215985466,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,80]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 5","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-108,18],[113,18]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.564705882353,0.564705882353,0.564705882353,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.839215985466,0.839215985466,0.839215985466,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,60]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 4","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-108,18],[113,18]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.564705882353,0.564705882353,0.564705882353,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.839215985466,0.839215985466,0.839215985466,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,40]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 3","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-108,18],[113,18]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.564705882353,0.564705882353,0.564705882353,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.839215985466,0.839215985466,0.839215985466,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,20]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-108,18],[113,18]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.564705882353,0.564705882353,0.564705882353,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.839215985466,0.839215985466,0.839215985466,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[2.5,71.75]},"a":{"a":0,"k":[2.5,71.75]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"txt","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[129.5,45.5],[129.5,204.463],[-138.5,204.463],[-138.5,45.5]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.945098039216,0.945098039216,0.945098039216,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[7,-65]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Rectangle 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[140,35],[140,213],[-149,213],[-149,35]],"c":true}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.639215707779,0.639215707779,0.639215707779,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.980392156863,0.976547480564,0.976547480564,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[7,-65]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Rectangle 1","bm":0,"hd":false}],"ip":0,"op":56,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"message top 3","parent":5,"sr":1,"ks":{"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":56,"s":[3.96,18.419,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":59,"s":[3.96,27.811,0],"to":[0,0,0],"ti":[0,0,0]},{"t":74,"s":[3.96,18.419,0]}]},"a":{"a":0,"k":[3.96,19.555,0]},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"t":15,"s":[0,0,100]},{"t":32,"s":[37,37,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":32,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-101.565,-97.136],[-122.783,-97.136]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":49,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-101.565,-111.636],[-122.783,-111.636]],"c":false}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":61,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-101.565,-111.636],[-122.783,-111.636]],"c":false}]},{"t":84,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-101.565,-97.136],[-122.783,-97.136]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":32,"s":[6]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":35,"s":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":76,"s":[0]},{"t":84,"s":[6]}]},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":32,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-137.947,-97.136],[-144,-97.136]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":49,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-137.947,-111.636],[-144,-111.636]],"c":false}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":61,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-137.947,-111.636],[-144,-111.636]],"c":false}]},{"t":84,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-137.947,-97.136],[-144,-97.136]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":32,"s":[6]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":35,"s":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":76,"s":[0]},{"t":84,"s":[6]}]},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":32,"s":[{"i":[[0,0],[1.492,-1.451],[0,0],[4.49,4.35],[0,0],[-2.082,0]],"o":[[2.081,0],[0,0],[-4.49,4.35],[0,0],[-1.495,-1.45],[0,0]],"v":[[170.925,-96.913],[172.541,-92.933],[12.013,63.207],[-4.087,63.207],[-165.071,-92.931],[-163.457,-96.913]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":49,"s":[{"i":[[0,0],[1.492,1.388],[0,0],[4.49,-4.161],[0,0],[-2.082,0]],"o":[[2.081,0],[0,0],[-4.49,-4.161],[0,0],[-1.495,1.387],[0,0]],"v":[[168.053,-118.062],[169.669,-121.868],[12.013,-265],[-4.087,-265],[-159.694,-121.87],[-158.081,-118.062]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":61,"s":[{"i":[[0,0],[1.492,1.388],[0,0],[4.49,-4.161],[0,0],[-2.082,0]],"o":[[2.081,0],[0,0],[-4.49,-4.161],[0,0],[-1.495,1.387],[0,0]],"v":[[168.053,-118.062],[169.669,-121.868],[12.013,-265],[-4.087,-265],[-159.694,-121.87],[-158.081,-118.062]],"c":true}]},{"t":84,"s":[{"i":[[0,0],[1.492,-1.451],[0,0],[4.49,4.35],[0,0],[-2.082,0]],"o":[[2.081,0],[0,0],[-4.49,4.35],[0,0],[-1.495,-1.45],[0,0]],"v":[[170.925,-96.913],[172.541,-92.933],[12.013,63.207],[-4.087,63.207],[-165.071,-92.931],[-163.457,-96.913]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.898039221764,0.898039221764,0.898039221764,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":32,"s":[{"i":[[0,-0.917],[0,0],[5.369,5.207],[0,0],[-0.046,0.4],[-5.408,0],[0,0],[-1.178,-4.535]],"o":[[0,0],[-5.369,5.207],[0,0],[0,-0.412],[0.604,-5.246],[0,0],[4.903,0],[0.22,0.849]],"v":[[200.413,-99.503],[13.599,81.691],[-5.673,81.691],[-192.497,-99.503],[-192.427,-100.722],[-181.957,-110.043],[189.873,-110.043],[200.075,-102.159]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":49,"s":[{"i":[[0,-0.917],[0,0],[9.251,-9.517],[0,0],[-0.046,0.4],[-5.408,0],[0,0],[-1.178,-4.535]],"o":[[0,0],[-5.369,-4.981],[0,0],[0,-0.412],[0.604,-5.246],[0,0],[4.903,0],[0.22,0.849]],"v":[[199.739,-107.356],[10.228,-287.993],[-9.956,-280.934],[-191.704,-106.126],[-192.427,-100.722],[-181.957,-110.043],[189.873,-110.043],[200.075,-102.159]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":61,"s":[{"i":[[0,-0.917],[0,0],[9.251,-9.517],[0,0],[-0.046,0.4],[-5.408,0],[0,0],[-1.178,-4.535]],"o":[[0,0],[-5.369,-4.981],[0,0],[0,-0.412],[0.604,-5.246],[0,0],[4.903,0],[0.22,0.849]],"v":[[199.739,-107.356],[10.228,-287.993],[-9.956,-280.934],[-191.704,-106.126],[-192.427,-100.722],[-181.957,-110.043],[189.873,-110.043],[200.075,-102.159]],"c":true}]},{"t":84,"s":[{"i":[[0,-0.917],[0,0],[5.369,5.207],[0,0],[-0.046,0.4],[-5.408,0],[0,0],[-1.178,-4.535]],"o":[[0,0],[-5.369,5.207],[0,0],[0,-0.412],[0.604,-5.246],[0,0],[4.903,0],[0.22,0.849]],"v":[[200.413,-99.503],[13.599,81.691],[-5.673,81.691],[-192.497,-99.503],[-192.427,-100.722],[-181.957,-110.043],[189.873,-110.043],[200.075,-102.159]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.639215707779,0.639215707779,0.639215707779,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 5","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":32,"s":[{"i":[[0,-1.343],[0,0],[5.369,5.207],[0,0],[-0.78,1.471],[-4.04,0],[0,0],[-1.528,-3.938]],"o":[[0,0],[-5.369,5.207],[0,0],[0,-1.78],[1.769,-3.337],[0,0],[4.477,0],[0.458,1.182]],"v":[[200.413,-99.503],[13.599,81.691],[-5.673,81.691],[-192.497,-99.503],[-191.275,-104.432],[-181.957,-110.043],[189.873,-110.043],[199.703,-103.313]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":49,"s":[{"i":[[0,-1.343],[0,0],[8.854,-7.614],[0,0],[-0.78,1.471],[-4.04,0],[0,0],[-1.528,-3.938]],"o":[[0,0],[-5.369,-4.981],[0,0],[0,-1.78],[1.769,-3.337],[0,0],[4.477,0],[0.458,1.182]],"v":[[199.818,-107.316],[17.248,-281.251],[-2.976,-287.121],[-191.783,-105.928],[-191.275,-104.432],[-181.957,-110.043],[189.873,-110.043],[199.703,-103.313]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":61,"s":[{"i":[[0,-1.343],[0,0],[8.854,-7.614],[0,0],[-0.78,1.471],[-4.04,0],[0,0],[-1.528,-3.938]],"o":[[0,0],[-5.369,-4.981],[0,0],[0,-1.78],[1.769,-3.337],[0,0],[4.477,0],[0.458,1.182]],"v":[[199.818,-107.316],[17.248,-281.251],[-2.976,-287.121],[-191.783,-105.928],[-191.275,-104.432],[-181.957,-110.043],[189.873,-110.043],[199.703,-103.313]],"c":true}]},{"t":84,"s":[{"i":[[0,-1.343],[0,0],[5.369,5.207],[0,0],[-0.78,1.471],[-4.04,0],[0,0],[-1.528,-3.938]],"o":[[0,0],[-5.369,5.207],[0,0],[0,-1.78],[1.769,-3.337],[0,0],[4.477,0],[0.458,1.182]],"v":[[200.413,-99.503],[13.599,81.691],[-5.673,81.691],[-192.497,-99.503],[-191.275,-104.432],[-181.957,-110.043],[189.873,-110.043],[199.703,-103.313]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.960784316063,0.960784316063,0.960784316063,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 6","bm":0,"hd":false}],"ip":38,"op":56,"st":7,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"messagback","parent":5,"sr":1,"ks":{"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":56,"s":[3.96,18.419,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":59,"s":[3.96,27.811,0],"to":[0,0,0],"ti":[0,0,0]},{"t":74,"s":[3.96,18.419,0]}]},"a":{"a":0,"k":[3.96,19.555,0]},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"t":15,"s":[0,0,100]},{"t":32,"s":[37,37,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.333,0],[0,0],[0,5.823],[0,0],[-5.823,0],[0,0],[0,-5.823],[0,0],[0.228,-0.862],[4.449,-0.413]],"o":[[0,0],[-5.823,0],[0,0],[0,-5.823],[0,0],[5.823,0],[0,0],[0,0.933],[-1.112,4.207],[-0.325,0.03]],"v":[[189.875,149.156],[-181.954,149.156],[-192.497,138.613],[-192.497,-99.502],[-181.954,-110.045],[189.875,-110.045],[200.417,-99.502],[200.417,138.613],[200.068,141.313],[190.861,149.11]],"c":true}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.639215707779,0.639215707779,0.639215707779,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 4","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[5.821,0],[0,0],[0,-5.821],[0,0],[0,0],[0,0],[-5.821,0],[0,0],[0,5.821],[0,0],[0,0]],"o":[[0,-5.821],[0,0],[-5.821,0],[0,0],[0,0],[0,0],[0,5.821],[0,0],[5.821,0],[0,0],[0,0],[0,0]],"v":[[200.413,-99.503],[189.873,-110.043],[-181.957,-110.043],[-192.497,-99.503],[-192.497,-94.503],[-192.497,133.615],[-192.497,138.615],[-181.957,149.155],[189.873,149.155],[200.413,138.615],[200.413,133.615],[200.413,-94.503]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.639215707779,0.670588254929,0.666666686535,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":40},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 10","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[5.823,0],[0,0],[0,5.823],[0,0],[-5.823,0],[0,0],[0,-5.823],[0,0]],"o":[[0,0],[-5.823,0],[0,0],[0,-5.823],[0,0],[5.823,0],[0,0],[0,5.823]],"v":[[177.189,149.156],[-169.268,149.156],[-179.811,138.613],[-179.811,-99.502],[-169.268,-110.045],[177.189,-110.045],[187.732,-99.502],[187.732,138.613]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.898039221764,0.898039221764,0.898039221764,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 11","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[5.823,0],[0,0],[0,5.823],[0,0],[-5.823,0],[0,0],[0,-5.823],[0,0]],"o":[[0,0],[-5.823,0],[0,0],[0,-5.823],[0,0],[5.823,0],[0,0],[0,5.823]],"v":[[189.875,149.156],[-181.954,149.156],[-192.497,138.613],[-192.497,-99.502],[-181.954,-110.045],[189.875,-110.045],[200.417,-99.502],[200.417,138.613]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.960784316063,0.960784316063,0.960784316063,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 12","bm":0,"hd":false}],"ip":0,"op":180,"st":7,"bm":0}]} \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/tsv_setup_hint.tgs b/TMessagesProj/src/main/res/raw/tsv_setup_hint.tgs new file mode 100644 index 000000000..ad47f750a --- /dev/null +++ b/TMessagesProj/src/main/res/raw/tsv_setup_hint.tgs @@ -0,0 +1 @@ +{"tgs":1,"v":"5.5.2","fr":60,"ip":0,"op":180,"w":512,"h":512,"nm":"lightbulb 3","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"parent":8,"sr":1,"ks":{"r":{"a":0,"k":135},"p":{"a":0,"k":[-3.497,-184,0]},"a":{"a":0,"k":[-5.497,60,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-5,-37],[-5,-141]],"c":false}},"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.33],"y":[0]},"t":50.268,"s":[0]},{"t":65,"s":[100]}]},"e":{"a":1,"k":[{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":48,"s":[0]},{"t":58.19921875,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,0.992156922583,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":48,"s":[13]},{"t":65,"s":[0]}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":48,"op":66,"st":37,"bm":0},{"ddd":0,"ind":2,"ty":4,"parent":8,"sr":1,"ks":{"r":{"a":0,"k":45},"p":{"a":0,"k":[-3.497,-184,0]},"a":{"a":0,"k":[-5.497,60,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-5,-37],[-5,-141]],"c":false}},"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.33],"y":[0]},"t":50.268,"s":[0]},{"t":65,"s":[100]}]},"e":{"a":1,"k":[{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":48,"s":[0]},{"t":58.19921875,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,0.992156922583,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":48,"s":[13]},{"t":65,"s":[0]}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":48,"op":66,"st":37,"bm":0},{"ddd":0,"ind":3,"ty":4,"parent":8,"sr":1,"ks":{"r":{"a":0,"k":-135},"p":{"a":0,"k":[-3.497,-184,0]},"a":{"a":0,"k":[-5.497,60,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-5,-37],[-5,-141]],"c":false}},"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.33],"y":[0]},"t":50.268,"s":[0]},{"t":65,"s":[100]}]},"e":{"a":1,"k":[{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":48,"s":[0]},{"t":58.19921875,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,0.992156922583,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":48,"s":[13]},{"t":65,"s":[0]}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":48,"op":66,"st":37,"bm":0},{"ddd":0,"ind":4,"ty":4,"parent":8,"sr":1,"ks":{"r":{"a":0,"k":-45},"p":{"a":0,"k":[-3.497,-184,0]},"a":{"a":0,"k":[-5.497,60,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-5,-37],[-5,-141]],"c":false}},"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.33],"y":[0]},"t":50.268,"s":[0]},{"t":65,"s":[100]}]},"e":{"a":1,"k":[{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":48,"s":[0]},{"t":58.19921875,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,0.992156922583,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":48,"s":[13]},{"t":65,"s":[0]}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":48,"op":66,"st":37,"bm":0},{"ddd":0,"ind":5,"ty":4,"parent":8,"sr":1,"ks":{"r":{"a":0,"k":90},"p":{"a":0,"k":[-3.497,-184,0]},"a":{"a":0,"k":[-5.497,60,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-5,-37],[-5,-141]],"c":false}},"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.33],"y":[0]},"t":50.268,"s":[0]},{"t":65,"s":[100]}]},"e":{"a":1,"k":[{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":48,"s":[0]},{"t":58.19921875,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,0.992156922583,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":48,"s":[13]},{"t":65,"s":[0]}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":48,"op":66,"st":37,"bm":0},{"ddd":0,"ind":6,"ty":4,"parent":8,"sr":1,"ks":{"r":{"a":0,"k":-90},"p":{"a":0,"k":[-3.497,-184,0]},"a":{"a":0,"k":[-5.497,60,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-5,-37],[-5,-141]],"c":false}},"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.33],"y":[0]},"t":50.268,"s":[0]},{"t":65,"s":[100]}]},"e":{"a":1,"k":[{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":48,"s":[0]},{"t":58.19921875,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,0.992156922583,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":48,"s":[13]},{"t":65,"s":[0]}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":48,"op":66,"st":37,"bm":0},{"ddd":0,"ind":7,"ty":4,"parent":8,"sr":1,"ks":{"p":{"a":0,"k":[-3.497,-184,0]},"a":{"a":0,"k":[-5.497,60,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-5,-37],[-4.14,-100.591]],"c":false}},"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.33],"y":[0]},"t":50.268,"s":[0]},{"t":65,"s":[100]}]},"e":{"a":1,"k":[{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":48,"s":[0]},{"t":58.19921875,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,0.992156922583,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":48,"s":[13]},{"t":65,"s":[0]}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":48,"op":66,"st":37,"bm":0},{"ddd":0,"ind":8,"ty":3,"sr":1,"ks":{"o":{"a":0,"k":0},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":50,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":69,"s":[-10.316]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":95,"s":[4.774]},{"i":{"x":[0.5],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":132,"s":[-7.368]},{"t":180,"s":[0]}]},"p":{"a":1,"k":[{"i":{"x":0.5,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[256,398,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":50,"s":[256,432,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":60,"s":[256,352,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":83,"s":[256,422,0],"to":[0,0,0],"ti":[0,0,0]},{"t":115,"s":[256,398,0]}]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"parent":8,"sr":1,"ks":{"p":{"a":0,"k":[-3.497,-120.259,0]},"a":{"a":0,"k":[-3.497,-2.259,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[3.645,0],[0,0],[0,3.645],[0,0],[-3.645,0],[0,0],[0,-3.645],[0,0]],"o":[[0,0],[-3.645,0],[0,0],[0,-3.645],[0,0],[3.645,0],[0,0],[0,3.645]],"v":[[31.605,161.067],[-38.596,161.067],[-45.196,154.468],[-45.196,153.61],[-38.596,147.011],[31.605,147.011],[38.204,153.61],[38.204,154.468]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.556862771511,0.54509806633,0.509803950787,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[3.645,0],[0,0],[0,3.645],[0,0],[-3.645,0],[0,0],[0,-3.645],[0,0]],"o":[[0,0],[-3.645,0],[0,0],[0,-3.645],[0,0],[3.645,0],[0,0],[0,3.645]],"v":[[33.148,147.011],[-40.139,147.011],[-46.739,140.412],[-46.739,139.555],[-40.139,132.955],[33.148,132.955],[39.747,139.555],[39.747,140.412]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.556862771511,0.54509806633,0.509803950787,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[3.645,0],[0,0],[0,3.645],[0,0],[-3.645,0],[0,0],[0,-3.645],[0,0]],"o":[[0,0],[-3.645,0],[0,0],[0,-3.645],[0,0],[3.645,0],[0,0],[0,3.645]],"v":[[34.862,132.955],[-41.854,132.955],[-48.453,126.356],[-48.453,125.499],[-41.854,118.9],[34.862,118.9],[41.461,125.499],[41.461,126.356]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.556862771511,0.54509806633,0.509803950787,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[3.209,0],[0,0],[0,3.209],[0,0],[-3.209,0],[0,0],[0,-3.209],[0,0]],"o":[[0,0],[-3.209,0],[0,0],[0,-3.209],[0,0],[3.209,0],[0,0],[0,3.209]],"v":[[39.251,118.9],[-46.242,118.9],[-52.053,113.089],[-52.053,96.973],[-46.242,91.163],[39.251,91.163],[45.061,96.973],[45.061,113.089]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.556862771511,0.54509806633,0.509803950787,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[17.033,161.067],[27.404,161.067],[27.404,91.156],[17.033,91.156]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.819607853889,0.78823530674,0.741176486015,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-16.163,161.067],[-7.267,161.067],[-7.267,91.156],[-16.163,91.156]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-13.053,161.067],[3.317,161.067],[3.317,91.156],[-13.053,91.156]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.819607853889,0.78823530674,0.741176486015,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-33.624,161.067],[-16.163,161.067],[-16.163,91.156],[-33.624,91.156]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.949019610882,0.913725495338,0.878431379795,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[3.404,161.067],[17.033,161.067],[17.033,91.156],[3.404,91.156]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.949019610882,0.913725495338,0.878431379795,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[3.209,0],[0,0],[0,-3.209],[0,0],[-3.209,0],[0,0],[0,-3.645],[0,0],[-3.645,0],[0,0],[0,-3.645],[0,0],[-3.645,0],[0,0],[0,-3.645],[0,0],[-3.645,0],[0,0],[0,3.645],[0,0],[3.645,0],[0,0],[0,3.645],[0,0],[3.645,0],[0,0],[0,3.645],[0,0],[3.645,0],[0,0],[0,3.209],[0,0]],"o":[[0,0],[-3.209,0],[0,0],[0,3.209],[0,0],[-3.645,0],[0,0],[0,3.645],[0,0],[-3.645,0],[0,0],[0,3.645],[0,0],[-3.645,0],[0,0],[0,3.645],[0,0],[3.645,0],[0,0],[0,-3.645],[0,0],[3.645,0],[0,0],[0,-3.645],[0,0],[3.645,0],[0,0],[0,-3.645],[0,0],[3.209,0],[0,0],[0,-3.209]],"v":[[39.251,91.163],[-46.242,91.163],[-52.053,96.973],[-52.053,113.089],[-46.242,118.9],[-41.854,118.9],[-48.453,125.499],[-48.453,126.356],[-41.854,132.955],[-40.139,132.955],[-46.738,139.555],[-46.738,140.412],[-40.139,147.011],[-38.597,147.011],[-45.196,153.61],[-45.196,154.468],[-38.597,161.067],[31.605,161.067],[38.204,154.468],[38.204,153.61],[31.605,147.011],[33.148,147.011],[39.747,140.412],[39.747,139.555],[33.148,132.955],[34.862,132.955],[41.461,126.356],[41.461,125.499],[34.862,118.9],[39.251,118.9],[45.061,113.089],[45.061,96.973]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.729411780834,0.701960802078,0.670588254929,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-1.961,-2.711],[0,0],[-5.648,0],[0,0],[0,0],[0,0],[-3.174,4.387],[0,0],[3.49,0]],"o":[[0,0],[0,0],[-3.49,0],[0,0],[3.174,4.387],[0,0],[0,0],[0,0],[5.648,0],[0,0],[1.961,-2.711],[0,0]],"v":[[-3.495,161.067],[-3.497,161.067],[-30.042,161.067],[-33.638,167.444],[-25.949,178.072],[-11.844,185.085],[-3.497,185.085],[-3.495,185.085],[4.851,185.085],[18.955,178.072],[26.645,167.444],[23.049,161.067]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.180392161012,0.176470592618,0.160784319043,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"hd":false},{"ty":"fl","c":{"a":0,"k":[0.247058823705,0.243137255311,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"parent":9,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":49.5,"s":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.33],"y":[0]},"t":56.25,"s":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":60,"s":[100]},{"i":{"x":[0.67],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":150,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.66],"y":[0]},"t":153.75,"s":[100]},{"t":160.5,"s":[0]}]},"p":{"a":0,"k":[-3.497,-2.259,0]},"a":{"a":0,"k":[-3.497,-2.259,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-7.723,-1.278]],"o":[[0,0],[0,0]],"v":[[1.128,-169.344],[13.718,-167.806]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-1.644,-0.406]],"o":[[1.538,0.335],[0,0]],"v":[[22.482,-166.125],[27.26,-165.014]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.167,-63.261],[17.515,-20.11],[1.961,-30.142],[4.91,0],[0,0],[0.321,4.898],[19.969,23.015],[0,28.785],[-64.129,-0.796]],"o":[[-0.076,28.742],[-19.961,22.919],[-0.319,4.899],[0,0],[-4.909,0],[-1.977,-30.209],[-17.495,-20.164],[0,-63.946],[63.257,0.786]],"v":[[111.402,-74.394],[83.182,0.723],[49.207,82.422],[39.961,91.154],[-46.946,91.163],[-56.193,82.435],[-90.312,0.561],[-118.397,-74.703],[-2.037,-189.594]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.909803926945,0.776470601559,0.298039227724,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.143,-54.293],[15.032,-17.259],[1.683,-25.869],[4.214,0],[0,0],[0.275,4.204],[17.138,19.752],[0,24.704],[-55.038,-0.684]],"o":[[-0.065,24.668],[-17.131,19.67],[-0.274,4.205],[0,0],[-4.213,0],[-1.697,-25.927],[-15.015,-17.305],[0,-54.881],[54.289,0.674]],"v":[[95.114,-70.825],[70.894,-6.358],[36.854,58.759],[28.919,66.254],[-35.905,66.261],[-43.841,58.771],[-78.005,-6.496],[-102.109,-71.09],[-2.244,-169.694]],"c":true}},"hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0,1,1,1,0.679,0.986,0.969,0.837,1,0.973,0.937,0.675]}},"s":{"a":0,"k":[-1.367,-72.273]},"e":{"a":0,"k":[93.288,-72.273]},"t":2,"h":{"a":0,"k":0},"a":{"a":0,"k":0},"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.167,-63.261],[17.515,-20.11],[1.961,-30.142],[4.91,0],[0,0],[0.321,4.898],[19.969,23.015],[0,28.785],[-64.129,-0.796]],"o":[[-0.076,28.742],[-19.961,22.919],[-0.319,4.899],[0,0],[-4.909,0],[-1.977,-30.209],[-17.495,-20.164],[0,-63.946],[63.257,0.786]],"v":[[111.402,-74.394],[83.182,0.723],[49.207,82.422],[39.961,91.154],[-46.946,91.163],[-56.193,82.435],[-90.312,0.561],[-118.397,-74.703],[-2.037,-189.594]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.976470589638,0.905882358551,0.556862771511,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[-3.497,-49.22]},"a":{"a":0,"k":[-3.497,-49.22]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"parent":9,"sr":1,"ks":{"p":{"a":0,"k":[-3.497,-2.259,0]},"a":{"a":0,"k":[-3.497,-2.259,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.135,-55.447],[14.229,-17.626],[1.218,-26.419],[3.049,0],[0,0],[0.199,4.293],[16.223,20.172],[0,25.229],[-52.1,-0.698]],"o":[[-0.061,25.192],[-16.217,20.088],[-0.198,4.294],[0,0],[-3.049,0],[-1.228,-26.477],[-14.214,-17.673],[0,-56.047],[51.391,0.689]],"v":[[89.865,-71.333],[66.938,-5.495],[29.268,66.111],[14.525,92.765],[-23.451,92.272],[-36.194,66.123],[-74.011,-5.637],[-96.829,-71.604],[-2.295,-172.302]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.960784316063,0.944693684578,0.836447536945,1]},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":12,"s":[5]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":13,"s":[20]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":17,"s":[5]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":19,"s":[5]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":20,"s":[20]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":24,"s":[5]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[5]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":31,"s":[20]},{"t":35,"s":[5]}]},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[-3.497,-49.22]},"a":{"a":0,"k":[-3.497,-49.22]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"parent":9,"sr":1,"ks":{"p":{"a":0,"k":[-3.497,-2.259,0]},"a":{"a":0,"k":[-3.497,-2.259,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-7.723,-1.278]],"o":[[0,0],[0,0]],"v":[[1.128,-169.344],[13.718,-167.806]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-1.644,-0.406]],"o":[[1.538,0.335],[0,0]],"v":[[22.482,-166.125],[27.26,-165.014]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.167,-63.261],[17.515,-20.11],[1.961,-30.142],[4.91,0],[0,0],[0.321,4.898],[19.969,23.015],[0,28.785],[-64.129,-0.796]],"o":[[-0.076,28.742],[-19.961,22.919],[-0.319,4.899],[0,0],[-4.909,0],[-1.977,-30.209],[-17.495,-20.164],[0,-63.946],[63.257,0.786]],"v":[[111.402,-74.394],[83.182,0.723],[49.207,82.422],[39.961,91.154],[-46.946,91.163],[-56.193,82.435],[-90.312,0.561],[-118.397,-74.703],[-2.037,-189.594]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.819607913494,0.788235366344,0.741176486015,1]},"o":{"a":0,"k":22},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.167,-63.261],[17.515,-20.11],[1.961,-30.142],[4.91,0],[0,0],[0.321,4.898],[19.969,23.015],[0,28.785],[-64.129,-0.796]],"o":[[-0.076,28.742],[-19.961,22.919],[-0.319,4.899],[0,0],[-4.909,0],[-1.977,-30.209],[-17.495,-20.164],[0,-63.946],[63.257,0.786]],"v":[[111.402,-74.394],[83.182,0.723],[49.207,82.422],[39.961,91.154],[-46.946,91.163],[-56.193,82.435],[-90.312,0.561],[-118.397,-74.703],[-2.037,-189.594]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.729411780834,0.701960802078,0.670588254929,1]},"o":{"a":0,"k":20},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[-3.497,-49.22]},"a":{"a":0,"k":[-3.497,-49.22]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"parent":9,"sr":1,"ks":{},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[19,39]],"o":[[0,0],[-19,-39]],"v":[[-19,91],[-43,-44]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[0,0],[0,39]],"o":[[0,0],[0,-39]],"v":[[-2.5,91],[-3,-54]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":65,"s":[{"i":[[0,0],[-20.277,39]],"o":[[0,0],[20.277,-39]],"v":[[10.109,91],[33.089,-44.369]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":135,"s":[{"i":[[0,0],[0,39]],"o":[[0,0],[0,-39]],"v":[[-6,91],[-5.821,-51.65]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[19,39]],"o":[[0,0],[-19,-39]],"v":[[-19,91],[-43,-44]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.556862745098,0.545098039216,0.509803921569,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[-9,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[-100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[19,39]],"o":[[0,0],[-19,-39]],"v":[[-19,91],[-47,-44]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[0,0],[0,39]],"o":[[0,0],[0,-39]],"v":[[-6.5,91],[-6,-54]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":65,"s":[{"i":[[0,0],[-20.277,39]],"o":[[0,0],[20.277,-39]],"v":[[11.84,91],[33.918,-42.558]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":135,"s":[{"i":[[0,0],[0,39]],"o":[[0,0],[0,-39]],"v":[[-3,91],[-3.179,-51.65]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[19,39]],"o":[[0,0],[-19,-39]],"v":[[-19,91],[-47,-44]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.556862745098,0.545098039216,0.509803921569,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[4.75,13.75],[-0.25,-7.25],[-10.716,6.424],[18.801,-0.588],[-10.844,-5.012],[-6.16,15.237],[3.75,-11]],"o":[[-4.75,-13.75],[0.621,18.005],[20.836,-12.491],[-24,0.75],[13.508,6.243],[4.75,-11.75],[-3.75,11]],"v":[[-47,-43.5],[-63.5,-45],[-26.086,-27.259],[-9.75,-66],[3.851,-27.76],[48.75,-38.25],[34.25,-45]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[4.75,13.75],[-0.25,-7.25],[-10.716,6.424],[3,0.046],[9.086,-7.756],[-6.16,15.237],[3.75,-11]],"o":[[-4.75,-13.75],[0.621,18.005],[20.836,-12.491],[-1.501,-0.023],[-8.851,7.556],[4.75,-11.75],[-3.75,11]],"v":[[-6,-53.75],[-19.5,-42.75],[1.164,-26.759],[-8.5,-68],[3.851,-27.76],[-19,-43],[-6.5,-54.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":65,"s":[{"i":[[-4.463,13.75],[0.235,-7.25],[10.069,6.424],[-17.665,-0.588],[10.189,-5.012],[5.788,15.237],[-3.524,-11]],"o":[[4.463,-13.75],[-0.583,18.005],[-19.577,-12.491],[22.551,0.75],[-12.692,6.243],[-4.463,-11.75],[3.524,11]],"v":[[34.221,-43.5],[49.725,-45],[14.57,-27.259],[-0.779,-66],[-13.559,-27.76],[-55.747,-38.25],[-42.122,-45]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":135,"s":[{"i":[[-6.101,13.75],[0.321,-7.25],[13.763,6.424],[-3.853,0.046],[-11.669,-7.756],[7.912,15.237],[-4.817,-11]],"o":[[6.101,-13.75],[-0.797,18.005],[-26.761,-12.491],[1.927,-0.023],[11.368,7.556],[-6.101,-11.75],[4.817,11]],"v":[[-3.226,-51.661],[14.113,-40.661],[-12.429,-24.67],[3.517,-76.161],[-15.879,-25.671],[13.471,-40.911],[-2.584,-52.411]],"c":false}]},{"t":180,"s":[{"i":[[4.75,13.75],[-0.25,-7.25],[-10.716,6.424],[18.801,-0.588],[-10.844,-5.012],[-6.16,15.237],[3.75,-11]],"o":[[-4.75,-13.75],[0.621,18.005],[20.836,-12.491],[-24,0.75],[13.508,6.243],[4.75,-11.75],[-3.75,11]],"v":[[-47,-43.5],[-63.5,-45],[-26.086,-27.259],[-9.75,-66],[3.851,-27.76],[48.75,-38.25],[34.25,-45]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.244]},"t":12,"s":[0.556862745098,0.545098039216,0.509803921569,1]},{"i":{"x":[0.833],"y":[1.244]},"o":{"x":[0.333],"y":[0]},"t":13,"s":[1,0.970519065857,0.721568584442,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":17,"s":[0.556862745098,0.545098039216,0.509803921569,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.244]},"t":19,"s":[0.556862745098,0.545098039216,0.509803921569,1]},{"i":{"x":[0.833],"y":[1.244]},"o":{"x":[0.333],"y":[0]},"t":20,"s":[1,0.970519065857,0.721568584442,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":24,"s":[0.556862745098,0.545098039216,0.509803921569,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.244]},"t":30,"s":[0.556862745098,0.545098039216,0.509803921569,1]},{"i":{"x":[0.833],"y":[1.244]},"o":{"x":[0.333],"y":[0]},"t":31,"s":[1,0.970519065857,0.721568584442,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":35,"s":[0.556862745098,0.545098039216,0.509803921569,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.299]},"t":48,"s":[0.556862745098,0.545098039216,0.509803921569,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":54,"s":[0.949019670486,0.945098102093,0.937254965305,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":60,"s":[0.949019670486,0.945098102093,0.937254965305,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":150,"s":[0.949019670486,0.945098102093,0.937254965305,1]},{"i":{"x":[0.833],"y":[1.299]},"o":{"x":[0.333],"y":[0]},"t":156,"s":[0.949019670486,0.945098102093,0.937254965305,1]},{"t":162,"s":[0.556862745098,0.545098039216,0.509803921569,1]}]},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":12,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":13,"s":[76]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":17,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":19,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":20,"s":[76]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":24,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":31,"s":[76]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":35,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":49.5,"s":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":56.25,"s":[94]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":60,"s":[94]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":151.5,"s":[94]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":155.25,"s":[94]},{"t":162,"s":[0]}]},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":12,"s":[8]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":13,"s":[23]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":17,"s":[8]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":19,"s":[8]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":22,"s":[17]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":24,"s":[8]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[8]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":31,"s":[23]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":33,"s":[17]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":35,"s":[8]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":49.5,"s":[8]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":56.25,"s":[62]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":60,"s":[62]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":151.5,"s":[62]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":155.25,"s":[62]},{"t":162,"s":[8]}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[4.75,13.75],[-0.25,-7.25],[-10.716,6.424],[18.801,-0.588],[-10.844,-5.012],[-6.16,15.237],[3.75,-11]],"o":[[-4.75,-13.75],[0.621,18.005],[20.836,-12.491],[-24,0.75],[13.508,6.243],[4.75,-11.75],[-3.75,11]],"v":[[-47,-43.5],[-63.5,-45],[-26.086,-27.259],[-9.75,-66],[3.851,-27.76],[48.75,-38.25],[34.25,-45]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[4.75,13.75],[-0.25,-7.25],[-10.716,6.424],[3,0.046],[9.086,-7.756],[-6.16,15.237],[3.75,-11]],"o":[[-4.75,-13.75],[0.621,18.005],[20.836,-12.491],[-1.501,-0.023],[-8.851,7.556],[4.75,-11.75],[-3.75,11]],"v":[[-6,-53.75],[-19.5,-42.75],[1.164,-26.759],[-8.5,-68],[3.851,-27.76],[-19,-43],[-6.5,-54.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":65,"s":[{"i":[[-4.463,13.75],[0.235,-7.25],[10.069,6.424],[-17.665,-0.588],[10.189,-5.012],[5.788,15.237],[-3.524,-11]],"o":[[4.463,-13.75],[-0.583,18.005],[-19.577,-12.491],[22.551,0.75],[-12.692,6.243],[-4.463,-11.75],[3.524,11]],"v":[[34.221,-43.5],[49.725,-45],[14.57,-27.259],[-0.779,-66],[-13.559,-27.76],[-55.747,-38.25],[-42.122,-45]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":135,"s":[{"i":[[-6.101,13.75],[0.321,-7.25],[13.763,6.424],[-3.853,0.046],[-11.669,-7.756],[7.912,15.237],[-4.817,-11]],"o":[[6.101,-13.75],[-0.797,18.005],[-26.761,-12.491],[1.927,-0.023],[11.368,7.556],[-6.101,-11.75],[4.817,11]],"v":[[-3.226,-51.661],[14.113,-40.661],[-12.429,-24.67],[3.517,-76.161],[-15.879,-25.671],[13.471,-40.911],[-2.584,-52.411]],"c":false}]},{"t":180,"s":[{"i":[[4.75,13.75],[-0.25,-7.25],[-10.716,6.424],[18.801,-0.588],[-10.844,-5.012],[-6.16,15.237],[3.75,-11]],"o":[[-4.75,-13.75],[0.621,18.005],[20.836,-12.491],[-24,0.75],[13.508,6.243],[4.75,-11.75],[-3.75,11]],"v":[[-47,-43.5],[-63.5,-45],[-26.086,-27.259],[-9.75,-66],[3.851,-27.76],[48.75,-38.25],[34.25,-45]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.299]},"t":12,"s":[0.556862745098,0.545098039216,0.509803921569,1]},{"i":{"x":[0.833],"y":[1.299]},"o":{"x":[0.333],"y":[0]},"t":13,"s":[0.949019670486,0.945098102093,0.937254965305,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":17,"s":[0.556862745098,0.545098039216,0.509803921569,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.299]},"t":19,"s":[0.556862745098,0.545098039216,0.509803921569,1]},{"i":{"x":[0.833],"y":[1.299]},"o":{"x":[0.333],"y":[0]},"t":20,"s":[0.949019670486,0.945098102093,0.937254965305,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":24,"s":[0.556862745098,0.545098039216,0.509803921569,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.299]},"t":30,"s":[0.556862745098,0.545098039216,0.509803921569,1]},{"i":{"x":[0.833],"y":[1.299]},"o":{"x":[0.333],"y":[0]},"t":31,"s":[0.949019670486,0.945098102093,0.937254965305,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":35,"s":[0.556862745098,0.545098039216,0.509803921569,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":48,"s":[0.556862745098,0.545098039216,0.509803921569,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":49.5,"s":[0.949019670486,0.945098102093,0.937254965305,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":60,"s":[0.949019670486,0.945098102093,0.937254965305,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":150,"s":[0.949019670486,0.945098102093,0.937254965305,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":160.5,"s":[0.949019670486,0.945098102093,0.937254965305,1]},{"t":162,"s":[0.556862745098,0.545098039216,0.509803921569,1]}]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0}]} \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/wallet_lock.tgs b/TMessagesProj/src/main/res/raw/tsv_setup_intro.tgs similarity index 100% rename from TMessagesProj/src/main/res/raw/wallet_lock.tgs rename to TMessagesProj/src/main/res/raw/tsv_setup_intro.tgs diff --git a/TMessagesProj/src/main/res/raw/tsv_setup_mail.tgs b/TMessagesProj/src/main/res/raw/tsv_setup_mail.tgs new file mode 100644 index 000000000..95eb3dc76 --- /dev/null +++ b/TMessagesProj/src/main/res/raw/tsv_setup_mail.tgs @@ -0,0 +1 @@ +{"tgs":1,"v":"5.5.2","fr":60,"ip":0,"op":160,"w":512,"h":512,"nm":"mailbox 2","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"parent":5,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":13,"s":[90]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":29,"s":[-12]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":37,"s":[0]},{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":116,"s":[0]},{"t":140,"s":[90]}]},"p":{"a":0,"k":[31.33,30.02,0]},"a":{"a":0,"k":[31.33,30.02,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":13,"s":[{"i":[[6.36,0.147],[0,0],[0,-2.736],[0,0],[-12.058,0],[0,0],[0,13.892],[0,0],[0,0],[0,2.743],[0,0]],"o":[[0,0],[-3.18,-0.16],[0,0],[0,14.194],[0,0],[12.058,0],[0,0],[0,0],[4.747,0.17],[0,0],[0,-2.519]],"v":[[100.558,-116.307],[19.95,-118.49],[12.129,-113.741],[12.129,23.957],[31.638,47.813],[31.638,47.813],[51.147,23.957],[51.147,-84.775],[101.565,-83.474],[110.323,-88.222],[110.323,-111.559]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":29,"s":[{"i":[[6.36,0.267],[0,0],[0,-4.955],[0,0],[-10.375,0],[0,0],[0,19.204],[0,0],[0,0],[0,4.967],[0,0]],"o":[[0,0],[-2.736,-0.29],[0,0],[0,19.621],[0,0],[10.375,0],[0,0],[0,0],[4.747,0.308],[0,0],[0,-4.562]],"v":[[100.558,-178.055],[21.561,-182.007],[14.833,-173.408],[14.833,14.836],[31.617,47.813],[31.617,47.813],[48.402,14.836],[48.402,-120.953],[101.565,-118.597],[110.323,-127.194],[110.323,-169.456]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":37,"s":[{"i":[[6.36,0.267],[0,0],[0,-4.955],[0,0],[-10.375,0],[0,0],[0,19.204],[0,0],[0,0],[0,4.967],[0,0]],"o":[[0,0],[-2.736,-0.29],[0,0],[0,19.621],[0,0],[10.375,0],[0,0],[0,0],[4.747,0.308],[0,0],[0,-4.562]],"v":[[100.558,-178.055],[21.561,-182.007],[14.833,-173.408],[14.833,14.836],[31.617,47.813],[31.617,47.813],[48.402,14.836],[48.402,-120.953],[101.565,-118.597],[110.323,-127.194],[110.323,-169.456]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":116,"s":[{"i":[[6.36,0.267],[0,0],[0,-4.955],[0,0],[-10.375,0],[0,0],[0,19.204],[0,0],[0,0],[0,4.967],[0,0]],"o":[[0,0],[-2.736,-0.29],[0,0],[0,19.621],[0,0],[10.375,0],[0,0],[0,0],[4.747,0.308],[0,0],[0,-4.562]],"v":[[100.558,-178.055],[21.561,-182.007],[14.833,-173.408],[14.833,14.836],[31.617,47.813],[31.617,47.813],[48.402,14.836],[48.402,-120.953],[101.565,-118.597],[110.323,-127.194],[110.323,-169.456]],"c":true}]},{"t":140,"s":[{"i":[[6.36,0.147],[0,0],[0,-2.736],[0,0],[-12.058,0],[0,0],[0,13.892],[0,0],[0,0],[0,2.743],[0,0]],"o":[[0,0],[-3.18,-0.16],[0,0],[0,14.194],[0,0],[12.058,0],[0,0],[0,0],[4.747,0.17],[0,0],[0,-2.519]],"v":[[100.558,-116.307],[19.95,-118.49],[12.129,-113.741],[12.129,23.957],[31.638,47.813],[31.638,47.813],[51.147,23.957],[51.147,-84.775],[101.565,-83.474],[110.323,-88.222],[110.323,-111.559]],"c":true}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.560784339905,0,0.070588238537,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":13,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[53.165,-111.863],[69.793,-111.207]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":29,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[50.138,-170.007],[69.793,-168.818]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":37,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[50.138,-170.007],[69.793,-168.818]],"c":false}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":116,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[50.138,-170.007],[69.793,-168.818]],"c":false}]},{"t":140,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[53.165,-111.863],[69.793,-111.207]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":13,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[85.455,-110.75],[91.448,-110.55]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":29,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[85.455,-167.991],[91.448,-167.629]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":37,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[85.455,-167.991],[91.448,-167.629]],"c":false}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":116,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[85.455,-167.991],[91.448,-167.629]],"c":false}]},{"t":140,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[85.455,-110.75],[91.448,-110.55]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":13,"s":[{"i":[[0,0],[0,0],[6.356,0.149],[0,0],[-0.015,0.011],[0,0],[0.489,-0.023],[0,0],[0,-2.736],[0,0],[0,0],[0,0],[-12.059,0],[-4.174,4.707],[-0.612,3.214],[-0.015,-0.439],[9.05,0],[0,16.771],[0,0],[-2.592,-0.061]],"o":[[4.146,0.069],[0,-2.523],[0,0],[0.015,-0.011],[0,0],[-0.506,-0.015],[0,0],[-3.189,-0.16],[0,0],[0,0],[0,0],[0,7.839],[6.029,0],[2.339,-2.638],[-0.386,0.377],[0.156,4.51],[-9.867,0],[0,0],[0,-1.233],[0,0]],"v":[[95.944,-111.419],[110.319,-111.005],[100.561,-116.31],[25.496,-118.357],[25.536,-118.392],[22.28,-118.488],[20.79,-118.468],[19.956,-118.488],[12.134,-113.741],[9.809,-113.709],[12.134,-113.654],[12.134,23.959],[31.638,47.813],[47.065,38.151],[50.971,25.734],[49.714,26.817],[37.085,41.881],[23.86,17.091],[23.86,-111.11],[28.624,-113.263]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":29,"s":[{"i":[[0,0],[0,0],[6.356,0.271],[0,0],[-0.013,0.02],[0,0],[0.42,-0.042],[0,0],[0,-4.955],[0,0],[0,0],[0,0],[-10.375,0],[-3.592,6.506],[-0.527,4.443],[-0.013,-0.606],[7.787,0],[0,23.183],[0,0],[-2.23,-0.111]],"o":[[4.146,0.126],[0,-4.568],[0,0],[0.013,-0.02],[0,0],[-0.436,-0.027],[0,0],[-2.744,-0.29],[0,0],[0,0],[0,0],[0,10.837],[5.188,0],[2.013,-3.646],[-0.333,0.521],[0.134,6.235],[-8.489,0],[0,0],[0,-2.233],[0,0]],"v":[[95.944,-169.202],[110.319,-168.453],[100.561,-178.059],[26.333,-181.766],[26.367,-181.83],[23.566,-182.004],[22.284,-181.968],[21.566,-182.004],[14.836,-173.408],[12.836,-173.35],[14.836,-173.25],[14.836,14.838],[31.617,47.813],[44.89,34.456],[48.25,17.292],[47.168,18.789],[36.303,39.613],[24.925,5.344],[24.925,-168.643],[29.024,-172.542]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":37,"s":[{"i":[[0,0],[0,0],[6.356,0.271],[0,0],[-0.013,0.02],[0,0],[0.42,-0.042],[0,0],[0,-4.955],[0,0],[0,0],[0,0],[-10.375,0],[-3.592,6.506],[-0.527,4.443],[-0.013,-0.606],[7.787,0],[0,23.183],[0,0],[-2.23,-0.111]],"o":[[4.146,0.126],[0,-4.568],[0,0],[0.013,-0.02],[0,0],[-0.436,-0.027],[0,0],[-2.744,-0.29],[0,0],[0,0],[0,0],[0,10.837],[5.188,0],[2.013,-3.646],[-0.333,0.521],[0.134,6.235],[-8.489,0],[0,0],[0,-2.233],[0,0]],"v":[[95.944,-169.202],[110.319,-168.453],[100.561,-178.059],[26.333,-181.766],[26.367,-181.83],[23.566,-182.004],[22.284,-181.968],[21.566,-182.004],[14.836,-173.408],[12.836,-173.35],[14.836,-173.25],[14.836,14.838],[31.617,47.813],[44.89,34.456],[48.25,17.292],[47.168,18.789],[36.303,39.613],[24.925,5.344],[24.925,-168.643],[29.024,-172.542]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":116,"s":[{"i":[[0,0],[0,0],[6.356,0.271],[0,0],[-0.013,0.02],[0,0],[0.42,-0.042],[0,0],[0,-4.955],[0,0],[0,0],[0,0],[-10.375,0],[-3.592,6.506],[-0.527,4.443],[-0.013,-0.606],[7.787,0],[0,23.183],[0,0],[-2.23,-0.111]],"o":[[4.146,0.126],[0,-4.568],[0,0],[0.013,-0.02],[0,0],[-0.436,-0.027],[0,0],[-2.744,-0.29],[0,0],[0,0],[0,0],[0,10.837],[5.188,0],[2.013,-3.646],[-0.333,0.521],[0.134,6.235],[-8.489,0],[0,0],[0,-2.233],[0,0]],"v":[[95.944,-169.202],[110.319,-168.453],[100.561,-178.059],[26.333,-181.766],[26.367,-181.83],[23.566,-182.004],[22.284,-181.968],[21.566,-182.004],[14.836,-173.408],[12.836,-173.35],[14.836,-173.25],[14.836,14.838],[31.617,47.813],[44.89,34.456],[48.25,17.292],[47.168,18.789],[36.303,39.613],[24.925,5.344],[24.925,-168.643],[29.024,-172.542]],"c":true}]},{"t":140,"s":[{"i":[[0,0],[0,0],[6.356,0.149],[0,0],[-0.015,0.011],[0,0],[0.489,-0.023],[0,0],[0,-2.736],[0,0],[0,0],[0,0],[-12.059,0],[-4.174,4.707],[-0.612,3.214],[-0.015,-0.439],[9.05,0],[0,16.771],[0,0],[-2.592,-0.061]],"o":[[4.146,0.069],[0,-2.523],[0,0],[0.015,-0.011],[0,0],[-0.506,-0.015],[0,0],[-3.189,-0.16],[0,0],[0,0],[0,0],[0,7.839],[6.029,0],[2.339,-2.638],[-0.386,0.377],[0.156,4.51],[-9.867,0],[0,0],[0,-1.233],[0,0]],"v":[[95.944,-111.419],[110.319,-111.005],[100.561,-116.31],[25.496,-118.357],[25.536,-118.392],[22.28,-118.488],[20.79,-118.468],[19.956,-118.488],[12.134,-113.741],[9.809,-113.709],[12.134,-113.654],[12.134,23.959],[31.638,47.813],[47.065,38.151],[50.971,25.734],[49.714,26.817],[37.085,41.881],[23.86,17.091],[23.86,-111.11],[28.624,-113.263]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.266666680574,0.23137255013,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":13,"s":[{"i":[[6.36,0.147],[0,0],[0,-2.736],[0,0],[-20.671,0],[0,0],[0,7.839],[0,0],[0,0],[0,2.743],[0,0]],"o":[[0,0],[-3.18,-0.16],[0,0],[0,7.839],[0,0],[20.329,0],[0,0],[0,0],[4.747,0.17],[0,0],[0,-2.519]],"v":[[100.558,-116.307],[19.95,-118.49],[12.129,-113.741],[12.129,23.957],[31.638,47.576],[31.638,47.576],[51.147,23.957],[51.147,-84.775],[101.565,-83.474],[110.323,-88.222],[110.323,-111.559]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":29,"s":[{"i":[[6.36,0.267],[0,0],[0,-4.955],[0,0],[-17.785,0],[0,0],[0,10.836],[0,0],[0,0],[0,4.967],[0,0]],"o":[[0,0],[-2.736,-0.29],[0,0],[0,10.836],[0,0],[17.49,0],[0,0],[0,0],[4.747,0.308],[0,0],[0,-4.562]],"v":[[100.558,-178.055],[21.561,-182.007],[14.833,-173.408],[14.833,14.836],[31.617,47.486],[31.617,47.486],[48.402,14.836],[48.402,-120.953],[101.565,-118.597],[110.323,-127.194],[110.323,-169.456]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":37,"s":[{"i":[[6.36,0.267],[0,0],[0,-4.955],[0,0],[-17.785,0],[0,0],[0,10.836],[0,0],[0,0],[0,4.967],[0,0]],"o":[[0,0],[-2.736,-0.29],[0,0],[0,10.836],[0,0],[17.49,0],[0,0],[0,0],[4.747,0.308],[0,0],[0,-4.562]],"v":[[100.558,-178.055],[21.561,-182.007],[14.833,-173.408],[14.833,14.836],[31.617,47.486],[31.617,47.486],[48.402,14.836],[48.402,-120.953],[101.565,-118.597],[110.323,-127.194],[110.323,-169.456]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":116,"s":[{"i":[[6.36,0.267],[0,0],[0,-4.955],[0,0],[-17.785,0],[0,0],[0,10.836],[0,0],[0,0],[0,4.967],[0,0]],"o":[[0,0],[-2.736,-0.29],[0,0],[0,10.836],[0,0],[17.49,0],[0,0],[0,0],[4.747,0.308],[0,0],[0,-4.562]],"v":[[100.558,-178.055],[21.561,-182.007],[14.833,-173.408],[14.833,14.836],[31.617,47.486],[31.617,47.486],[48.402,14.836],[48.402,-120.953],[101.565,-118.597],[110.323,-127.194],[110.323,-169.456]],"c":true}]},{"t":140,"s":[{"i":[[6.36,0.147],[0,0],[0,-2.736],[0,0],[-20.671,0],[0,0],[0,7.839],[0,0],[0,0],[0,2.743],[0,0]],"o":[[0,0],[-3.18,-0.16],[0,0],[0,7.839],[0,0],[20.329,0],[0,0],[0,0],[4.747,0.17],[0,0],[0,-2.519]],"v":[[100.558,-116.307],[19.95,-118.49],[12.129,-113.741],[12.129,23.957],[31.638,47.576],[31.638,47.576],[51.147,23.957],[51.147,-84.775],[101.565,-83.474],[110.323,-88.222],[110.323,-111.559]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.901960790157,0.137254908681,0.050980392843,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":160,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"parent":1,"sr":1,"ks":{"o":{"a":0,"k":35},"p":{"a":0,"k":[51.124,-36.298,0]},"a":{"a":0,"k":[51.124,-36.298,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":13,"s":[{"i":[[0,0],[-1.159,-2.156],[0,-29.205],[0,0],[-19.882,0],[0,0],[0,19.204],[0,0],[0,0],[-0.097,1.949],[12.363,16.71],[0.523,0.157]],"o":[[-2.159,-0.105],[3.72,6.921],[0,0],[0,19.621],[0,0],[0,0],[0,0],[0,0],[1.609,0.441],[0.451,-9.02],[-0.355,-0.48],[0,0]],"v":[[13.006,-110.545],[10.645,-105.695],[7.957,-52.015],[6.833,18.836],[32.719,51.813],[32.719,51.813],[47.168,18.836],[43.925,-64.476],[103.023,-65.748],[106.292,-68.624],[95.552,-110.49],[94.195,-111.464]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":29,"s":[{"i":[[0,0],[-1.159,-1.824],[0,-24.711],[0,0],[-19.882,0],[0,0],[0,19.204],[0,0],[0,0],[-0.097,1.649],[12.363,14.139],[0.523,0.133]],"o":[[-2.159,-0.089],[3.72,5.856],[0,0],[0,19.621],[0,0],[0,0],[0,0],[0,0],[1.609,0.373],[0.451,-7.632],[-0.355,-0.407],[0,0]],"v":[[13.006,-125.439],[10.645,-121.336],[7.957,-75.916],[6.833,18.836],[32.719,51.813],[32.719,51.813],[47.168,18.836],[43.925,-86.459],[96.416,-74.288],[99.686,-76.721],[89.552,-118.068],[88.195,-118.892]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":37,"s":[{"i":[[0,0],[-1.159,-1.824],[0,-24.711],[0,0],[-19.882,0],[0,0],[0,19.204],[0,0],[0,0],[0.244,1.634],[15.008,11.292],[0.54,0.022]],"o":[[-2.159,-0.089],[3.72,5.856],[0,0],[0,19.621],[0,0],[0,0],[0,0],[0,0],[1.652,0.034],[-1.129,-7.562],[-0.432,-0.325],[0,0]],"v":[[1.03,-124.407],[-1.331,-120.303],[6.833,-80.245],[6.833,18.836],[32.719,51.813],[32.719,51.813],[47.168,18.836],[47.402,-80.188],[101.275,-79.079],[103.974,-82.134],[85.549,-120.51],[84.051,-121.037]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":116,"s":[{"i":[[0,0],[-1.159,-1.824],[0,-24.711],[0,0],[-19.882,0],[0,0],[0,19.204],[0,0],[0,0],[0.244,1.634],[15.008,11.292],[0.54,0.022]],"o":[[-2.159,-0.089],[3.72,5.856],[0,0],[0,19.621],[0,0],[0,0],[0,0],[0,0],[1.652,0.034],[-1.129,-7.562],[-0.432,-0.325],[0,0]],"v":[[1.03,-124.407],[-1.331,-120.303],[6.833,-80.245],[6.833,18.836],[32.719,51.813],[32.719,51.813],[47.168,18.836],[47.402,-80.188],[101.275,-79.079],[103.974,-82.134],[85.549,-120.51],[84.051,-121.037]],"c":true}]},{"t":140,"s":[{"i":[[0,0],[-1.159,-2.156],[0,-29.205],[0,0],[-19.882,0],[0,0],[0,19.204],[0,0],[0,0],[-0.097,1.949],[12.363,16.71],[0.523,0.157]],"o":[[-2.159,-0.105],[3.72,6.921],[0,0],[0,19.621],[0,0],[0,0],[0,0],[0,0],[1.609,0.441],[0.451,-9.02],[-0.355,-0.48],[0,0]],"v":[[13.006,-110.545],[10.645,-105.695],[7.957,-52.015],[6.833,18.836],[32.719,51.813],[32.719,51.813],[47.168,18.836],[43.925,-64.476],[103.023,-65.748],[106.292,-68.624],[95.552,-110.49],[94.195,-111.464]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.019607843831,0.266666680574,0.40000000596,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":160,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"parent":5,"sr":1,"ks":{"p":{"a":0,"k":[3.823,-25.759,0]},"a":{"a":0,"k":[3.823,-25.759,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-5.508,0],[0,0]],"o":[[0,0],[0,0],[0,5.508],[0,0],[0,0]],"v":[[-14.887,101.327],[-187.077,101.327],[-187.077,104.933],[-177.104,114.907],[-14.887,114.907]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.101960785687,0.360784322023,0.529411792755,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"fl","c":{"a":0,"k":[0.070588238537,0.572549045086,0.768627464771,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[138.508,-104.956],[152.553,-104.657]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-51.68],[0,0],[4.774,-0.221],[0,0],[0,0],[42.39,5.37],[0,0],[-0.05,0],[0,0]],"o":[[0,0],[0,4.779],[0,0],[0,0],[0,-43.84],[0,0],[0.01,-0.13],[-0.62,-0.08],[98.439,0]],"v":[[194.723,-26.733],[194.723,96.647],[186.192,105.583],[-14.887,114.907],[-14.887,-80.813],[-90.057,-166.213],[-90.057,-166.223],[-89.967,-166.423],[86.413,-160.963]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.101960785687,0.360784322023,0.529411792755,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[181.926,-103.033],[-19.385,-107.311],[-31.21,-131.247],[169.155,-125.992]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":60},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[3.794,0],[49.88,1.54],[13.46,1.7],[0,0],[-0.05,0],[0,0],[-15.352,-10.269]],"o":[[-3.523,-0.25],[0,0],[-10.78,-7.18],[0,0],[0.01,-0.13],[-0.62,-0.08],[27.286,0],[0,0]],"v":[[85.456,-148.185],[74.482,-148.563],[-53.328,-152.513],[-90.057,-166.213],[-90.057,-166.223],[-89.967,-166.423],[86.413,-160.963],[149.531,-144.352]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.419607847929,0.874509811401,0.976470589638,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":30},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-41.92],[0,0],[0,0],[0,0],[42.39,5.37],[0,0],[-0.05,0],[-17.2,-0.53]],"o":[[0,0],[0,0],[0,0],[0,-43.84],[0,0],[0.01,-0.13],[-0.16,-0.02],[34.65,6.12]],"v":[[-3.097,-80.813],[-3.097,114.357],[-14.887,114.907],[-14.887,-80.813],[-90.057,-166.213],[-90.057,-166.223],[-89.967,-166.423],[-61.427,-165.563]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.51372551918,0.909803926945,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":50},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-51.68],[0,0],[5.266,-0.244],[0,0],[0,0],[42.39,5.37],[0,0],[-0.05,0],[0,0]],"o":[[0,0],[0,5.272],[0,0],[0,0],[0,-43.84],[0,0],[0.01,-0.13],[-0.62,-0.08],[98.439,0]],"v":[[194.723,-26.733],[194.723,95.766],[185.312,105.623],[-14.887,114.907],[-14.887,-80.813],[-90.057,-166.213],[-90.057,-166.223],[-89.967,-166.423],[86.413,-160.963]],"c":true}},"hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":7,"k":{"a":0,"k":[0,0.141,0.616,0.827,0.147,0.422,0.771,0.914,0.268,0.702,0.925,1,0.367,0.437,0.782,0.904,0.578,0.173,0.639,0.808,0.734,0.12,0.58,0.751,0.966,0.067,0.522,0.694]}},"s":{"a":0,"k":[51.633,-171.873]},"e":{"a":0,"k":[51.633,56.259]},"t":1,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-43.202],[0,0],[0,0],[0,0],[42.39,5.164],[0,0],[3.7,0],[0,0],[3.23,-0.355],[-12.33,0],[0,0],[-3.57,-0.443],[0,0]],"o":[[0,0],[0,0],[0,0],[0,-42.167],[0,0],[-3.57,-0.434],[0,0],[-3.32,0],[10.6,-4.602],[0,0],[3.7,0],[0,0],[42.39,5.292]],"v":[[-14.887,-77.963],[-14.887,110.907],[-39.707,110.907],[-39.707,-73.371],[-114.877,-155.518],[-114.877,-155.527],[-125.797,-156.178],[-125.807,-156.178],[-135.637,-155.646],[-100.987,-162.8],[-100.977,-162.8],[-90.057,-162.13],[-90.057,-162.12]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.054901961237,0.058823529631,0.058823529631,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":30},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":160,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"parent":5,"sr":1,"ks":{"p":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0.167},"t":0,"s":[-251.072,-3.833,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":0.34},"o":{"x":0.66,"y":0.66},"t":35,"s":[4.928,-3.833,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.66,"y":0},"t":111,"s":[4.928,-3.833,0],"to":[0,0,0],"ti":[0,0,0]},{"t":130,"s":[144.928,-3.833,0]}]},"a":{"a":0,"k":[4.928,-3.833,0]},"s":{"a":1,"k":[{"i":{"x":[0.34,0.34,0.34],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"t":0,"s":[0,0,100]},{"i":{"x":[0.34,0.34,0.34],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":21,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,1]},"o":{"x":[0.66,0.66,0.66],"y":[0,0,0]},"t":119,"s":[100,100,100]},{"t":130,"s":[0,0,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[4.367,-0.322],[0,0],[0,5.823],[0,0],[-4.367,-0.14],[0,0],[0,-5.17],[0,0]],"o":[[0,0],[-4.367,0.291],[0,0],[0,-5.823],[0,0],[4.367,0.14],[0,0],[0,5.17]],"v":[[107.815,92.484],[-97.959,93.689],[-105.866,83.673],[-105.866,-90.146],[-97.959,-100.435],[107.815,-93.832],[115.722,-84.218],[115.722,82.541]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.639215707779,0.639215707779,0.639215707779,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[4.367,-0.322],[0,0],[0,5.823],[0,0],[-4.367,-0.14],[0,0],[0,-5.17],[0,0]],"o":[[0,0],[-4.367,0.291],[0,0],[0,-5.823],[0,0],[4.367,0.14],[0,0],[0,5.17]],"v":[[107.815,92.484],[-97.959,93.689],[-105.866,83.673],[-105.866,-90.146],[-97.959,-100.435],[107.815,-93.832],[115.722,-84.218],[115.722,82.541]],"c":true}},"hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0,1,1,1,0.158,0.584,0.586,0.588,0.665,0.169,0.173,0.176,0,0,0.158,0.5,0.665,1]}},"s":{"a":0,"k":[-106.367,-3.873]},"e":{"a":0,"k":[115.221,-3.873]},"t":1,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":54},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[58.102,-87.443],[69.365,-87.131]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[77.415,-86.909],[80.628,-86.82]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0.841,-0.955],[0,0],[2.532,3.006],[0,0],[-1.174,-0.032]],"o":[[1.173,0.032],[0,0],[-2.532,3.169],[0,0],[-0.843,-1.104],[0,0]],"v":[[99.09,-86.158],[100.001,-83.452],[9.47,24.743],[0.39,25.046],[-90.399,-88.417],[-89.489,-91.363]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.898039221764,0.898039221764,0.898039221764,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-3.886],[0,0],[3.028,3.579],[0,0],[-3.282,-0.107],[0,0]],"o":[[0,0],[-3.028,3.814],[0,0],[0,-4.376],[0,0],[3.282,0.107]],"v":[[115.72,-87.428],[10.364,37.794],[-0.505,38.233],[-105.866,-93.762],[-99.922,-101.494],[109.775,-94.659]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.639215707779,0.639215707779,0.639215707779,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-3.886],[0,0],[3.028,3.579],[0,0],[-3.282,-0.107],[0,0]],"o":[[0,0],[-3.028,3.814],[0,0],[0,-4.376],[0,0],[3.282,0.107]],"v":[[115.72,-87.428],[10.364,37.794],[-0.505,38.233],[-105.866,-93.762],[-99.922,-101.494],[109.775,-94.659]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.960784316063,0.960784316063,0.960784316063,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,3.886],[0,0],[0,0],[-3.282,0.218],[0,0]],"o":[[0,0],[0,0],[0,4.376],[0,0],[3.282,-0.242]],"v":[[115.72,84.865],[4.93,-55.881],[-105.866,86.29],[-99.922,93.82],[109.775,92.339]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.639215707779,0.639215707779,0.639215707779,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-0.841,1.133],[0,0],[-2.532,-3.083],[0,0],[1.174,-0.081]],"o":[[-1.173,0.072],[0,0],[2.532,-3.093],[0,0],[0.843,0.919],[0,0]],"v":[[-89.489,83.41],[-90.4,80.497],[0.131,-36.053],[9.211,-36.059],[100,81.6],[99.09,84.345]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.898039221764,0.898039221764,0.898039221764,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,3.886],[0,0],[0,0],[-3.282,0.218],[0,0]],"o":[[0,0],[0,0],[0,4.376],[0,0],[3.282,-0.242]],"v":[[115.72,84.865],[4.93,-55.881],[-105.866,86.29],[-99.922,93.82],[109.775,92.339]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.960784316063,0.960784316063,0.960784316063,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[3.283,0.105],[0,0],[0,-4.377],[0,0],[0,0],[1.276,-1.627],[0,0],[0,0],[-3.283,0.218],[0,0],[0,3.886],[0,0],[0,0],[-1.276,1.532],[0,0]],"o":[[0,-3.886],[0,0],[-3.283,-0.105],[0,0],[0,0],[1.276,1.583],[0,0],[0,0],[0,4.377],[0,0],[3.283,-0.242],[0,0],[0,0],[-1.276,-1.488],[0,0],[0,0]],"v":[[115.72,-86.541],[109.775,-93.768],[-99.922,-100.497],[-105.866,-92.762],[-105.866,-77.724],[-50.596,-7.119],[-50.596,-1.258],[-105.866,71.251],[-105.866,86.29],[-99.922,93.82],[109.775,92.339],[115.72,84.865],[115.72,71.512],[60.452,-3.34],[60.452,-8.862],[115.72,-73.188]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.639215707779,0.670588254929,0.666666686535,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":40},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[4.367,-0.322],[0,0],[0,5.802],[0,0],[-4.367,-0.14],[0,0],[0,-5.191],[0,0]],"o":[[0,0],[-4.367,0.291],[0,0],[0,-5.802],[0,0],[4.367,0.14],[0,0],[0,5.191]],"v":[[100.661,93.01],[-90.805,93.213],[-98.712,83.235],[-98.712,-89.955],[-90.805,-100.206],[100.661,-94.062],[108.568,-84.409],[108.568,83.029]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.898039221764,0.898039221764,0.898039221764,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[4.367,-0.322],[0,0],[0,5.823],[0,0],[-4.367,-0.14],[0,0],[0,-5.17],[0,0]],"o":[[0,0],[-4.367,0.291],[0,0],[0,-5.823],[0,0],[4.367,0.14],[0,0],[0,5.17]],"v":[[107.815,92.484],[-97.959,93.689],[-105.866,83.673],[-105.866,-90.146],[-97.959,-100.435],[107.815,-93.832],[115.722,-84.218],[115.722,82.541]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.960784316063,0.960784316063,0.960784316063,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":160,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"sr":1,"ks":{"p":{"a":0,"k":[271.018,362.002,0]},"a":{"a":0,"k":[15.018,106.002,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-43.84],[0,0],[0,0],[0,4.94],[0,0],[-47.546,0],[0,0],[-3.57,-0.45],[0,0]],"o":[[0,0],[0,0],[-4.94,0],[0,0],[0,-47.546],[0,0],[3.7,0],[0,0],[42.39,5.37]],"v":[[-14.887,-80.813],[-14.887,114.907],[-178.132,114.907],[-187.077,105.962],[-187.077,-80.813],[-100.987,-166.903],[-100.977,-166.903],[-90.057,-166.223],[-90.057,-166.213]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.101960785687,0.360784322023,0.529411792755,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-43.84],[0,0],[0,0],[0,0],[24.56,13.67],[-26.06,0],[0,0],[-3.57,-0.45],[0,0]],"o":[[0,0],[0,0],[0,0],[0,-30.09],[15.78,-18.3],[0,0],[3.7,0],[0,0],[42.39,5.37]],"v":[[-14.887,-80.813],[-14.887,114.907],[-124.997,114.907],[-124.997,-67.043],[-166.177,-137.023],[-100.987,-166.903],[-100.977,-166.903],[-90.057,-166.223],[-90.057,-166.213]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.054901961237,0.058823529631,0.058823529631,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-43.84],[0,0],[0,0],[0,6.644],[0,0],[-47.546,0],[0,0],[-3.57,-0.45],[0,0]],"o":[[0,0],[0,0],[-6.644,0],[0,0],[0,-47.546],[0,0],[3.7,0],[0,0],[42.39,5.37]],"v":[[-14.887,-80.813],[-14.887,114.907],[-175.046,114.907],[-187.077,102.876],[-187.077,-80.813],[-100.987,-166.903],[-100.977,-166.903],[-90.057,-166.223],[-90.057,-166.213]],"c":true}},"hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0,0.208,0.216,0.22,0.238,0.131,0.137,0.139,1,0.055,0.059,0.059]}},"s":{"a":0,"k":[-101.367,-47.873]},"e":{"a":0,"k":[-101.367,-152.551]},"t":1,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":160,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"sr":1,"ks":{"p":{"a":0,"k":[266.313,418.321,0]},"a":{"a":0,"k":[10.313,162.321,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[60.334,202.256],[60.334,106.215],[-39.707,106.215],[-39.707,202.256]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.298039227724,0.243137255311,0.156862750649,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[7.44,7.44],[11.35,0],[0,-22.7],[0,0],[5.76,2.98],[0,0]],"o":[[0,0],[0,-11.35],[-7.44,-7.44],[-22.7,0],[0,0],[-6.09,-1.88],[0,0],[0,0]],"v":[[60.333,106.217],[60.333,172.777],[48.293,143.707],[19.223,131.667],[-21.887,172.777],[-21.887,213.547],[-39.707,206.257],[-39.707,106.217]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.298039227724,0.243137255311,0.156862750649,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":50},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[10.63,0],[0,0]],"o":[[0,0],[-10.28,3.11],[0,0],[0,0]],"v":[[41.863,106.217],[41.863,213.757],[10.313,218.427],[10.313,106.217]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.827450990677,0.729411780834,0.525490224361,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[17.17,0],[4.59,0.59],[6.02,1.87],[5.76,2.98],[0,0]],"o":[[0,0],[-15.68,8.11],[-4.62,0],[-6.2,-0.8],[-6.09,-1.88],[0,0],[0,0]],"v":[[60.333,106.217],[60.333,206.257],[10.313,218.427],[-3.517,217.547],[-21.887,213.547],[-39.707,206.257],[-39.707,106.217]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.65098041296,0.549019634724,0.360784322023,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":160,"st":0,"bm":0}]} \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/tsv_setup_monkey_close_and_peek.tgs b/TMessagesProj/src/main/res/raw/tsv_setup_monkey_close_and_peek.tgs new file mode 100644 index 000000000..cc60a3edc --- /dev/null +++ b/TMessagesProj/src/main/res/raw/tsv_setup_monkey_close_and_peek.tgs @@ -0,0 +1 @@ +{"tgs":1,"v":"5.5.2","fr":60,"ip":0,"op":33,"w":512,"h":512,"nm":"_password_peek - close","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":3,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":0,"k":[256,256,0]},"s":{"a":0,"k":[95,95,100]}},"ao":0,"ip":0,"op":33,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":3,"parent":11,"sr":1,"ks":{"o":{"a":0,"k":0}},"ao":0,"ip":0,"op":33,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.66],"y":[0]},"t":0,"s":[-12.879]},{"t":24,"s":[0]}]},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":0,"s":[127.498,860.89,0],"to":[0,0,0],"ti":[0,0,0]},{"t":24,"s":[127.498,460.89,0]}]},"a":{"a":0,"k":[150.003,211.463,0]},"s":{"a":0,"k":[-95,95,100]}},"ao":0,"ef":[{"ty":5,"nm":"arm R: Path 1 [1.1.1.0]","np":3,"mn":"ADBE Layer Control","ix":1,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.1.1.1]","np":3,"mn":"ADBE Layer Control","ix":2,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.1.1.2]","np":3,"mn":"ADBE Layer Control","ix":3,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.2.1.0]","np":3,"mn":"ADBE Layer Control","ix":4,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.2.1.1]","np":3,"mn":"ADBE Layer Control","ix":5,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.2.1.2]","np":3,"mn":"ADBE Layer Control","ix":6,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.0]","np":3,"mn":"ADBE Layer Control","ix":7,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.1]","np":3,"mn":"ADBE Layer Control","ix":8,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.2]","np":3,"mn":"ADBE Layer Control","ix":9,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.3]","np":3,"mn":"ADBE Layer Control","ix":10,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.4]","np":3,"mn":"ADBE Layer Control","ix":11,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.5]","np":3,"mn":"ADBE Layer Control","ix":12,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.6]","np":3,"mn":"ADBE Layer Control","ix":13,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.0]","np":3,"mn":"ADBE Layer Control","ix":14,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.1]","np":3,"mn":"ADBE Layer Control","ix":15,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.2]","np":3,"mn":"ADBE Layer Control","ix":16,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.3]","np":3,"mn":"ADBE Layer Control","ix":17,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.4]","np":3,"mn":"ADBE Layer Control","ix":18,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.5]","np":3,"mn":"ADBE Layer Control","ix":19,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.6]","np":3,"mn":"ADBE Layer Control","ix":20,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.7]","np":3,"mn":"ADBE Layer Control","ix":21,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.8]","np":3,"mn":"ADBE Layer Control","ix":22,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.9]","np":3,"mn":"ADBE Layer Control","ix":23,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.10]","np":3,"mn":"ADBE Layer Control","ix":24,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.11]","np":3,"mn":"ADBE Layer Control","ix":25,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.12]","np":3,"mn":"ADBE Layer Control","ix":26,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.13]","np":3,"mn":"ADBE Layer Control","ix":27,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.14]","np":3,"mn":"ADBE Layer Control","ix":28,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.15]","np":3,"mn":"ADBE Layer Control","ix":29,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.16]","np":3,"mn":"ADBE Layer Control","ix":30,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]}],"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.264},"t":0,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0.631,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1.262,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1.895,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2.527,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.158,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.789,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4.42,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5.053,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5.684,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6.316,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.938,182.938]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6.947,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.938,183]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7.578,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.875,183.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8.211,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.75,183.188]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8.842,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.688,183.375]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9.473,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.563,183.625]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.105,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.438,184.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.736,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.25,184.625]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11.369,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.125,185.313]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.375,46.563],[98.625,84.625],[104.063,186.125]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12.631,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[91.938,46.75],[98.625,84.625],[104,187.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.262,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[91.375,47.063],[98.625,84.625],[104.125,188]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.895,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[90.563,47.438],[98.625,84.625],[104.313,188.938]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14.527,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[89.563,47.938],[98.625,84.625],[104.625,189.938]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15.158,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[88.438,48.5],[98.625,84.625],[105.125,190.938]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15.789,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[87.188,49.125],[98.625,84.625],[105.813,191.75]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16.42,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[85.875,49.813],[98.625,84.625],[106.625,192.563]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17.053,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[84.5,50.5],[98.625,84.625],[107.625,193.375]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17.684,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[83.125,51.25],[98.625,84.625],[108.688,194.25]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.316,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[81.75,51.938],[98.625,84.625],[109.688,195.313]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.947,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[80.375,52.625],[98.625,84.625],[110.688,196.563]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19.578,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[79,53.313],[98.625,84.625],[111.625,197.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20.211,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[77.813,53.938],[98.625,84.625],[112.375,199.125]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20.842,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[76.688,54.5],[98.625,84.625],[112.938,200.25]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21.473,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[75.688,55],[98.625,84.625],[113.375,201.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22.105,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[74.875,55.438],[98.625,84.625],[113.688,201.625]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22.736,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[74.25,55.75],[98.625,84.625],[113.875,201.938]],"c":false}]},{"i":{"x":0.833,"y":0.736},"o":{"x":0.167,"y":0.167},"t":23.369,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.875,55.938],[98.625,84.625],[114,202.063]],"c":false}]},{"t":24,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[114.063,202.063]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.264},"t":0,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0.631,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1.262,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1.895,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2.527,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.158,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.789,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4.42,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5.053,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5.684,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.625,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6.316,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.625,163.063],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6.947,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.563,163.063],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7.578,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.438,163],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8.211,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.313,162.938],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8.842,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.125,162.813],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9.473,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.875,162.688],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.105,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.625,162.688],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.736,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.313,162.688],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11.369,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176,162.75],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[175.688,162.938],[156.688,64.313],[157.688,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12.631,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[175.5,163.313],[156.688,64.313],[157.75,37.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.262,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[175.438,163.813],[156.688,64.313],[157.938,37.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.895,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[175.563,164.563],[156.688,64.313],[158.125,37.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14.527,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[175.875,165.5],[156.688,64.313],[158.375,37.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15.158,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.438,166.75],[156.688,64.313],[158.625,37.125]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15.789,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.438,168.438],[156.688,64.313],[158.938,37.125]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16.42,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[178.688,170.563],[156.688,64.313],[159.25,37.188]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17.053,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[180.125,173.063],[156.688,64.313],[159.563,37.25]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17.684,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[181.75,176],[156.688,64.313],[159.938,37.25]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.316,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[183.313,179.313],[156.688,64.313],[160.25,37.313]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.947,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[184.813,182.938],[156.688,64.313],[160.563,37.313]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19.578,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[186.125,186.688],[156.688,64.313],[160.938,37.375]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20.211,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[187.188,190.375],[156.688,64.313],[161.188,37.375]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20.842,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[188,193.75],[156.688,64.313],[161.5,37.438]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21.473,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[188.563,196.688],[156.688,64.313],[161.688,37.438]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22.105,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189,199.063],[156.688,64.313],[161.938,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22.736,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189.188,200.75],[156.688,64.313],[162.063,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.736},"o":{"x":0.167,"y":0.167},"t":23.369,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189.313,201.75],[156.688,64.313],[162.125,37.5]],"c":false}]},{"t":24,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189.375,202.063],[156.688,64.313],[162.188,37.5]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.264},"t":0,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0.631,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1.262,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1.895,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2.527,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.158,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.789,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4.42,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5.053,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5.684,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.938],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6.316,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.813,185.938],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6.947,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.625,186.563],[133.813,185.938],[179.063,164.688],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7.578,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.625,186.625],[133.75,186],[178.938,164.625],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8.211,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.5,186.688],[133.688,186],[178.813,164.563],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8.842,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.438,186.813],[133.563,186.063],[178.625,164.438],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9.473,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.313,187],[133.438,186.188],[178.438,164.375],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.105,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.188,187.25],[133.313,186.438],[178.188,164.313],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.736,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.063,187.688],[133.188,186.75],[177.875,164.313],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11.369,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121,188.313],[133.125,187.25],[177.563,164.375],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[120.938,189],[133,187.813],[177.25,164.563],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12.631,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[120.938,189.75],[133,188.5],[177.063,164.875],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.262,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121,190.563],[133.125,189.25],[177,165.375],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.895,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.25,191.438],[133.375,190.063],[177.125,166.125],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14.527,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.563,192.5],[133.875,191],[177.438,167.063],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15.158,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[122.063,193.5],[134.688,192],[178,168.313],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15.789,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[122.813,194.563],[135.875,193],[179,170.063],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16.42,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[123.688,195.688],[137.375,194.063],[180.188,172.188],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17.053,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[124.688,196.875],[139.25,195.375],[181.625,174.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17.684,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[125.813,198.313],[141.438,196.813],[183.188,177.688],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.316,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[126.875,199.938],[143.938,198.563],[184.688,181.063],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.947,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[128,201.75],[146.75,200.5],[186.125,184.688],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19.578,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[128.938,203.688],[149.813,202.563],[187.375,188.5],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20.211,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[129.813,205.625],[153,204.75],[188.375,192.25],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20.842,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[130.5,207.375],[156.188,206.813],[189.188,195.688],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21.473,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.063,208.813],[159.125,208.625],[189.688,198.625],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22.105,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.375,209.875],[161.438,210.188],[190.063,201],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22.736,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.625,210.563],[163,211.313],[190.25,202.688],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.736},"o":{"x":0.167,"y":0.167},"t":23.369,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.75,210.938],[163.875,211.938],[190.313,203.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"t":24,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.75,211.063],[164.125,212.188],[190.375,204.063],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.737254917622,0.572549045086,0.349019616842,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.264},"t":0,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0.631,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1.262,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1.895,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2.527,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.158,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.789,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4.42,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5.053,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5.684,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6.316,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.813],[116.75,186.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6.947,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.063,164.688],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.688,185.875],[116.75,186.563]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7.578,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178.938,164.625],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.688,185.938],[116.688,186.625]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8.211,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178.813,164.563],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.563,186.063],[116.625,186.688]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8.842,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178.625,164.438],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.5,186.25],[116.5,186.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9.473,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178.438,164.375],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.375,186.5],[116.375,187.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.105,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178.188,164.313],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.25,186.938],[116.25,187.375]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.736,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.875,164.313],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.125,187.5],[116.188,187.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11.369,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.563,164.375],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.063,188.188],[116.063,188.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.25,164.563],[156.688,64.313],[154.375,35.563],[156.063,41.75],[157.438,35],[153.688,31.25],[149.875,36.625],[147.75,26.938],[143.375,27.75],[138.125,45],[129.188,29.5],[125.75,31.813],[107.875,54.063],[93.625,42.313],[98.625,84.625],[104.938,189],[116,189.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12.631,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.063,164.875],[156.688,64.313],[154.5,35.563],[155.938,41.813],[157.25,34.938],[153.438,31.25],[149.563,36.688],[147.25,26.875],[142.875,27.688],[137.625,44.938],[128.5,29.688],[125.063,32],[107.563,54.188],[93.188,42.5],[98.625,84.625],[104.938,189.875],[116,190]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.262,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177,165.375],[156.688,64.313],[154.625,35.5],[155.75,41.875],[156.875,34.813],[153.063,31.25],[149,36.813],[146.438,26.875],[142.063,27.688],[136.813,44.938],[127.375,29.938],[123.938,32.25],[107.063,54.313],[92.5,42.813],[98.625,84.625],[105.063,190.813],[116.063,190.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.895,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.125,166.125],[156.688,64.313],[154.875,35.5],[155.5,42],[156.375,34.688],[152.563,31.25],[148.375,36.938],[145.375,26.813],[141,27.625],[135.75,44.875],[125.938,30.25],[122.5,32.563],[106.438,54.563],[91.625,43.188],[98.625,84.625],[105.25,191.75],[116.375,191.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14.527,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.438,167.063],[156.688,64.313],[155.188,35.438],[155.25,42.188],[155.813,34.563],[152,31.25],[147.5,37.125],[144.063,26.813],[139.688,27.625],[134.438,44.875],[124.25,30.625],[120.813,32.938],[105.625,54.813],[90.563,43.688],[98.625,84.625],[105.625,192.813],[116.875,192.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15.158,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178,168.313],[156.688,64.313],[155.5,35.375],[154.875,42.313],[155.188,34.375],[151.313,31.188],[146.563,37.313],[142.563,26.75],[138.188,27.563],[132.938,44.813],[122.25,31.125],[118.813,33.438],[104.688,55.125],[89.313,44.188],[98.625,84.625],[106.063,193.75],[117.75,193.688]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15.789,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179,170.063],[156.688,64.313],[155.875,35.375],[154.5,42.5],[154.438,34.188],[150.563,31.188],[145.563,37.563],[140.938,26.688],[136.563,27.5],[131.313,44.75],[120.063,31.625],[116.625,33.938],[103.688,55.438],[88,44.75],[98.625,84.625],[106.75,194.625],[118.938,194.563]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16.42,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[180.188,172.188],[156.688,64.313],[156.25,35.313],[154.125,42.75],[153.688,34],[149.75,31.188],[144.438,37.813],[139.25,26.625],[134.875,27.438],[129.625,44.688],[117.75,32.125],[114.313,34.438],[102.625,55.813],[86.563,45.375],[98.625,84.625],[107.5,195.375],[120.5,195.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17.053,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[181.625,174.75],[156.688,64.313],[156.625,35.25],[153.688,42.938],[152.875,33.75],[148.875,31.188],[143.313,38],[137.438,26.563],[133.063,27.375],[127.813,44.625],[115.313,32.688],[111.875,35],[101.5,56.188],[85.063,46.063],[98.625,84.625],[108.438,196.25],[122.438,196.563]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17.684,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[183.188,177.688],[156.688,64.313],[157.063,35.188],[153.25,43.125],[152.063,33.563],[148.063,31.188],[142.125,38.25],[135.563,26.438],[131.188,27.25],[125.938,44.5],[112.813,33.313],[109.375,35.625],[100.375,56.563],[83.5,46.688],[98.625,84.625],[109.375,197.188],[124.688,197.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.316,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[184.688,181.063],[156.688,64.313],[157.5,35.125],[152.875,43.375],[151.25,33.313],[147.188,31.188],[140.938,38.5],[133.75,26.375],[129.375,27.188],[124.125,44.438],[110.313,33.875],[106.875,36.188],[99.25,56.938],[81.938,47.375],[98.625,84.625],[110.375,198.25],[127.25,199.313]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.947,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[186.125,184.688],[156.688,64.313],[157.875,35.063],[152.438,43.563],[150.438,33.125],[146.313,31.188],[139.813,38.75],[131.938,26.313],[127.563,27.125],[122.313,44.375],[107.875,34.438],[104.438,36.75],[98.125,57.313],[80.438,48],[98.625,84.625],[111.25,199.5],[130.125,201.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19.578,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[187.375,188.5],[156.688,64.313],[158.25,35],[152.063,43.75],[149.625,32.938],[145.563,31.188],[138.688,39],[130.188,26.25],[125.813,27.063],[120.563,44.313],[105.563,34.938],[102.125,37.25],[97.063,57.688],[79,48.625],[98.625,84.625],[112.063,200.813],[133.25,203.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20.211,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[188.375,192.25],[156.688,64.313],[158.625,34.938],[151.688,43.938],[148.938,32.75],[144.813,31.125],[137.625,39.25],[128.563,26.188],[124.188,27],[118.938,44.25],[103.375,35.438],[99.938,37.75],[96.063,58],[77.688,49.188],[98.625,84.625],[112.75,202.063],[136.625,205.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20.842,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[189.188,195.688],[156.688,64.313],[158.938,34.875],[151.313,44.125],[148.25,32.563],[144.125,31.125],[136.688,39.438],[127.125,26.125],[122.75,26.938],[117.5,44.188],[101.375,35.938],[97.938,38.25],[95.125,58.313],[76.438,49.75],[98.625,84.625],[113.25,203.188],[139.938,207.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21.473,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[189.688,198.625],[156.688,64.313],[159.25,34.813],[151,44.25],[147.688,32.438],[143.5,31.125],[135.875,39.563],[125.813,26.125],[121.438,26.938],[116.188,44.188],[99.625,36.313],[96.188,38.625],[94.313,58.625],[75.375,50.188],[98.625,84.625],[113.563,204.063],[142.938,209.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22.105,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.063,201],[156.688,64.313],[159.5,34.813],[150.813,44.375],[147.25,32.313],[143,31.125],[135.188,39.75],[124.75,26.063],[120.375,26.875],[115.125,44.125],[98.188,36.688],[94.75,39],[93.688,58.813],[74.5,50.563],[98.625,84.625],[113.813,204.625],[145.25,210.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22.736,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.25,202.688],[156.688,64.313],[159.688,34.75],[150.625,44.5],[146.875,32.188],[142.625,31.125],[134.688,39.875],[123.938,26],[119.563,26.813],[114.313,44.063],[97.125,36.938],[93.688,39.25],[93.188,59],[73.813,50.875],[98.625,84.625],[113.938,204.938],[146.875,211.875]],"c":true}]},{"i":{"x":0.833,"y":0.736},"o":{"x":0.167,"y":0.167},"t":23.369,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.313,203.75],[156.688,64.313],[159.75,34.75],[150.5,44.563],[146.625,32.125],[142.375,31.125],[134.375,39.938],[123.438,26],[119.063,26.813],[113.813,44.063],[96.438,37.063],[93,39.375],[92.875,59.063],[73.375,51.063],[98.625,84.625],[114.063,205.063],[147.75,212.563]],"c":true}]},{"t":24,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.375,204.063],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[114.063,205.063],[148,212.75]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-16.69,-65.288]],"o":[[0,0],[0,0]],"v":[[73.894,-101.727],[107.348,-44.337]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":11.369,"s":[{"i":[[0,0],[-9.623,-65.983]],"o":[[0,0],[0,0]],"v":[[86.517,-104.667],[113.459,-44.71]],"c":false}]},{"t":24,"s":[{"i":[[0,0],[-12.183,-34.643]],"o":[[0,0],[0,0]],"v":[[41.387,-96.927],[74.702,-38.38]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.580392181873,0.376470595598,0.215686276555,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-2.646,-17.122]],"o":[[0,0],[0,0]],"v":[[138.271,-76.891],[151.566,-37.773]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":11.369,"s":[{"i":[[0,0],[-0.82,-17.124]],"o":[[0,0],[0,0]],"v":[[147.278,-73.523],[156.287,-33.644]],"c":false}]},{"t":24,"s":[{"i":[[0,0],[-3.811,-17.322]],"o":[[0,0],[0,0]],"v":[[133.538,-74.755],[147.742,-34.569]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.580392181873,0.376470595598,0.215686276555,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-6.464,-30.14]],"o":[[0,0],[0,0]],"v":[[102.888,-115.812],[129.737,-55.865]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":11.369,"s":[{"i":[[0,0],[-3.221,-30.331]],"o":[[0,0],[0,0]],"v":[[116.515,-115.508],[136.69,-53.721]],"c":false}]},{"t":24,"s":[{"i":[[0,0],[-9.007,-30.14]],"o":[[0,0],[0,0]],"v":[[76.723,-110.438],[108.941,-50.159]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.580392181873,0.376470595598,0.215686276555,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[1.676,27.483],[3.695,28.652],[3.658,5.082],[12.679,8.661],[-4.848,-6.104],[8.701,-0.373],[-1.243,-12.125],[3.171,-10.075],[-4.13,-20.458],[-5.598,-30.564]],"o":[[0,0],[-1.916,-14.839],[0,0],[-9.537,-6.514],[0,0],[-8.701,0.373],[0,0],[-3.982,12.672],[4.971,24.626],[5.598,30.564]],"v":[[158.002,30.408],[156.721,-15.376],[138.158,-76.84],[110.861,-121.787],[102.888,-115.812],[85.917,-125.277],[73.12,-101.612],[62.796,-91.3],[80.13,-14.627],[91.476,44.341]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":11.369,"s":[{"i":[[1.676,27.483],[2.293,28.734],[3.07,5.382],[11.575,9.843],[-4.135,-6.511],[8.601,0.539],[0.04,-12.061],[4.168,-9.585],[-1.933,-20.561],[-5.598,-30.564]],"o":[[0,0],[-1.189,-14.881],[0,0],[-8.706,-7.403],[0,0],[-8.601,-0.539],[0,0],[-5.238,12.055],[2.327,24.75],[5.598,30.564]],"v":[[158.002,30.408],[159.55,-13.781],[147.162,-73.484],[124.983,-120.557],[116.515,-115.508],[100.8,-126.589],[85.743,-104.635],[74.51,-95.563],[83.581,-18.309],[91.476,44.341]],"c":true}]},{"t":24,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[20.093,-1.386],[17.668,8.661],[0.693,-7.275],[12.125,-0.373],[-1.732,-12.125],[5.123,-13.539],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-13.289,-6.514],[0,0],[-12.125,0.373],[0,0],[-4.85,12.818],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[133.538,-74.755],[98.895,-119.792],[76.723,-110.438],[56.63,-121.551],[41.387,-96.927],[24.412,-87.574],[41.676,-22.528],[71.867,54.464]],"c":true}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.580392181873,0.376470595598,0.215686276555,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[18.227,70.013],[-0.955,-4.807],[-5.174,-30.8],[1.97,27.525],[2.796,28.747],[0.833,4.577],[42.671,-3.275]],"o":[[1.422,5.679],[4.897,24.645],[5.172,30.786],[0,0],[-0.438,-4.506],[0,0],[-33.501,2.571]],"v":[[72.743,-42.351],[80.985,-14.74],[91.955,44.096],[157.821,30.381],[156.339,-15.374],[154.428,-29.076],[126.056,33.44]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":11.369,"s":[{"i":[[10.643,70.793],[-0.439,-4.83],[-5.174,-30.8],[1.97,27.525],[1.391,28.785],[0.608,4.602],[42.671,-3.275]],"o":[[0.808,5.736],[2.251,24.762],[5.172,30.786],[0,0],[-0.218,-4.512],[0,0],[-33.501,2.571]],"v":[[79.2,-46.36],[84.434,-18.331],[91.955,44.096],[157.821,30.381],[159.169,-13.797],[157.931,-27.545],[126.056,33.44]],"c":true}]},{"t":24,"s":[{"i":[[25.645,70.013],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[2.001,5.679],[4.557,24.917],[23.028,21.078],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[37.09,-38.535],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.86274510622,0.690196096897,0.498039215803,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[-1.514,-7.28],[0.061,1.65],[-9.227,-21.206],[-3.298,-2.59],[0,0],[5.097,11.596],[0,0],[-8.843,-15.225],[-3.241,-8.911],[-0.236,1.029],[0,0],[0,0],[-11.324,-21.096],[-1.026,-3.12],[0,0],[0,0],[-0.359,-0.5],[3.452,0.229],[12.678,8.654],[0.502,-7.28],[8.704,-0.38],[-1.241,-12.13],[3.207,-9.614]],"o":[[0.581,-1.63],[-0.388,-10.39],[9.825,22.58],[4.341,3.409],[-2.102,-11.65],[-5.095,-11.59],[3.696,-18],[7.987,13.751],[3.244,8.92],[0.237,-1.03],[-3.057,-15.14],[0.983,-11.32],[13.14,24.479],[0.902,2.742],[0,0],[-1.188,-8.907],[-4.844,-11.84],[0,0],[-9.537,-6.51],[0,0],[-8.698,0.38],[0,0],[-1.392,4.179]],"v":[[64.06,-73.479],[64.9,-78.479],[85.959,-77.223],[102.23,-39.658],[106.399,-44.978],[89.149,-87.81],[75.586,-103.328],[99.915,-99.538],[122.397,-57.039],[129.968,-54.119],[129.502,-57.959],[107.314,-106.568],[119.816,-94.129],[151.54,-37.516],[151.418,-38.881],[142.579,-54.608],[146.257,-53.662],[138.301,-76.838],[111.097,-121.789],[103.118,-115.807],[86.149,-125.279],[73.354,-101.608],[63.027,-91.299]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":11.369,"s":[{"i":[[-0.732,-7.321],[-0.111,1.63],[-6.871,-21.828],[-2.976,-2.892],[0,0],[3.808,11.942],[0,0],[-7.116,-15.903],[-2.261,-9.106],[-0.339,0.988],[0,0],[0,0],[-8.946,-21.939],[-0.685,-3.177],[0,0],[0,0],[-0.301,-0.529],[3.373,0.585],[11.574,9.836],[1.253,-7.111],[8.605,0.533],[0.042,-12.066],[4.156,-9.127]],"o":[[0.742,-1.543],[0.701,-10.264],[7.316,23.242],[3.917,3.807],[-0.855,-11.683],[-3.807,-11.936],[5.512,-17.328],[6.427,14.363],[2.263,9.115],[0.34,-0.989],[-1.431,-15.217],[2.147,-11.037],[10.38,25.457],[0.602,2.792],[0,0],[-0.241,-8.888],[-3.533,-12.155],[0,0],[-8.707,-7.399],[0,0],[-8.598,-0.532],[0,0],[-1.805,3.967]],"v":[[73.898,-77.895],[75.245,-82.728],[95.837,-79.298],[107.935,-40.639],[112.592,-45.44],[100.078,-89.384],[88.349,-106.067],[111.894,-99.803],[129.59,-55.641],[136.736,-51.979],[136.677,-55.807],[119.907,-105.95],[130.914,-92.407],[156.234,-33.395],[156.257,-34.75],[149.197,-51.147],[152.717,-49.833],[147.302,-73.467],[125.215,-120.534],[116.74,-115.479],[101.029,-126.567],[85.973,-104.607],[74.737,-95.538]],"c":true}]},{"t":24,"s":[{"i":[[-2.11,-7.28],[0.08,1.65],[-12.857,-21.206],[-4.596,-2.59],[0,0],[7.09,11.6],[0,0],[-12.323,-15.225],[-4.52,-8.91],[-0.32,1.03],[0,0],[0,0],[-15.78,-21.096],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[10.24,-0.71],[17.66,8.66],[0.7,-7.28],[12.13,-0.37],[-1.73,-12.13],[5.13,-13.54]],"o":[[0.81,-1.63],[-0.54,-10.39],[13.69,22.58],[6.049,3.409],[-2.93,-11.65],[-7.1,-11.59],[5.15,-18],[11.13,13.751],[4.52,8.92],[0.33,-1.03],[-4.26,-15.14],[1.37,-11.32],[18.31,24.479],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-13.29,-6.51],[0,0],[-12.12,0.38],[0,0],[-1.61,4.25]],"v":[[26.173,-69.753],[27.343,-74.753],[48.083,-70.753],[68.653,-33.843],[74.463,-39.163],[54.034,-80.303],[44.824,-98.643],[74.463,-95.213],[98.713,-51.333],[109.264,-48.413],[108.614,-52.253],[84.773,-102.243],[111.373,-92.133],[140.114,-32.473],[147.793,-35.753],[142.653,-52.793],[159.744,-55.513],[133.864,-74.753],[99.224,-119.793],[77.043,-110.433],[56.954,-121.553],[41.713,-96.923],[24.733,-87.573]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.988235294819,0.890196084976,0.780392169952,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[1.676,27.483],[2.83,28.75],[3.402,5.465],[12.679,8.661],[0.497,-7.275],[8.701,-0.373],[-1.243,-12.125],[3.306,-9.58],[-4.13,-20.458],[-5.598,-30.564]],"o":[[0,0],[-2.762,-28.061],[0,0],[-9.537,-6.514],[0,0],[-8.701,0.373],[0,0],[-4.33,12.558],[4.971,24.626],[5.598,30.564]],"v":[[158.002,30.408],[156.721,-15.376],[138.158,-76.84],[110.861,-121.787],[102.888,-115.812],[85.917,-125.277],[73.12,-101.612],[62.796,-91.3],[80.13,-14.627],[91.476,44.341]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":11.369,"s":[{"i":[[1.676,27.483],[1.424,28.79],[2.778,5.732],[11.575,9.843],[1.247,-7.107],[8.601,0.539],[0.04,-12.061],[4.25,-9.083],[-1.933,-20.561],[-5.598,-30.564]],"o":[[0,0],[-1.39,-28.1],[0,0],[-8.706,-7.403],[0,0],[-8.601,-0.539],[0,0],[-5.569,11.907],[2.327,24.75],[5.598,30.564]],"v":[[158.002,30.408],[159.55,-13.781],[147.162,-73.484],[124.983,-120.557],[116.515,-115.508],[100.8,-126.589],[85.743,-104.635],[74.51,-95.563],[83.581,-18.309],[91.476,44.341]],"c":true}]},{"t":24,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[20.093,-1.386],[17.668,8.661],[0.693,-7.275],[12.125,-0.373],[-1.732,-12.125],[5.123,-13.539],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-13.289,-6.514],[0,0],[-12.125,0.373],[0,0],[-4.85,12.818],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[133.538,-74.755],[98.895,-119.792],[76.723,-110.438],[56.63,-121.551],[41.387,-96.927],[24.412,-87.574],[41.676,-22.528],[71.867,54.464]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.913725495338,0.78823530674,0.647058844566,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":33,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.66],"y":[0]},"t":0,"s":[19]},{"t":24,"s":[0]}]},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":0,"s":[378.502,850.89,0],"to":[0,0,0],"ti":[0,0,0]},{"t":24,"s":[378.502,550.89,0]}]},"a":{"a":0,"k":[150.003,211.463,0]},"s":{"a":0,"k":[95,95,100]}},"ao":0,"ef":[{"ty":5,"nm":"arm R: Path 1 [1.1.1.0]","np":3,"mn":"ADBE Layer Control","ix":1,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.1.1.1]","np":3,"mn":"ADBE Layer Control","ix":2,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.1.1.2]","np":3,"mn":"ADBE Layer Control","ix":3,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.2.1.0]","np":3,"mn":"ADBE Layer Control","ix":4,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.2.1.1]","np":3,"mn":"ADBE Layer Control","ix":5,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.2.1.2]","np":3,"mn":"ADBE Layer Control","ix":6,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.0]","np":3,"mn":"ADBE Layer Control","ix":7,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.1]","np":3,"mn":"ADBE Layer Control","ix":8,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.2]","np":3,"mn":"ADBE Layer Control","ix":9,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.3]","np":3,"mn":"ADBE Layer Control","ix":10,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.4]","np":3,"mn":"ADBE Layer Control","ix":11,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.5]","np":3,"mn":"ADBE Layer Control","ix":12,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.6]","np":3,"mn":"ADBE Layer Control","ix":13,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.0]","np":3,"mn":"ADBE Layer Control","ix":14,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.1]","np":3,"mn":"ADBE Layer Control","ix":15,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.2]","np":3,"mn":"ADBE Layer Control","ix":16,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.3]","np":3,"mn":"ADBE Layer Control","ix":17,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.4]","np":3,"mn":"ADBE Layer Control","ix":18,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.5]","np":3,"mn":"ADBE Layer Control","ix":19,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.6]","np":3,"mn":"ADBE Layer Control","ix":20,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.7]","np":3,"mn":"ADBE Layer Control","ix":21,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.8]","np":3,"mn":"ADBE Layer Control","ix":22,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.9]","np":3,"mn":"ADBE Layer Control","ix":23,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.10]","np":3,"mn":"ADBE Layer Control","ix":24,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.11]","np":3,"mn":"ADBE Layer Control","ix":25,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.12]","np":3,"mn":"ADBE Layer Control","ix":26,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.13]","np":3,"mn":"ADBE Layer Control","ix":27,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.14]","np":3,"mn":"ADBE Layer Control","ix":28,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.15]","np":3,"mn":"ADBE Layer Control","ix":29,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.16]","np":3,"mn":"ADBE Layer Control","ix":30,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]}],"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.396},"t":0,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0.42,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0.842,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1.264,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1.686,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2.105,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2.525,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2.947,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.365,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.791,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4.209,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.938,182.938]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4.635,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.938,183]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5.051,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.875,183.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5.475,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.75,183.188]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5.895,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.688,183.375]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6.314,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.563,183.625]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6.736,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.438,184.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7.158,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.25,184.625]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7.58,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.125,185.313]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.375,46.563],[98.625,84.625],[104.063,186.125]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8.42,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[91.938,46.75],[98.625,84.625],[104,187.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8.842,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[91.375,47.063],[98.625,84.625],[104.125,188]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9.264,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[90.563,47.438],[98.625,84.625],[104.313,188.938]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9.686,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[89.563,47.938],[98.625,84.625],[104.625,189.938]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.105,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[88.438,48.5],[98.625,84.625],[105.125,190.938]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.525,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[87.188,49.125],[98.625,84.625],[105.813,191.75]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.947,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[85.875,49.813],[98.625,84.625],[106.625,192.563]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11.365,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[84.5,50.5],[98.625,84.625],[107.625,193.375]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11.791,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[83.125,51.25],[98.625,84.625],[108.688,194.25]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12.209,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[81.75,51.938],[98.625,84.625],[109.688,195.313]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12.635,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[80.375,52.625],[98.625,84.625],[110.688,196.563]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.051,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[79,53.313],[98.625,84.625],[111.625,197.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.475,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[77.813,53.938],[98.625,84.625],[112.375,199.125]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.895,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[76.688,54.5],[98.625,84.625],[112.938,200.25]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14.314,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[75.688,55],[98.625,84.625],[113.375,201.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14.736,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[74.875,55.438],[98.625,84.625],[113.688,201.625]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15.158,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[74.25,55.75],[98.625,84.625],[113.875,201.938]],"c":false}]},{"i":{"x":0.833,"y":0.604},"o":{"x":0.167,"y":0.167},"t":15.58,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.875,55.938],[98.625,84.625],[114,202.063]],"c":false}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0},"t":16,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[114.063,202.063]],"c":false}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0.333},"t":18,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[113.081,199.218]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.333},"t":18.5,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[111.369,186.872]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[109.303,159.126]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19.5,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[107.842,140.839]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[106.402,128.737]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20.5,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[105.017,121.766]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[104.538,116.654]],"c":false}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":21.5,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[104.059,112.859]],"c":false}]},{"t":24,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[103.513,107.589]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.396},"t":0,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0.42,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0.842,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1.264,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1.686,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2.105,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2.525,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2.947,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.365,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.791,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.625,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4.209,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.625,163.063],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4.635,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.563,163.063],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5.051,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.438,163],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5.475,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.313,162.938],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5.895,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.125,162.813],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6.314,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.875,162.688],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6.736,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.625,162.688],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7.158,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.313,162.688],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7.58,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176,162.75],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[175.688,162.938],[156.688,64.313],[157.688,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8.42,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[175.5,163.313],[156.688,64.313],[157.75,37.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8.842,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[175.438,163.813],[156.688,64.313],[157.938,37.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9.264,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[175.563,164.563],[156.688,64.313],[158.125,37.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9.686,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[175.875,165.5],[156.688,64.313],[158.375,37.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.105,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.438,166.75],[156.688,64.313],[158.625,37.125]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.525,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.438,168.438],[156.688,64.313],[158.938,37.125]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.947,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[178.688,170.563],[156.688,64.313],[159.25,37.188]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11.365,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[180.125,173.063],[156.688,64.313],[159.563,37.25]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11.791,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[181.75,176],[156.688,64.313],[159.938,37.25]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12.209,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[183.313,179.313],[156.688,64.313],[160.25,37.313]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12.635,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[184.813,182.938],[156.688,64.313],[160.563,37.313]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.051,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[186.125,186.688],[156.688,64.313],[160.938,37.375]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.475,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[187.188,190.375],[156.688,64.313],[161.188,37.375]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.895,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[188,193.75],[156.688,64.313],[161.5,37.438]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14.314,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[188.563,196.688],[156.688,64.313],[161.688,37.438]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14.736,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189,199.063],[156.688,64.313],[161.938,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15.158,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189.188,200.75],[156.688,64.313],[162.063,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.604},"o":{"x":0.167,"y":0.167},"t":15.58,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189.313,201.75],[156.688,64.313],[162.125,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0},"t":16,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189.375,202.063],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0.333},"t":18,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[187.752,199.218],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.333},"t":18.5,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[184.922,186.872],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[181.531,159.126],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19.5,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[179.109,140.839],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.707,128.737],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20.5,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[174.36,121.766],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[173.517,116.654],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":21.5,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[172.674,112.859],[156.688,64.313],[162.188,37.5]],"c":false}]},{"t":24,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[171.852,107.589],[156.688,64.313],[162.188,37.5]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.396},"t":0,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0.42,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0.842,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1.264,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1.686,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2.105,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2.525,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2.947,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.365,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.791,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.938],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4.209,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.813,185.938],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4.635,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.625,186.563],[133.813,185.938],[179.063,164.688],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5.051,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.625,186.625],[133.75,186],[178.938,164.625],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5.475,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.5,186.688],[133.688,186],[178.813,164.563],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5.895,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.438,186.813],[133.563,186.063],[178.625,164.438],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6.314,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.313,187],[133.438,186.188],[178.438,164.375],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6.736,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.188,187.25],[133.313,186.438],[178.188,164.313],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7.158,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.063,187.688],[133.188,186.75],[177.875,164.313],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7.58,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121,188.313],[133.125,187.25],[177.563,164.375],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[120.938,189],[133,187.813],[177.25,164.563],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8.42,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[120.938,189.75],[133,188.5],[177.063,164.875],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8.842,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121,190.563],[133.125,189.25],[177,165.375],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9.264,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.25,191.438],[133.375,190.063],[177.125,166.125],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9.686,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.563,192.5],[133.875,191],[177.438,167.063],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.105,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[122.063,193.5],[134.688,192],[178,168.313],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.525,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[122.813,194.563],[135.875,193],[179,170.063],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.947,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[123.688,195.688],[137.375,194.063],[180.188,172.188],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11.365,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[124.688,196.875],[139.25,195.375],[181.625,174.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11.791,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[125.813,198.313],[141.438,196.813],[183.188,177.688],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12.209,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[126.875,199.938],[143.938,198.563],[184.688,181.063],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12.635,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[128,201.75],[146.75,200.5],[186.125,184.688],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.051,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[128.938,203.688],[149.813,202.563],[187.375,188.5],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.475,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[129.813,205.625],[153,204.75],[188.375,192.25],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.895,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[130.5,207.375],[156.188,206.813],[189.188,195.688],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14.314,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.063,208.813],[159.125,208.625],[189.688,198.625],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14.736,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.375,209.875],[161.438,210.188],[190.063,201],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15.158,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.625,210.563],[163,211.313],[190.25,202.688],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.604},"o":{"x":0.167,"y":0.167},"t":15.58,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.75,210.938],[163.875,211.938],[190.313,203.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0},"t":16,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.75,211.063],[164.125,212.188],[190.375,204.063],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0.333},"t":18,"s":[{"i":[[0,0],[-18.033,2.437],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-3.735,-31.621]],"o":[[0,0],[21.317,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[3.624,30.15]],"v":[[130.617,208.218],[162.717,209.343],[188.743,201.218],[159.875,83.125],[157.875,87.125],[125.905,70.466],[124.544,135.497]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.333},"t":18.5,"s":[{"i":[[0,0],[-17.763,2.436],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-3.055,-28.02]],"o":[[0,0],[20.998,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[2.967,26.379]],"v":[[128.643,195.872],[160.262,196.997],[185.899,188.872],[159.875,83.125],[157.875,87.125],[126.285,70.297],[124.186,131.025]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19,"s":[{"i":[[0,0],[-17.443,2.435],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-2.248,-23.75]],"o":[[0,0],[20.619,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[2.19,21.91]],"v":[[126.266,168.126],[157.315,169.251],[182.49,161.126],[159.875,83.125],[157.875,87.125],[126.735,70.097],[123.761,125.724]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19.5,"s":[{"i":[[0,0],[-17.211,2.434],[0,0],[8.793,35.004],[0,0],[11.75,-13.313],[-1.663,-20.652]],"o":[[0,0],[20.345,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[1.625,18.667]],"v":[[124.579,149.839],[155.215,150.964],[180.055,142.839],[159.875,83.125],[158.265,86.995],[127.062,69.952],[123.484,119.209]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[-16.979,2.434],[0,0],[9.274,30.821],[0,0],[11.75,-13.313],[-1.078,-17.553]],"o":[[0,0],[20.07,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[1.061,15.423]],"v":[[122.913,137.737],[153.136,138.862],[177.64,130.737],[159.875,83.125],[158.656,86.865],[127.388,69.807],[123.207,112.695]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20.5,"s":[{"i":[[0,0],[-16.747,2.433],[0,0],[9.755,26.638],[0,0],[11.75,-13.313],[-0.493,-14.455]],"o":[[0,0],[19.796,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[0.496,12.18]],"v":[[121.303,130.766],[151.112,131.891],[175.281,123.766],[159.875,83.125],[159.046,86.735],[127.715,69.661],[122.93,106.18]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[0,0],[-16.659,2.433],[0,0],[9.936,25.055],[0,0],[11.75,-13.313],[-0.271,-13.283]],"o":[[0,0],[19.692,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[0.283,10.954]],"v":[[120.738,125.654],[150.391,126.779],[174.433,118.654],[159.875,83.125],[159.194,86.685],[127.838,69.607],[122.825,103.716]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":21.5,"s":[{"i":[[0,0],[-16.571,2.432],[0,0],[10.118,23.473],[0,0],[11.75,-13.313],[-0.05,-12.111]],"o":[[0,0],[19.588,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[0.069,9.727]],"v":[[120.173,121.859],[149.67,122.984],[173.586,114.859],[159.875,83.125],[159.342,86.636],[127.962,69.552],[122.721,101.252]],"c":true}]},{"t":24,"s":[{"i":[[0,0],[-16.504,2.432],[0,0],[10.257,22.27],[0,0],[11.75,-13.313],[0.118,-11.22]],"o":[[0,0],[19.509,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[-0.093,8.794]],"v":[[119.563,116.589],[148.94,117.714],[172.759,109.589],[159.875,83.125],[159.454,86.599],[128.056,69.51],[122.641,99.378]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.737254917622,0.572549045086,0.349019616842,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.396},"t":0,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0.42,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0.842,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1.264,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1.686,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2.105,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2.525,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2.947,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.365,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.791,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4.209,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.813],[116.75,186.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4.635,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.063,164.688],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.688,185.875],[116.75,186.563]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5.051,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178.938,164.625],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.688,185.938],[116.688,186.625]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5.475,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178.813,164.563],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.563,186.063],[116.625,186.688]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5.895,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178.625,164.438],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.5,186.25],[116.5,186.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6.314,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178.438,164.375],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.375,186.5],[116.375,187.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6.736,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178.188,164.313],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.25,186.938],[116.25,187.375]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7.158,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.875,164.313],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.125,187.5],[116.188,187.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7.58,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.563,164.375],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.063,188.188],[116.063,188.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.25,164.563],[156.688,64.313],[154.375,35.563],[156.063,41.75],[157.438,35],[153.688,31.25],[149.875,36.625],[147.75,26.938],[143.375,27.75],[138.125,45],[129.188,29.5],[125.75,31.813],[107.875,54.063],[93.625,42.313],[98.625,84.625],[104.938,189],[116,189.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8.42,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.063,164.875],[156.688,64.313],[154.5,35.563],[155.938,41.813],[157.25,34.938],[153.438,31.25],[149.563,36.688],[147.25,26.875],[142.875,27.688],[137.625,44.938],[128.5,29.688],[125.063,32],[107.563,54.188],[93.188,42.5],[98.625,84.625],[104.938,189.875],[116,190]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8.842,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177,165.375],[156.688,64.313],[154.625,35.5],[155.75,41.875],[156.875,34.813],[153.063,31.25],[149,36.813],[146.438,26.875],[142.063,27.688],[136.813,44.938],[127.375,29.938],[123.938,32.25],[107.063,54.313],[92.5,42.813],[98.625,84.625],[105.063,190.813],[116.063,190.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9.264,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.125,166.125],[156.688,64.313],[154.875,35.5],[155.5,42],[156.375,34.688],[152.563,31.25],[148.375,36.938],[145.375,26.813],[141,27.625],[135.75,44.875],[125.938,30.25],[122.5,32.563],[106.438,54.563],[91.625,43.188],[98.625,84.625],[105.25,191.75],[116.375,191.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9.686,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.438,167.063],[156.688,64.313],[155.188,35.438],[155.25,42.188],[155.813,34.563],[152,31.25],[147.5,37.125],[144.063,26.813],[139.688,27.625],[134.438,44.875],[124.25,30.625],[120.813,32.938],[105.625,54.813],[90.563,43.688],[98.625,84.625],[105.625,192.813],[116.875,192.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.105,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178,168.313],[156.688,64.313],[155.5,35.375],[154.875,42.313],[155.188,34.375],[151.313,31.188],[146.563,37.313],[142.563,26.75],[138.188,27.563],[132.938,44.813],[122.25,31.125],[118.813,33.438],[104.688,55.125],[89.313,44.188],[98.625,84.625],[106.063,193.75],[117.75,193.688]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.525,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179,170.063],[156.688,64.313],[155.875,35.375],[154.5,42.5],[154.438,34.188],[150.563,31.188],[145.563,37.563],[140.938,26.688],[136.563,27.5],[131.313,44.75],[120.063,31.625],[116.625,33.938],[103.688,55.438],[88,44.75],[98.625,84.625],[106.75,194.625],[118.938,194.563]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.947,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[180.188,172.188],[156.688,64.313],[156.25,35.313],[154.125,42.75],[153.688,34],[149.75,31.188],[144.438,37.813],[139.25,26.625],[134.875,27.438],[129.625,44.688],[117.75,32.125],[114.313,34.438],[102.625,55.813],[86.563,45.375],[98.625,84.625],[107.5,195.375],[120.5,195.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11.365,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[181.625,174.75],[156.688,64.313],[156.625,35.25],[153.688,42.938],[152.875,33.75],[148.875,31.188],[143.313,38],[137.438,26.563],[133.063,27.375],[127.813,44.625],[115.313,32.688],[111.875,35],[101.5,56.188],[85.063,46.063],[98.625,84.625],[108.438,196.25],[122.438,196.563]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11.791,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[183.188,177.688],[156.688,64.313],[157.063,35.188],[153.25,43.125],[152.063,33.563],[148.063,31.188],[142.125,38.25],[135.563,26.438],[131.188,27.25],[125.938,44.5],[112.813,33.313],[109.375,35.625],[100.375,56.563],[83.5,46.688],[98.625,84.625],[109.375,197.188],[124.688,197.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12.209,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[184.688,181.063],[156.688,64.313],[157.5,35.125],[152.875,43.375],[151.25,33.313],[147.188,31.188],[140.938,38.5],[133.75,26.375],[129.375,27.188],[124.125,44.438],[110.313,33.875],[106.875,36.188],[99.25,56.938],[81.938,47.375],[98.625,84.625],[110.375,198.25],[127.25,199.313]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12.635,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[186.125,184.688],[156.688,64.313],[157.875,35.063],[152.438,43.563],[150.438,33.125],[146.313,31.188],[139.813,38.75],[131.938,26.313],[127.563,27.125],[122.313,44.375],[107.875,34.438],[104.438,36.75],[98.125,57.313],[80.438,48],[98.625,84.625],[111.25,199.5],[130.125,201.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.051,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[187.375,188.5],[156.688,64.313],[158.25,35],[152.063,43.75],[149.625,32.938],[145.563,31.188],[138.688,39],[130.188,26.25],[125.813,27.063],[120.563,44.313],[105.563,34.938],[102.125,37.25],[97.063,57.688],[79,48.625],[98.625,84.625],[112.063,200.813],[133.25,203.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.475,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[188.375,192.25],[156.688,64.313],[158.625,34.938],[151.688,43.938],[148.938,32.75],[144.813,31.125],[137.625,39.25],[128.563,26.188],[124.188,27],[118.938,44.25],[103.375,35.438],[99.938,37.75],[96.063,58],[77.688,49.188],[98.625,84.625],[112.75,202.063],[136.625,205.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.895,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[189.188,195.688],[156.688,64.313],[158.938,34.875],[151.313,44.125],[148.25,32.563],[144.125,31.125],[136.688,39.438],[127.125,26.125],[122.75,26.938],[117.5,44.188],[101.375,35.938],[97.938,38.25],[95.125,58.313],[76.438,49.75],[98.625,84.625],[113.25,203.188],[139.938,207.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14.314,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[189.688,198.625],[156.688,64.313],[159.25,34.813],[151,44.25],[147.688,32.438],[143.5,31.125],[135.875,39.563],[125.813,26.125],[121.438,26.938],[116.188,44.188],[99.625,36.313],[96.188,38.625],[94.313,58.625],[75.375,50.188],[98.625,84.625],[113.563,204.063],[142.938,209.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14.736,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.063,201],[156.688,64.313],[159.5,34.813],[150.813,44.375],[147.25,32.313],[143,31.125],[135.188,39.75],[124.75,26.063],[120.375,26.875],[115.125,44.125],[98.188,36.688],[94.75,39],[93.688,58.813],[74.5,50.563],[98.625,84.625],[113.813,204.625],[145.25,210.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15.158,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.25,202.688],[156.688,64.313],[159.688,34.75],[150.625,44.5],[146.875,32.188],[142.625,31.125],[134.688,39.875],[123.938,26],[119.563,26.813],[114.313,44.063],[97.125,36.938],[93.688,39.25],[93.188,59],[73.813,50.875],[98.625,84.625],[113.938,204.938],[146.875,211.875]],"c":true}]},{"i":{"x":0.833,"y":0.604},"o":{"x":0.167,"y":0.167},"t":15.58,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.313,203.75],[156.688,64.313],[159.75,34.75],[150.5,44.563],[146.625,32.125],[142.375,31.125],[134.375,39.938],[123.438,26],[119.063,26.813],[113.813,44.063],[96.438,37.063],[93,39.375],[92.875,59.063],[73.375,51.063],[98.625,84.625],[114.063,205.063],[147.75,212.563]],"c":true}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0},"t":16,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.375,204.063],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[114.063,205.063],[148,212.75]],"c":true}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0.333},"t":18,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.52,0.06]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.02,-0.063]],"v":[[188.743,201.218],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[113.081,202.218],[146.729,209.906]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.333},"t":18.5,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.228,0.056]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[33.511,-0.063]],"v":[[185.899,188.872],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[111.369,189.872],[144.514,197.56]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-18.881,0.051]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[32.907,-0.063]],"v":[[182.49,161.126],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[109.303,162.126],[141.851,169.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19.5,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-18.63,0.047]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[32.469,-0.063]],"v":[[180.055,142.839],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[107.842,143.839],[139.956,151.527]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-18.379,0.043]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[32.031,-0.063]],"v":[[177.64,130.737],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[106.402,131.737],[138.083,139.424]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20.5,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-18.127,0.04]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[31.593,-0.063]],"v":[[175.281,123.766],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[105.017,124.766],[136.265,132.453]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-18.032,0.038]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[31.427,-0.063]],"v":[[174.433,118.654],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[104.538,119.654],[135.622,127.342]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":21.5,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-17.937,0.037]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[31.261,-0.063]],"v":[[173.586,114.859],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[104.059,115.859],[134.978,123.546]],"c":true}]},{"t":24,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-17.865,0.036]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[31.135,-0.063]],"v":[[172.759,109.589],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[103.513,110.589],[134.308,118.276]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-16.69,-65.288]],"o":[[0,0],[0,0]],"v":[[73.894,-101.727],[107.348,-44.337]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":7.58,"s":[{"i":[[0,0],[-9.623,-65.983]],"o":[[0,0],[0,0]],"v":[[86.517,-104.667],[113.459,-44.71]],"c":false}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0},"t":16,"s":[{"i":[[0,0],[-12.183,-34.643]],"o":[[0,0],[0,0]],"v":[[41.387,-96.927],[74.702,-38.38]],"c":false}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0.333},"t":18,"s":[{"i":[[0,0],[-12.769,-34.372]],"o":[[0,0],[0,0]],"v":[[39.884,-95.793],[74.673,-38.358]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.333},"t":18.5,"s":[{"i":[[0,0],[-13.791,-33.898]],"o":[[0,0],[0,0]],"v":[[37.264,-93.817],[74.621,-38.32]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19,"s":[{"i":[[0,0],[-15.003,-33.336]],"o":[[0,0],[0,0]],"v":[[34.158,-91.473],[74.559,-38.274]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19.5,"s":[{"i":[[0,0],[-15.882,-32.929]],"o":[[0,0],[0,0]],"v":[[31.904,-89.773],[74.515,-38.241]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[-16.761,-32.521]],"o":[[0,0],[0,0]],"v":[[29.651,-88.073],[74.47,-38.208]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20.5,"s":[{"i":[[0,0],[-17.641,-32.114]],"o":[[0,0],[0,0]],"v":[[27.397,-86.373],[74.426,-38.175]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[0,0],[-17.973,-31.96]],"o":[[0,0],[0,0]],"v":[[26.545,-85.729],[74.409,-38.162]],"c":false}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":21.5,"s":[{"i":[[0,0],[-18.306,-31.806]],"o":[[0,0],[0,0]],"v":[[25.692,-85.086],[74.392,-38.15]],"c":false}]},{"t":24,"s":[{"i":[[0,0],[-18.559,-31.688]],"o":[[0,0],[0,0]],"v":[[25.044,-84.597],[74.379,-38.14]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.580392181873,0.376470595598,0.215686276555,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-2.646,-17.122]],"o":[[0,0],[0,0]],"v":[[138.271,-76.891],[151.566,-37.773]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":7.58,"s":[{"i":[[0,0],[-0.82,-17.124]],"o":[[0,0],[0,0]],"v":[[147.278,-73.523],[156.287,-33.644]],"c":false}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0},"t":16,"s":[{"i":[[0,0],[-3.811,-17.322]],"o":[[0,0],[0,0]],"v":[[133.538,-74.755],[147.742,-34.569]],"c":false}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0.333},"t":18,"s":[{"i":[[0,0],[-3.083,-17.075]],"o":[[0,0],[0,0]],"v":[[134.976,-74.378],[147.742,-34.569]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.333},"t":18.5,"s":[{"i":[[0,0],[-1.815,-16.645]],"o":[[0,0],[0,0]],"v":[[137.482,-73.719],[147.742,-34.569]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19,"s":[{"i":[[0,0],[-0.311,-16.136]],"o":[[0,0],[0,0]],"v":[[140.453,-72.938],[147.742,-34.569]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19.5,"s":[{"i":[[0,0],[0.779,-15.766]],"o":[[0,0],[0,0]],"v":[[142.609,-72.371],[147.742,-34.569]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[1.87,-15.397]],"o":[[0,0],[0,0]],"v":[[144.764,-71.805],[147.742,-34.569]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20.5,"s":[{"i":[[0,0],[2.961,-15.027]],"o":[[0,0],[0,0]],"v":[[146.92,-71.238],[147.742,-34.569]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[0,0],[3.374,-14.887]],"o":[[0,0],[0,0]],"v":[[147.736,-71.024],[147.742,-34.569]],"c":false}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":21.5,"s":[{"i":[[0,0],[3.787,-14.747]],"o":[[0,0],[0,0]],"v":[[148.551,-70.809],[147.742,-34.569]],"c":false}]},{"t":24,"s":[{"i":[[0,0],[4.1,-14.641]],"o":[[0,0],[0,0]],"v":[[149.171,-70.646],[147.742,-34.569]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.580392181873,0.376470595598,0.215686276555,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-6.464,-30.14]],"o":[[0,0],[0,0]],"v":[[102.888,-115.812],[129.737,-55.865]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":7.58,"s":[{"i":[[0,0],[-3.221,-30.331]],"o":[[0,0],[0,0]],"v":[[116.515,-115.508],[136.69,-53.721]],"c":false}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0},"t":16,"s":[{"i":[[0,0],[-9.007,-30.14]],"o":[[0,0],[0,0]],"v":[[76.723,-110.438],[108.941,-50.159]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.333},"t":18,"s":[{"i":[[0,0],[-9.581,-27.559]],"o":[[0,0],[0,0]],"v":[[83.177,-99.786],[109.329,-50.153]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.5,"s":[{"i":[[0,0],[-10.58,-23.06]],"o":[[0,0],[0,0]],"v":[[87.059,-94.242],[110.004,-50.144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19,"s":[{"i":[[0,0],[-10.46,-25.194]],"o":[[0,0],[0,0]],"v":[[107.766,-59.2],[110.804,-50.132]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19.5,"s":[{"i":[[0,0],[-7.638,-19.523]],"o":[[0,0],[0,0]],"v":[[109.132,-57.128],[111.385,-50.124]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[-4.817,-13.853]],"o":[[0,0],[0,0]],"v":[[110.497,-55.057],[111.965,-50.115]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20.5,"s":[{"i":[[0,0],[-1.996,-8.182]],"o":[[0,0],[0,0]],"v":[[111.863,-52.985],[112.546,-50.107]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[0,0],[-0.929,-6.037]],"o":[[0,0],[0,0]],"v":[[112.38,-52.201],[112.766,-50.104]],"c":false}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":21.5,"s":[{"i":[[0,0],[0.139,-3.892]],"o":[[0,0],[0,0]],"v":[[112.896,-51.418],[112.986,-50.101]],"c":false}]},{"t":24,"s":[{"i":[[0,0],[0.95,-2.261]],"o":[[0,0],[0,0]],"v":[[113.289,-50.822],[113.153,-50.098]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.580392181873,0.376470595598,0.215686276555,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[1.676,27.483],[3.695,28.652],[3.658,5.082],[12.679,8.661],[-4.848,-6.104],[8.701,-0.373],[-1.243,-12.125],[3.171,-10.075],[-4.13,-20.458],[-5.598,-30.564]],"o":[[0,0],[-1.916,-14.839],[0,0],[-9.537,-6.514],[0,0],[-8.701,0.373],[0,0],[-3.982,12.672],[4.971,24.626],[5.598,30.564]],"v":[[158.002,30.408],[156.721,-15.376],[138.158,-76.84],[110.861,-121.787],[102.888,-115.812],[85.917,-125.277],[73.12,-101.612],[62.796,-91.3],[80.13,-14.627],[91.476,44.341]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":7.58,"s":[{"i":[[1.676,27.483],[2.293,28.734],[3.07,5.382],[11.575,9.843],[-4.135,-6.511],[8.601,0.539],[0.04,-12.061],[4.168,-9.585],[-1.933,-20.561],[-5.598,-30.564]],"o":[[0,0],[-1.189,-14.881],[0,0],[-8.706,-7.403],[0,0],[-8.601,-0.539],[0,0],[-5.238,12.055],[2.327,24.75],[5.598,30.564]],"v":[[158.002,30.408],[159.55,-13.781],[147.162,-73.484],[124.983,-120.557],[116.515,-115.508],[100.8,-126.589],[85.743,-104.635],[74.51,-95.563],[83.581,-18.309],[91.476,44.341]],"c":true}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0},"t":16,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[20.093,-1.386],[17.668,8.661],[0.693,-7.275],[12.125,-0.373],[-1.732,-12.125],[5.123,-13.539],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-13.289,-6.514],[0,0],[-12.125,0.373],[0,0],[-4.85,12.818],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[133.538,-74.755],[98.895,-119.792],[76.723,-110.438],[56.63,-121.551],[41.387,-96.927],[24.412,-87.574],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0.333},"t":18,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.979,-0.606],[19.227,7.816],[0.374,-7.939],[14.95,0.067],[-2.001,-12.052],[4.803,-13.617],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-15.155,-5.865],[0,0],[-12.124,0.281],[0,0],[-4.547,12.891],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[134.976,-74.378],[100.543,-119.858],[83.177,-99.786],[54.901,-120.017],[39.884,-95.793],[23.168,-86.082],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.333},"t":18.5,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.779,0.754],[21.946,6.343],[-0.183,-9.096],[19.875,0.834],[-2.47,-11.924],[4.244,-13.752],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-18.409,-4.732],[0,0],[-12.122,0.12],[0,0],[-4.018,13.02],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[137.482,-73.719],[103.415,-119.974],[87.059,-94.242],[51.888,-117.344],[37.264,-93.817],[21,-83.483],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.543,2.365],[26.99,4.598],[-0.842,-10.468],[25.713,1.744],[-3.026,-11.773],[3.582,-13.912],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-23.878,-3.389],[0,0],[-12.12,-0.072],[0,0],[-3.391,13.171],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[140.453,-72.938],[104.486,-120.112],[107.766,-59.2],[48.316,-114.175],[34.158,-91.473],[18.43,-80.402],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19.5,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.372,3.535],[23.426,3.331],[0.83,-11.06],[25.616,1.64],[-3.43,-11.663],[3.102,-14.028],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-21.454,-2.415],[0,0],[-12.119,-0.211],[0,0],[-2.937,13.281],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[142.609,-72.371],[113.017,-120.8],[109.132,-57.128],[45.724,-111.875],[31.904,-89.773],[16.565,-78.166],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.2,4.704],[21.683,2.064],[2.503,-11.652],[25.519,1.536],[-3.833,-11.553],[2.621,-14.145],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-20.643,-1.441],[0,0],[-12.117,-0.349],[0,0],[-2.482,13.392],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[144.764,-71.805],[119.213,-121.489],[110.497,-55.057],[43.132,-109.576],[29.651,-88.073],[14.7,-75.93],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20.5,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.029,5.874],[23.492,0.797],[4.175,-12.244],[25.421,1.432],[-4.237,-11.443],[2.141,-14.261],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-23.363,-0.467],[0,0],[-12.116,-0.488],[0,0],[-2.027,13.502],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[146.92,-71.238],[120.638,-122.177],[111.863,-52.985],[40.54,-107.276],[27.397,-86.373],[12.835,-73.694],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[18.964,6.316],[24.491,0.318],[4.808,-12.468],[25.385,1.393],[-4.389,-11.401],[1.959,-14.305],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-24.799,-0.098],[0,0],[-12.115,-0.541],[0,0],[-1.855,13.543],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[147.736,-71.024],[120.628,-122.437],[112.38,-52.201],[39.559,-106.406],[26.545,-85.729],[12.129,-72.848],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":21.5,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[18.899,6.759],[24.122,-0.161],[5.44,-12.692],[25.348,1.353],[-4.542,-11.36],[1.778,-14.349],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-24.893,0.27],[0,0],[-12.115,-0.593],[0,0],[-1.683,13.585],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[148.551,-70.809],[122.431,-122.698],[112.896,-51.418],[38.578,-105.537],[25.692,-85.086],[11.424,-72.003],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"t":24,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[18.85,7.095],[23.358,-0.525],[5.921,-12.862],[25.32,1.323],[-4.658,-11.328],[1.639,-14.383],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-24.47,0.55],[0,0],[-12.114,-0.633],[0,0],[-1.552,13.617],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[149.171,-70.646],[124.471,-122.896],[113.289,-50.822],[37.833,-104.875],[25.044,-84.597],[10.887,-71.36],[41.676,-22.528],[71.867,54.464]],"c":true}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.580392181873,0.376470595598,0.215686276555,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[18.227,70.013],[-0.955,-4.807],[-5.174,-30.8],[1.97,27.525],[2.796,28.747],[0.833,4.577],[42.671,-3.275]],"o":[[1.422,5.679],[4.897,24.645],[5.172,30.786],[0,0],[-0.438,-4.506],[0,0],[-33.501,2.571]],"v":[[72.743,-42.351],[80.985,-14.74],[91.955,44.096],[157.821,30.381],[156.339,-15.374],[154.428,-29.076],[126.056,33.44]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":7.58,"s":[{"i":[[10.643,70.793],[-0.439,-4.83],[-5.174,-30.8],[1.97,27.525],[1.391,28.785],[0.608,4.602],[42.671,-3.275]],"o":[[0.808,5.736],[2.251,24.762],[5.172,30.786],[0,0],[-0.218,-4.512],[0,0],[-33.501,2.571]],"v":[[79.2,-46.36],[84.434,-18.331],[91.955,44.096],[157.821,30.381],[159.169,-13.797],[157.931,-27.545],[126.056,33.44]],"c":true}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0},"t":16,"s":[{"i":[[25.645,70.013],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[2.001,5.679],[4.557,24.917],[23.028,21.078],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[37.09,-38.535],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0.333},"t":18,"s":[{"i":[[27.154,69.236],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[2.123,5.617],[4.557,24.917],[23.028,21.078],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[36.918,-37.468],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.333},"t":18.5,"s":[{"i":[[29.786,67.882],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[2.337,5.511],[4.557,24.917],[23.028,21.078],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[36.619,-35.609],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19,"s":[{"i":[[32.905,66.276],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[2.591,5.384],[4.557,24.917],[23.028,21.078],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[36.265,-33.405],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19.5,"s":[{"i":[[35.169,65.112],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[2.775,5.292],[4.557,24.917],[23.028,21.077],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[36.008,-31.806],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[37.433,63.947],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[2.958,5.201],[4.557,24.917],[23.028,21.077],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[35.751,-30.207],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20.5,"s":[{"i":[[39.696,62.782],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[3.142,5.109],[4.557,24.917],[23.028,21.078],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[35.493,-28.608],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[40.553,62.342],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[3.212,5.074],[4.557,24.917],[23.028,21.078],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[35.396,-28.003],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":21.5,"s":[{"i":[[41.409,61.901],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[3.282,5.039],[4.557,24.917],[23.028,21.078],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[35.299,-27.398],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"t":24,"s":[{"i":[[42.06,61.566],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[3.334,5.013],[4.557,24.917],[23.028,21.078],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[35.225,-26.939],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.86274510622,0.690196096897,0.498039215803,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[-1.514,-7.28],[0.061,1.65],[-9.227,-21.206],[-3.298,-2.59],[0,0],[5.097,11.596],[0,0],[-8.843,-15.225],[-3.241,-8.911],[-0.236,1.029],[0,0],[0,0],[-11.324,-21.096],[-1.026,-3.12],[0,0],[0,0],[-0.359,-0.5],[3.452,0.229],[12.678,8.654],[0.502,-7.28],[8.704,-0.38],[-1.241,-12.13],[3.207,-9.614]],"o":[[0.581,-1.63],[-0.388,-10.39],[9.825,22.58],[4.341,3.409],[-2.102,-11.65],[-5.095,-11.59],[3.696,-18],[7.987,13.751],[3.244,8.92],[0.237,-1.03],[-3.057,-15.14],[0.983,-11.32],[13.14,24.479],[0.902,2.742],[0,0],[-1.188,-8.907],[-4.844,-11.84],[0,0],[-9.537,-6.51],[0,0],[-8.698,0.38],[0,0],[-1.392,4.179]],"v":[[64.06,-73.479],[64.9,-78.479],[85.959,-77.223],[102.23,-39.658],[106.399,-44.978],[89.149,-87.81],[75.586,-103.328],[99.915,-99.538],[122.397,-57.039],[129.968,-54.119],[129.502,-57.959],[107.314,-106.568],[119.816,-94.129],[151.54,-37.516],[151.418,-38.881],[142.579,-54.608],[146.257,-53.662],[138.301,-76.838],[111.097,-121.789],[103.118,-115.807],[86.149,-125.279],[73.354,-101.608],[63.027,-91.299]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":7.58,"s":[{"i":[[-0.732,-7.321],[-0.111,1.63],[-6.871,-21.828],[-2.976,-2.892],[0,0],[3.808,11.942],[0,0],[-7.116,-15.903],[-2.261,-9.106],[-0.339,0.988],[0,0],[0,0],[-8.946,-21.939],[-0.685,-3.177],[0,0],[0,0],[-0.301,-0.529],[3.373,0.585],[11.574,9.836],[1.253,-7.111],[8.605,0.533],[0.042,-12.066],[4.156,-9.127]],"o":[[0.742,-1.543],[0.701,-10.264],[7.316,23.242],[3.917,3.807],[-0.855,-11.683],[-3.807,-11.936],[5.512,-17.328],[6.427,14.363],[2.263,9.115],[0.34,-0.989],[-1.431,-15.217],[2.147,-11.037],[10.38,25.457],[0.602,2.792],[0,0],[-0.241,-8.888],[-3.533,-12.155],[0,0],[-8.707,-7.399],[0,0],[-8.598,-0.532],[0,0],[-1.805,3.967]],"v":[[73.898,-77.895],[75.245,-82.728],[95.837,-79.298],[107.935,-40.639],[112.592,-45.44],[100.078,-89.384],[88.349,-106.067],[111.894,-99.803],[129.59,-55.641],[136.736,-51.979],[136.677,-55.807],[119.907,-105.95],[130.914,-92.407],[156.234,-33.395],[156.257,-34.75],[149.197,-51.147],[152.717,-49.833],[147.302,-73.467],[125.215,-120.534],[116.74,-115.479],[101.029,-126.567],[85.973,-104.607],[74.737,-95.538]],"c":true}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0},"t":16,"s":[{"i":[[-2.11,-7.28],[0.08,1.65],[-12.857,-21.206],[-4.596,-2.59],[0,0],[7.09,11.6],[0,0],[-12.323,-15.225],[-4.52,-8.91],[-0.32,1.03],[0,0],[0,0],[-15.78,-21.096],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[10.24,-0.71],[17.66,8.66],[0.7,-7.28],[12.13,-0.37],[-1.73,-12.13],[5.13,-13.54]],"o":[[0.81,-1.63],[-0.54,-10.39],[13.69,22.58],[6.049,3.409],[-2.93,-11.65],[-7.1,-11.59],[5.15,-18],[11.13,13.751],[4.52,8.92],[0.33,-1.03],[-4.26,-15.14],[1.37,-11.32],[18.31,24.479],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-13.29,-6.51],[0,0],[-12.12,0.38],[0,0],[-1.61,4.25]],"v":[[26.173,-69.753],[27.343,-74.753],[48.083,-70.753],[68.653,-33.843],[74.463,-39.163],[54.034,-80.303],[44.824,-98.643],[74.463,-95.213],[98.713,-51.333],[109.264,-48.413],[108.614,-52.253],[84.773,-102.243],[111.373,-92.133],[140.114,-32.473],[147.793,-35.753],[142.653,-52.793],[159.744,-55.513],[133.864,-74.753],[99.224,-119.793],[77.043,-110.433],[56.954,-121.553],[41.713,-96.923],[24.733,-87.573]],"c":true}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0.333},"t":18,"s":[{"i":[[-2.268,-7.212],[0.118,1.643],[-13.3,-20.855],[-4.633,-2.505],[0,0],[7.333,11.406],[0,0],[-12.632,-14.904],[-4.861,-8.611],[-0.456,1.076],[0,0],[0,0],[-18.576,-21.931],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[10.182,-0.313],[20.141,7.926],[0.512,-7.745],[14.833,0.024],[-1.999,-12.057],[4.81,-13.618]],"o":[[0.771,-1.644],[-0.773,-10.349],[14.162,22.207],[6.099,3.297],[-3.129,-11.579],[-7.342,-11.397],[4.729,-18.066],[11.409,13.461],[4.943,8.676],[0.464,-1.076],[-4.111,-13.372],[0.983,-11.635],[19.324,23.531],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-15.156,-5.959],[0,0],[-12.118,0.268],[0,0],[-1.509,4.274]],"v":[[25.327,-68.352],[26.381,-73.364],[47.153,-69.844],[68.713,-33.723],[74.42,-39.136],[52.871,-79.502],[43.272,-97.582],[73.172,-94.372],[99.197,-51.267],[109.687,-48.614],[109.297,-52.402],[89.727,-93.131],[112.312,-94.306],[140.114,-32.473],[147.793,-35.753],[143.355,-52.648],[160.639,-53.94],[135.298,-74.363],[100.909,-119.876],[83.489,-99.761],[55.223,-120.029],[40.21,-95.797],[23.489,-86.089]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.333},"t":18.5,"s":[{"i":[[-2.545,-7.093],[0.183,1.632],[-14.072,-20.245],[-4.699,-2.357],[0,0],[7.756,11.068],[0,0],[-13.171,-14.343],[-5.457,-8.09],[-0.691,1.157],[0,0],[0,0],[-23.45,-23.386],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[10.08,0.38],[24.465,6.647],[0.185,-8.555],[19.546,0.712],[-2.468,-11.929],[4.251,-13.753]],"o":[[0.703,-1.668],[-1.18,-10.276],[14.984,21.557],[6.185,3.103],[-3.476,-11.455],[-7.764,-11.06],[3.994,-18.18],[11.896,12.955],[5.679,8.251],[0.698,-1.157],[-3.85,-10.289],[0.308,-12.183],[21.091,21.879],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-18.41,-4.999],[0,0],[-12.114,0.074],[0,0],[-1.334,4.317]],"v":[[23.852,-65.91],[24.703,-70.944],[45.531,-68.26],[68.818,-33.513],[74.345,-39.087],[50.843,-78.105],[40.568,-95.732],[70.921,-92.905],[100.041,-51.15],[110.425,-48.965],[110.489,-52.662],[98.362,-77.246],[113.949,-98.093],[140.114,-32.473],[147.793,-35.753],[144.578,-52.395],[162.2,-51.198],[137.8,-73.682],[103.848,-120.021],[87.357,-94.182],[52.207,-117.372],[37.588,-93.833],[21.319,-83.503]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19,"s":[{"i":[[-2.872,-6.952],[0.261,1.618],[-14.987,-19.521],[-4.777,-2.182],[0,0],[8.259,10.668],[0,0],[-13.81,-13.679],[-6.162,-7.473],[-0.971,1.252],[0,0],[0,0],[-31.345,-25.111],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[9.96,1.202],[31.735,5.13],[-0.203,-9.516],[25.134,1.527],[-3.025,-11.778],[3.589,-13.914]],"o":[[0.622,-1.696],[-1.662,-10.19],[15.958,20.786],[6.287,2.872],[-3.888,-11.309],[-8.263,-10.661],[3.124,-18.316],[12.473,12.355],[6.553,7.747],[0.976,-1.253],[-3.541,-6.635],[-0.492,-12.833],[24.865,19.92],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-23.879,-3.86],[0,0],[-12.11,-0.157],[0,0],[-1.126,4.367]],"v":[[22.104,-63.014],[22.714,-68.074],[43.608,-66.382],[68.942,-33.264],[74.256,-39.03],[48.44,-76.449],[37.362,-93.539],[68.253,-91.165],[101.041,-51.013],[111.301,-49.381],[111.902,-52.971],[108.6,-58.414],[114.211,-102.583],[140.114,-32.473],[147.793,-35.753],[146.029,-52.095],[164.05,-47.947],[140.765,-72.876],[105.034,-120.192],[108.047,-59.1],[48.632,-114.222],[34.48,-91.505],[18.747,-80.436]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19.5,"s":[{"i":[[-3.11,-6.85],[0.317,1.608],[-15.651,-18.996],[-4.833,-2.055],[0,0],[8.623,10.377],[0,0],[-14.274,-13.198],[-6.674,-7.024],[-1.173,1.321],[0,0],[0,0],[-26.603,-24.789],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[9.873,1.798],[28.514,4.033],[1.71,-10.398],[24.919,1.564],[-3.428,-11.668],[3.108,-14.031]],"o":[[0.563,-1.716],[-2.012,-10.128],[16.666,20.227],[6.361,2.704],[-4.186,-11.202],[-8.626,-10.372],[2.492,-18.414],[12.892,11.92],[7.187,7.381],[1.178,-1.322],[-3.317,-3.983],[2.201,-13.941],[22.108,20.95],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-21.455,-3.034],[0,0],[-12.107,-0.325],[0,0],[-0.975,4.404]],"v":[[20.835,-60.914],[21.271,-65.991],[42.213,-65.019],[69.031,-33.083],[74.192,-38.989],[46.696,-75.247],[35.035,-91.948],[66.316,-89.904],[101.767,-50.913],[111.936,-49.683],[112.927,-53.195],[109.628,-56.151],[119.945,-104.517],[140.114,-32.473],[147.793,-35.753],[147.081,-51.877],[165.393,-45.588],[142.917,-72.29],[113.502,-120.905],[109.401,-56.998],[46.037,-111.936],[32.226,-89.816],[16.88,-78.211]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[-3.348,-6.747],[0.373,1.598],[-16.316,-18.47],[-4.89,-1.927],[0,0],[8.987,10.087],[0,0],[-14.738,-12.716],[-7.186,-6.576],[-1.376,1.391],[0,0],[0,0],[-23.977,-24.466],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[9.786,2.394],[27.436,2.935],[3.622,-11.28],[24.703,1.6],[-3.832,-11.558],[2.628,-14.147]],"o":[[0.505,-1.737],[-2.361,-10.066],[17.373,19.667],[6.436,2.537],[-4.485,-11.096],[-8.989,-10.082],[1.861,-18.512],[13.311,11.485],[7.82,7.015],[1.38,-1.391],[-3.093,-1.332],[4.894,-15.05],[21.03,21.98],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-20.643,-2.208],[0,0],[-12.104,-0.492],[0,0],[-0.825,4.44]],"v":[[19.566,-58.813],[19.828,-63.909],[40.818,-63.656],[69.121,-32.903],[74.127,-38.948],[44.952,-74.046],[32.709,-90.357],[64.38,-88.642],[102.493,-50.813],[112.571,-49.985],[113.952,-53.418],[110.657,-53.889],[124.001,-106.451],[140.114,-32.473],[147.793,-35.753],[148.134,-51.659],[166.736,-43.23],[145.068,-71.705],[119.672,-121.618],[110.755,-54.897],[43.443,-109.651],[29.971,-88.126],[15.014,-75.986]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20.5,"s":[{"i":[[-3.586,-6.645],[0.43,1.588],[-16.98,-17.945],[-4.946,-1.8],[0,0],[9.352,9.796],[0,0],[-15.201,-12.234],[-7.698,-6.128],[-1.579,1.46],[0,0],[0,0],[-25.153,-24.144],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[9.699,2.99],[31.052,1.837],[5.534,-12.162],[24.488,1.636],[-4.236,-11.448],[2.147,-14.264]],"o":[[0.446,-1.758],[-2.711,-10.004],[18.08,19.108],[6.51,2.369],[-4.783,-10.99],[-9.351,-9.793],[1.229,-18.611],[13.73,11.05],[8.454,6.649],[1.581,-1.461],[-2.869,1.32],[7.587,-16.158],[23.505,23.01],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-23.364,-1.382],[0,0],[-12.101,-0.66],[0,0],[-0.674,4.477]],"v":[[18.298,-56.712],[18.385,-61.827],[39.423,-62.294],[69.211,-32.722],[74.063,-38.906],[43.208,-72.844],[30.383,-88.766],[62.444,-87.38],[103.219,-50.714],[113.206,-50.287],[114.977,-53.642],[111.685,-51.626],[123.757,-108.385],[140.114,-32.473],[147.793,-35.753],[149.186,-51.441],[168.078,-40.871],[147.22,-71.12],[121.147,-122.331],[112.108,-52.796],[40.849,-107.365],[27.716,-86.437],[13.148,-73.761]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[-3.676,-6.607],[0.451,1.585],[-17.231,-17.747],[-4.967,-1.752],[0,0],[9.49,9.686],[0,0],[-15.377,-12.052],[-7.892,-5.959],[-1.655,1.486],[0,0],[0,0],[-25.857,-24.022],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[9.666,3.215],[32.961,1.422],[6.257,-12.495],[24.407,1.65],[-4.388,-11.406],[1.965,-14.308]],"o":[[0.424,-1.765],[-2.843,-9.98],[18.347,18.896],[6.538,2.306],[-4.896,-10.95],[-9.489,-9.683],[0.99,-18.648],[13.888,10.885],[8.694,6.511],[1.657,-1.487],[-2.784,2.323],[8.606,-16.577],[24.824,23.399],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-24.8,-1.07],[0,0],[-12.099,-0.723],[0,0],[-0.617,4.491]],"v":[[17.818,-55.917],[17.84,-61.039],[38.895,-61.778],[69.245,-32.654],[74.038,-38.891],[42.549,-72.39],[29.503,-88.164],[61.712,-86.902],[103.493,-50.676],[113.446,-50.401],[115.364,-53.727],[112.074,-50.77],[122.963,-109.116],[140.114,-32.473],[147.793,-35.753],[149.584,-51.359],[168.586,-39.978],[148.034,-70.899],[121.165,-122.6],[112.621,-52.001],[39.867,-106.501],[26.863,-85.798],[12.442,-72.92]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":21.5,"s":[{"i":[[-3.765,-6.568],[0.472,1.581],[-17.482,-17.548],[-4.989,-1.704],[0,0],[9.627,9.576],[0,0],[-15.552,-11.869],[-8.086,-5.789],[-1.732,1.512],[0,0],[0,0],[-25.082,-23.9],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[9.633,3.441],[33.086,1.007],[6.981,-12.829],[24.325,1.663],[-4.541,-11.365],[1.783,-14.352]],"o":[[0.402,-1.773],[-2.976,-9.957],[18.615,18.685],[6.566,2.243],[-5.009,-10.909],[-9.626,-9.574],[0.751,-18.685],[14.047,10.72],[8.933,6.372],[1.734,-1.513],[-2.699,3.326],[9.625,-16.997],[24.788,23.789],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-24.894,-0.757],[0,0],[-12.098,-0.786],[0,0],[-0.56,4.505]],"v":[[17.338,-55.122],[17.294,-60.251],[38.367,-61.263],[69.279,-32.586],[74.014,-38.875],[41.889,-71.935],[28.623,-87.563],[60.979,-86.425],[103.768,-50.638],[113.686,-50.515],[115.752,-53.811],[112.463,-49.914],[123.764,-109.848],[140.114,-32.473],[147.793,-35.753],[149.982,-51.277],[169.094,-39.086],[148.847,-70.677],[122.966,-122.87],[113.133,-51.206],[38.886,-105.636],[26.01,-85.159],[11.736,-72.078]],"c":true}]},{"t":24,"s":[{"i":[[-3.834,-6.538],[0.488,1.578],[-17.673,-17.397],[-5.005,-1.667],[0,0],[9.732,9.493],[0,0],[-15.686,-11.731],[-8.233,-5.66],[-1.79,1.532],[0,0],[0,0],[-23.985,-23.807],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[9.608,3.612],[32.523,0.691],[7.531,-13.082],[24.263,1.674],[-4.657,-11.333],[1.645,-14.386]],"o":[[0.385,-1.779],[-3.076,-9.939],[18.818,18.524],[6.588,2.194],[-5.095,-10.879],[-9.73,-9.49],[0.57,-18.714],[14.167,10.595],[9.116,6.267],[1.792,-1.533],[-2.635,4.089],[10.399,-17.315],[24.266,24.085],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-24.47,-0.52],[0,0],[-12.097,-0.835],[0,0],[-0.516,4.515]],"v":[[16.973,-54.518],[16.879,-59.652],[37.966,-60.871],[69.305,-32.534],[73.995,-38.863],[41.387,-71.59],[27.954,-87.105],[60.423,-86.062],[103.976,-50.609],[113.869,-50.602],[116.047,-53.876],[112.759,-49.264],[125.003,-110.404],[140.114,-32.473],[147.793,-35.753],[150.285,-51.214],[169.48,-38.408],[149.466,-70.509],[124.993,-123.075],[113.522,-50.602],[38.14,-104.979],[25.361,-84.673],[11.199,-71.438]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.988235294819,0.890196084976,0.780392169952,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[1.676,27.483],[2.83,28.75],[3.402,5.465],[12.679,8.661],[0.497,-7.275],[8.701,-0.373],[-1.243,-12.125],[3.306,-9.58],[-4.13,-20.458],[-5.598,-30.564]],"o":[[0,0],[-2.762,-28.061],[0,0],[-9.537,-6.514],[0,0],[-8.701,0.373],[0,0],[-4.33,12.558],[4.971,24.626],[5.598,30.564]],"v":[[158.002,30.408],[156.721,-15.376],[138.158,-76.84],[110.861,-121.787],[102.888,-115.812],[85.917,-125.277],[73.12,-101.612],[62.796,-91.3],[80.13,-14.627],[91.476,44.341]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":7.58,"s":[{"i":[[1.676,27.483],[1.424,28.79],[2.778,5.732],[11.575,9.843],[1.247,-7.107],[8.601,0.539],[0.04,-12.061],[4.25,-9.083],[-1.933,-20.561],[-5.598,-30.564]],"o":[[0,0],[-1.39,-28.1],[0,0],[-8.706,-7.403],[0,0],[-8.601,-0.539],[0,0],[-5.569,11.907],[2.327,24.75],[5.598,30.564]],"v":[[158.002,30.408],[159.55,-13.781],[147.162,-73.484],[124.983,-120.557],[116.515,-115.508],[100.8,-126.589],[85.743,-104.635],[74.51,-95.563],[83.581,-18.309],[91.476,44.341]],"c":true}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0},"t":16,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[20.093,-1.386],[17.668,8.661],[0.693,-7.275],[12.125,-0.373],[-1.732,-12.125],[5.123,-13.539],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-13.289,-6.514],[0,0],[-12.125,0.373],[0,0],[-4.85,12.818],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[133.538,-74.755],[98.895,-119.792],[76.723,-110.438],[56.63,-121.551],[41.387,-96.927],[24.412,-87.574],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0.333},"t":18,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.979,-0.606],[20.15,7.929],[0.456,-7.72],[13.231,-0.157],[-2.001,-12.052],[4.803,-13.617],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-15.155,-5.963],[0,0],[-12.122,0.248],[0,0],[-4.547,12.891],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[134.976,-74.378],[100.543,-119.858],[83.177,-99.786],[54.901,-120.017],[39.884,-95.793],[23.168,-86.082],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.333},"t":18.5,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.779,0.754],[24.475,6.652],[0.042,-8.496],[15.159,0.222],[-2.47,-11.924],[4.244,-13.752],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-18.409,-5.003],[0,0],[-12.116,0.029],[0,0],[-4.018,13.02],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[137.482,-73.719],[103.415,-119.974],[87.059,-94.242],[51.888,-117.344],[37.264,-93.817],[21,-83.483],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.543,2.365],[31.747,5.139],[-0.448,-9.416],[17.445,0.67],[-3.026,-11.773],[3.582,-13.912],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-23.878,-3.865],[0,0],[-12.11,-0.231],[0,0],[-3.391,13.171],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[140.453,-72.938],[104.486,-120.112],[107.766,-59.2],[48.316,-114.175],[34.158,-91.473],[18.43,-80.402],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19.5,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.372,3.535],[28.525,4.041],[1.518,-9.943],[19.104,0.995],[-3.43,-11.663],[3.102,-14.028],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-21.455,-3.039],[0,0],[-12.105,-0.42],[0,0],[-2.937,13.281],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[142.609,-72.371],[113.017,-120.8],[109.132,-57.128],[45.724,-111.875],[31.904,-89.773],[16.565,-78.166],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.2,4.704],[27.446,2.943],[3.483,-10.469],[20.762,1.32],[-3.833,-11.553],[2.621,-14.145],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-20.643,-2.213],[0,0],[-12.1,-0.608],[0,0],[-2.482,13.392],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[144.764,-71.805],[119.213,-121.489],[110.497,-55.057],[43.132,-109.576],[29.651,-88.073],[14.7,-75.93],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20.5,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.029,5.874],[31.063,1.845],[5.448,-10.996],[22.421,1.646],[-4.237,-11.443],[2.141,-14.261],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-23.364,-1.388],[0,0],[-12.095,-0.797],[0,0],[-2.027,13.502],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[146.92,-71.238],[120.638,-122.177],[111.863,-52.985],[40.54,-107.276],[27.397,-86.373],[12.835,-73.694],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[18.964,6.316],[32.973,1.43],[6.192,-11.196],[23.048,1.769],[-4.389,-11.401],[1.959,-14.305],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-24.8,-1.075],[0,0],[-12.093,-0.868],[0,0],[-1.855,13.543],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[147.736,-71.024],[120.628,-122.437],[112.38,-52.201],[39.559,-106.406],[26.545,-85.729],[12.129,-72.848],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":21.5,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[18.899,6.759],[33.097,1.014],[6.935,-11.395],[23.676,1.892],[-4.542,-11.36],[1.778,-14.349],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-24.894,-0.763],[0,0],[-12.091,-0.939],[0,0],[-1.683,13.585],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[148.551,-70.809],[122.431,-122.698],[112.896,-51.418],[38.578,-105.537],[25.692,-85.086],[11.424,-72.003],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"t":24,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[18.85,7.095],[32.534,0.698],[7.5,-11.546],[24.153,1.985],[-4.658,-11.328],[1.639,-14.383],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-24.471,-0.525],[0,0],[-12.09,-0.994],[0,0],[-1.552,13.617],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[149.171,-70.646],[124.471,-122.896],[113.289,-50.822],[37.833,-104.875],[25.044,-84.597],[10.887,-71.36],[41.676,-22.528],[71.867,54.464]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.913725495338,0.78823530674,0.647058844566,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":33,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":12,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":15,"s":[20]},{"t":24,"s":[20]}]},"p":{"a":0,"k":[341.929,268.75,0]},"a":{"a":0,"k":[87.294,20.789,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0},"t":12,"s":[{"i":[[-3.234,1.162],[-2.46,-1.144],[-6.693,0.486],[-1.143,-0.902],[30.317,-18.567],[-14.52,12.287],[0.456,0.616],[-0.361,0.857],[-0.164,0.059],[6.008,28.397],[5.038,-1.804],[-0.723,0.265],[0.043,-0.015],[3.05,-1.092],[-0.656,0.236]],"o":[[0.85,-0.305],[4.348,2.021],[2.034,-0.162],[0.829,0.654],[32.946,-6.739],[-5.103,-21.33],[-0.804,-1.086],[0.234,-0.327],[0,0],[-5.862,-27.709],[0,0],[0.128,-0.047],[0,0],[-3.05,1.092],[0,0]],"v":[[87.03,135.071],[92.538,135.42],[101.888,135.85],[106.758,134.301],[51.49,160.266],[147.472,120.625],[118.205,127.697],[118.067,124.445],[118.631,123.753],[134.546,113.38],[111.487,126.32],[107.491,127.745],[104.6,128.78],[92.721,133.037],[91.203,133.58]],"c":true}]},{"t":24,"s":[{"i":[[-12.801,-44.719],[-7.19,-16.664],[-24.083,-15.726],[-2.877,-10.794],[30.317,-18.567],[-14.52,12.287],[0.825,6.413],[-2.342,5.994],[-0.65,2.073],[6.008,28.397],[19.934,-2.839],[-2.869,-83.633],[0.171,-7.306],[12.067,-1.247],[-2.597,-11.969]],"o":[[3.364,11.751],[12.709,29.454],[7.337,4.667],[2.085,7.822],[32.946,-6.739],[-5.103,-21.33],[-1.456,-11.312],[1.233,-2.004],[0,0],[-5.862,-27.709],[0,0],[0.507,14.786],[0,0],[-12.067,1.247],[0,0]],"v":[[-1.225,69.692],[17.656,113.086],[49.904,144.181],[68.931,145.79],[51.49,160.266],[147.472,120.625],[117.368,125.178],[120.966,98.001],[123.817,91.889],[134.546,113.38],[95.537,-17.397],[79.733,56.172],[68.297,62.602],[21.29,19.282],[15.285,33.125]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":33,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":12,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":16.801,"s":[20]},{"t":24,"s":[20]}]},"p":{"a":0,"k":[178.129,267.75,0]},"a":{"a":0,"k":[87.294,20.789,0]},"s":{"a":0,"k":[-100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":12,"s":[{"i":[[-2.263,0.741],[-0.665,0.16],[-3.893,2.031],[-0.513,0.16],[4.696,-2.915],[-14.52,12.287],[0.165,-0.015],[-0.339,0.268],[-0.092,0.078],[1.101,-0.279],[3.138,-1.829],[2.927,-1.582],[-0.012,-0.084],[1.902,-1.103],[-0.475,0.123]],"o":[[0.595,-0.195],[1.204,-0.29],[1.185,-0.62],[0.371,-0.116],[5.175,-3.042],[-5.103,-21.33],[-0.29,0.026],[0.184,-0.13],[0,0],[-1.075,0.272],[0,0],[-2.2,1.189],[0,0],[-1.902,1.103],[0,0]],"v":[[125.645,131.596],[128.24,130.673],[135.03,127.775],[138.007,126.365],[132.831,129.954],[147.472,120.625],[146.172,121.398],[146.596,120.819],[147.015,120.505],[147.351,119.725],[140.249,123.09],[134.044,126.113],[130.712,128.153],[128.938,129.09],[128.061,129.762]],"c":true}]},{"t":24,"s":[{"i":[[-12.801,-44.719],[-3.605,-17.788],[-24.083,-15.726],[-2.877,-10.794],[30.317,-18.567],[-14.52,12.287],[0.825,6.413],[-2.342,5.994],[-0.65,2.073],[6.008,28.397],[19.934,-2.839],[18.256,7.361],[0.171,-7.306],[12.067,-1.247],[-2.597,-11.969]],"o":[[3.364,11.751],[6.529,32.214],[7.337,4.667],[2.085,7.822],[32.946,-6.739],[-5.103,-21.33],[-1.456,-11.312],[1.233,-2.004],[0,0],[-5.862,-27.709],[0,0],[-13.721,-5.533],[0,0],[-12.067,1.247],[0,0]],"v":[[12.775,-39.308],[27.656,6.086],[67.904,85.681],[85.931,109.29],[51.49,160.266],[147.472,120.625],[138.368,85.178],[141.966,58.001],[144.817,51.889],[148.546,4.38],[105.537,-51.897],[67.733,-94.328],[46.297,-83.398],[35.29,-89.718],[29.285,-75.875]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":33,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"parent":2,"sr":1,"ks":{"p":{"a":0,"k":[-63.783,7.296,0]},"a":{"a":0,"k":[-63.783,7.296,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-11.871],[9.986,0],[0,7.079],[-9.986,0]],"o":[[0,7.079],[-9.986,0],[0,-11.357],[9.986,0]],"v":[[-46.701,12.524],[-63.783,33.272],[-80.865,12.524],[-63.783,11.875]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.282352954149,0.286274522543,0.286274522543,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-3.629],[7.358,0],[0,5.828],[-7.358,0]],"o":[[0,5.701],[-7.358,0],[0,-3.63],[7.358,0]],"v":[[-50.461,-12.676],[-63.783,-11.535],[-77.106,-12.676],[-63.783,-23.45]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.960784316063,0.960784316063,0.960784316063,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-19.516],[13.393,0],[0,19.516],[-13.393,0]],"o":[[0,19.516],[-13.393,0],[0,-19.516],[13.393,0]],"v":[[-39.533,4.77],[-63.783,40.106],[-88.033,4.77],[-63.783,-30.566]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.066666670144,0.066666670144,0.066666670144,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-19.516],[13.393,0],[0,19.516],[-13.393,0]],"o":[[0,19.516],[-13.393,0],[0,-19.516],[13.393,0]],"v":[[-38.523,9.822],[-63.783,45.158],[-89.044,9.822],[-63.783,-25.514]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.749019622803,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":33,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"parent":2,"sr":1,"ks":{"p":{"a":0,"k":[73.842,7.296,0]},"a":{"a":0,"k":[-63.783,7.296,0]},"s":{"a":0,"k":[-100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-11.871],[9.986,0],[0,7.079],[-9.986,0]],"o":[[0,7.079],[-9.986,0],[0,-11.357],[9.986,0]],"v":[[-46.701,12.524],[-63.783,33.272],[-80.865,12.524],[-63.783,11.875]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.282352954149,0.286274522543,0.286274522543,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-3.629],[7.358,0],[0,5.828],[-7.358,0]],"o":[[0,5.701],[-7.358,0],[0,-3.63],[7.358,0]],"v":[[-50.461,-12.676],[-63.783,-11.535],[-77.106,-12.676],[-63.783,-23.45]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.960784316063,0.960784316063,0.960784316063,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-19.516],[13.393,0],[0,19.516],[-13.393,0]],"o":[[0,19.516],[-13.393,0],[0,-19.516],[13.393,0]],"v":[[-39.533,4.77],[-63.783,40.106],[-88.033,4.77],[-63.783,-30.566]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.066666670144,0.066666670144,0.066666670144,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-19.516],[13.393,0],[0,19.516],[-13.393,0]],"o":[[0,19.516],[-13.393,0],[0,-19.516],[13.393,0]],"v":[[-38.523,9.822],[-63.783,45.158],[-89.044,9.822],[-63.783,-25.514]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.749019622803,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":33,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"parent":2,"sr":1,"ks":{"p":{"a":0,"k":[5.883,50.25,0]},"a":{"a":0,"k":[5.883,50.25,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[2.511,-4.918],[0.213,-0.942],[-3.744,-1.911],[2.476,-4.893],[-0.478,0.936],[3.948,2.016]],"o":[[-0.469,0.919],[2.519,-4.85],[3.744,1.911],[0.643,-0.734],[2.511,-4.918],[-3.948,-2.016]],"v":[[13.327,44.758],[12.3,47.57],[24.125,43.208],[25.922,54.567],[27.623,52.056],[25.019,39.507]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.211764708161,0.086274512112,0.035294119269,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[2.509,-4.914],[-3.948,-2.015],[-2.509,4.914],[3.948,2.015]],"o":[[-2.509,4.914],[3.948,2.015],[2.509,-4.914],[-3.948,-2.015]],"v":[[13.326,44.758],[15.931,57.305],[27.621,52.056],[25.016,39.509]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.403921574354,0.266666680574,0.188235297799,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[3.93,-7.699],[-3.948,-2.015],[-2.812,4.747],[3.948,2.015]],"o":[[-2.509,4.914],[3.948,2.015],[4.225,-7.134],[-3.948,-2.015]],"v":[[12.111,46.986],[15.567,59.968],[27.169,55.043],[25.661,40.199]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.941176474094,0.847058832645,0.705882370472,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.511,-4.918],[-0.213,-0.942],[3.744,-1.911],[-2.476,-4.893],[0.478,0.936],[-3.948,2.016]],"o":[[0.469,0.919],[-2.519,-4.85],[-3.744,1.911],[-0.643,-0.734],[-2.511,-4.918],[3.948,-2.016]],"v":[[-1.485,44.758],[-0.457,47.57],[-12.282,43.208],[-14.08,54.567],[-15.78,52.056],[-13.177,39.507]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.211764708161,0.086274512112,0.035294119269,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.509,-4.914],[3.948,-2.015],[2.509,4.914],[-3.948,2.015]],"o":[[2.509,4.914],[-3.948,2.015],[-2.509,-4.914],[3.948,-2.015]],"v":[[-1.484,44.758],[-4.089,57.305],[-15.779,52.056],[-13.174,39.509]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.403921574354,0.266666680574,0.188235297799,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-3.93,-7.699],[3.948,-2.015],[2.812,4.747],[-3.948,2.015]],"o":[[2.509,4.914],[-3.948,2.015],[-4.225,-7.134],[3.948,-2.015]],"v":[[-0.269,46.986],[-3.725,59.968],[-15.327,55.043],[-13.818,40.199]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.941176474094,0.847058832645,0.705882370472,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[11.287,0.292],[3.048,-1.351],[3.153,1.398],[3.628,-0.094],[-0.105,-10.467],[-29.829,0],[-0.445,8.16]],"o":[[-3.628,-0.094],[-3.153,1.398],[-3.048,-1.351],[-11.287,0.292],[0.079,7.902],[29.532,0],[0.569,-10.452]],"v":[[23.934,29.849],[11.849,32.814],[-0.121,32.814],[-12.206,29.849],[-28.625,47.042],[5.864,70.656],[40.353,47.042]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.749019622803,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":33,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"parent":2,"sr":1,"ks":{"p":{"a":0,"k":[5.864,107.189,0]},"a":{"a":0,"k":[5.864,107.189,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":0,"s":[{"i":[[1.188,-2.439],[0.921,0.417],[6.452,0.59],[6.878,0],[2.613,-0.213],[1.434,-0.652],[-0.372,-1.404],[-1.391,0.611],[-6.645,0.566],[-7.086,0],[-2.685,-0.256],[-1.475,-0.645]],"o":[[0.378,-1.404],[-1.435,-0.65],[-2.605,-0.238],[-6.884,0],[-6.452,0.525],[-0.92,0.418],[-1.188,-2.439],[1.479,-0.65],[2.688,-0.229],[7.086,0],[6.639,0.632],[1.396,0.611]],"v":[[34.087,94.056],[33.413,91.171],[21.553,89.807],[5.926,89.257],[-9.991,89.703],[-21.919,91.171],[-22.598,94.051],[-22.751,89.003],[-10.911,87.679],[5.926,87.083],[22.498,87.794],[34.24,89.003]],"c":true}]},{"t":24,"s":[{"i":[[0.653,-2.439],[0.333,1.551],[3.373,3.05],[6.071,0],[1.346,-1.29],[0.618,-2.064],[-0.205,-1.404],[-0.338,1.997],[-3.418,3.305],[-6.254,0],[-1.401,-1.279],[-0.54,-2.447]],"o":[[0.208,-1.404],[-0.519,-2.417],[-1.362,-1.231],[-6.075,0],[-3.325,3.187],[-0.266,0.888],[-0.653,-2.439],[0.358,-2.116],[1.382,-1.337],[6.254,0],[3.465,3.161],[0.511,2.317]],"v":[[23.396,98.676],[22.79,94.926],[17.364,87.313],[7.718,82.815],[-2.169,86.808],[-7.041,95.879],[-7.395,99.164],[-7.644,94.323],[-3.163,85.358],[7.718,80.641],[17.981,85.383],[23.361,92.486]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.015686275437,0,0.003921568859,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":0,"s":[{"i":[[0.676,0],[6.173,0],[4.992,3.171],[-1.401,0],[0,0],[-6.229,-1.128]],"o":[[-4.927,3.051],[-6.347,0],[-0.236,0],[6.404,0],[0,0],[1.339,0.243]],"v":[[23.022,105.559],[5.744,111.007],[-11.941,105.116],[-8.151,106.691],[5.555,107.59],[19.484,106.941]],"c":true}]},{"t":24,"s":[{"i":[[0.372,0],[3.395,0],[2.745,3.171],[-0.77,0],[0,0],[-3.425,-1.128]],"o":[[-2.709,3.051],[-3.49,0],[-0.13,0],[3.521,0],[0,0],[0.736,0.243]],"v":[[17.833,108.59],[7.798,113.377],[-1.599,109.066],[0.157,109.061],[7.764,109.456],[16.695,109.214]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.698039233685,0.274509817362,0.376470595598,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":0,"s":[{"i":[[2,0.88],[6.637,0.633],[7.087,0],[2.687,-0.229],[1.475,-0.649],[-2.5,-3.795],[-11.418,0],[-3.544,5.379]],"o":[[-1.475,-0.649],[-2.684,-0.256],[-7.087,0],[-6.643,0.567],[-2,0.88],[3.544,5.379],[11.418,0],[2.5,-3.795]],"v":[[34.242,89.001],[22.499,87.793],[5.925,87.084],[-10.913,87.679],[-22.749,89.001],[-20.634,97.431],[5.746,111.004],[32.127,97.431]],"c":true}]},{"t":24,"s":[{"i":[[0.731,3.326],[3.463,3.161],[6.255,0],[1.382,-1.336],[0.511,-1.952],[-1.375,-3.795],[-6.279,0],[-1.949,5.379]],"o":[[-0.539,-2.454],[-1.401,-1.279],[-6.255,0],[-3.416,3.304],[-0.692,2.646],[1.949,5.379],[6.279,0],[1.375,-3.795]],"v":[[23.362,92.486],[17.981,85.382],[7.718,80.642],[-3.164,85.358],[-7.643,94.319],[-6.315,102.544],[7.8,113.374],[22.318,102.05]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.247058823705,0.039215687662,0.141176477075,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":0,"s":[{"i":[[3.188,0.413],[6.882,0.687],[7.357,0],[2.786,-0.25],[1.597,-0.464],[-2.595,-3.795],[-11.852,0],[-3.679,5.379]],"o":[[-1.648,-0.214],[-2.783,-0.278],[-7.357,0],[-6.889,0.618],[-3.048,0.885],[3.678,5.379],[11.852,0],[2.595,-3.795]],"v":[[34.242,89.001],[22.653,90.081],[5.925,89.286],[-11.089,89.965],[-22.749,89.001],[-21.823,100.948],[5.733,115.682],[33.554,101.21]],"c":true}]},{"t":24,"s":[{"i":[[1.427,3.64],[3.584,3.306],[6.493,0],[1.43,-1.397],[0.622,-1.853],[-1.427,-3.795],[-6.517,0],[-2.023,5.379]],"o":[[-0.738,-1.882],[-1.45,-1.337],[-6.493,0],[-3.535,3.454],[-1.188,3.538],[2.023,5.379],[6.517,0],[1.427,-3.795]],"v":[[23.362,92.486],[17.962,87.849],[7.718,82.844],[-2.692,87.507],[-7.643,94.319],[-7.255,103.879],[7.792,118.052],[23.092,103.579]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.956862747669,0.913725495338,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":0,"s":[{"i":[[2,0.88],[6.637,0.633],[7.087,0],[2.687,-0.229],[1.475,-0.649],[-2.5,-3.795],[-11.418,0],[-3.544,5.379]],"o":[[-1.475,-0.649],[-2.684,-0.256],[-7.087,0],[-6.643,0.567],[-2,0.88],[3.544,5.379],[11.418,0],[2.5,-3.795]],"v":[[35.881,85.862],[23.167,84.726],[5.922,83.945],[-11.558,84.606],[-24.395,85.862],[-22.277,95.229],[5.746,108.802],[33.769,95.229]],"c":true}]},{"t":24,"s":[{"i":[[0.642,1.938],[3.047,3.546],[6.255,0],[2.025,-2.773],[0.19,-1.347],[-1.375,-3.795],[-6.279,0],[-1.949,5.379]],"o":[[-0.54,-1.629],[-1.226,-1.426],[-6.255,0],[-2.393,3.277],[-0.244,1.731],[1.949,5.379],[6.279,0],[1.375,-3.795]],"v":[[22.949,90.878],[18.446,83.779],[7.715,77.503],[-5.317,85.475],[-8.088,94.686],[-7.219,100.342],[7.8,111.172],[23.221,99.848]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.749019622803,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":33,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"parent":1,"sr":1,"ks":{"p":{"a":0,"k":[5.303,144.067,0]},"a":{"a":0,"k":[5.303,144.067,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-10.992,-6.96],[0,0],[-16.976,11.779],[-18.657,4.78]],"o":[[17.211,5.126],[18.61,11.782],[0,0],[10.182,-7.065],[0,0]],"v":[[-70.986,150.908],[-27.847,165.744],[5.303,176.601],[37.654,165.544],[81.313,150.908]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.698039233685,0.584313750267,0.447058826685,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-24.85,4.01],[2.81,-4.07],[4.9,-0.67],[10.74,-7.45],[0,0],[16.98,11.78],[7.38,1.01],[3.407,3.585],[1.57,5.1],[-14.42,-8.27],[-8.4,5.66]],"o":[[-1.671,6.6],[-2.81,4.07],[-7.38,1.01],[-16.97,11.78],[0,0],[-10.73,-7.45],[-4.9,-0.67],[-3.841,-4.041],[12.31,3.41],[17.93,10.29],[7.89,-5.32]],"v":[[91.856,131.627],[83.799,149.584],[68.549,154.317],[37.649,165.547],[5.299,176.597],[-27.051,165.547],[-57.941,154.317],[-72.457,150.111],[-81.201,131.67],[-17.101,154.037],[28.949,154.037]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":11},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[51.445,12.472],[11.245,-13.381],[2.922,3.477],[38.8,-9.406],[-5.196,-23.384],[-28.607,-10.289],[0.785,-3.583],[-16.2,-23.457],[-4.902,-0.674],[-10.738,-7.451],[0,0],[-16.975,11.779],[-7.382,1.015],[-2.812,4.072],[3.47,15.845],[-3.452,1.242],[-4.853,21.841]],"o":[[-38.801,-9.406],[-2.922,3.477],[-11.245,-13.381],[-51.445,12.472],[4.854,21.841],[3.452,1.242],[-3.47,15.845],[2.812,4.072],[7.382,1.015],[16.975,11.779],[0,0],[10.737,-7.451],[4.902,-0.674],[16.2,-23.457],[-0.785,-3.583],[28.607,-10.289],[5.197,-23.384]],"v":[[88.579,-75.949],[10.891,-45.909],[-0.285,-45.909],[-77.973,-75.949],[-132.017,4.597],[-80.556,57.662],[-75.875,66.071],[-70.075,146.877],[-57.943,154.316],[-27.048,165.544],[5.303,176.601],[37.654,165.544],[68.548,153.316],[80.68,146.877],[86.481,66.071],[91.162,57.662],[142.623,4.597]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.941176474094,0.847058832645,0.701960802078,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-6.695,-15.921],[5.747,-3.178],[22.493,4.591],[6.631,-1.555],[16.983,8.766],[-3.144,6.284],[-28.696,7.38],[-11.25,-13.38],[-2.92,3.48],[-38.8,-9.4]],"o":[[2.546,6.053],[-39.7,21.954],[-6.674,-1.362],[-56.127,13.163],[-6.244,-3.223],[5.486,-10.965],[38.664,-9.944],[2.92,3.48],[11.25,-13.38],[26.786,6.499]],"v":[[134.093,-35.971],[128.458,-19.704],[14.574,-11.647],[-5.621,-11.396],[-116.496,-21.256],[-122.192,-38.41],[-76.315,-72.759],[-0.282,-45.913],[10.887,-45.913],[87.791,-72.245]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.749019622803,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[51.445,12.472],[11.245,-13.381],[2.922,3.477],[38.8,-9.406],[-5.196,-23.384],[-28.607,-10.289],[0.785,-3.583],[-16.2,-23.457],[-4.902,-0.674],[-10.738,-7.451],[0,0],[-16.975,11.779],[-7.382,1.015],[-2.812,4.072],[3.47,15.845],[-3.452,1.242],[-4.853,21.841]],"o":[[-38.801,-9.406],[-2.922,3.477],[-11.245,-13.381],[-51.445,12.472],[4.854,21.841],[3.452,1.242],[-3.47,15.845],[2.812,4.072],[7.382,1.015],[16.975,11.779],[0,0],[10.737,-7.451],[4.902,-0.674],[16.2,-23.457],[-0.785,-3.583],[28.607,-10.289],[5.197,-23.384]],"v":[[88.579,-75.949],[10.891,-45.909],[-0.285,-45.909],[-77.973,-75.949],[-132.017,4.597],[-80.556,57.662],[-75.875,66.071],[-70.075,146.877],[-57.943,154.316],[-27.048,165.544],[5.303,176.601],[37.654,165.544],[68.548,154.316],[80.68,146.877],[86.481,66.071],[91.162,57.662],[142.623,4.597]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.941176474094,0.847058832645,0.701960802078,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[24.154,48.305],[13.203,43.885],[77.248,0],[15.205,-50.539],[21.999,-43.995],[-198.638,0]],"o":[[-21.999,-43.995],[-15.205,-50.539],[-78.08,0],[-13.203,43.885],[-24.154,48.305],[198.638,0]],"v":[[169.587,-20.913],[146.026,-110.813],[5.303,-207.093],[-135.42,-110.813],[-158.981,-20.913],[5.303,159.087]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-7.633,-2.073]],"o":[[0,0],[0,0]],"v":[[41.579,-186.44],[54.078,-183.608]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-1.612,-0.576]],"o":[[1.511,0.494],[0,0]],"v":[[62.717,-181.024],[67.407,-179.42]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-23.536],[50.223,0],[0,23.536],[-50.223,0]],"o":[[0,23.536],[-50.223,0],[0,-23.536],[50.223,0]],"v":[[96.859,-148.606],[5.921,-105.99],[-85.016,-148.606],[5.921,-191.222]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.780392169952,0.623529434204,0.419607847929,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[22.173,44.342],[12.12,40.285],[70.911,0],[13.958,-46.393],[20.194,-40.385],[-182.343,0]],"o":[[-20.194,-40.385],[-13.957,-46.393],[-71.675,0],[-12.12,40.285],[-22.173,44.342],[182.343,0]],"v":[[156.11,-21.166],[134.482,-103.692],[5.303,-192.073],[-123.876,-103.692],[-145.504,-21.166],[5.303,144.067]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.737254917622,0.572549045086,0.349019616842,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[24.154,48.305],[13.203,43.885],[77.248,0],[15.205,-50.539],[21.999,-43.995],[-198.638,0]],"o":[[-21.999,-43.995],[-15.205,-50.539],[-78.08,0],[-13.203,43.885],[-24.154,48.305],[198.638,0]],"v":[[169.587,-20.913],[146.026,-110.813],[5.303,-207.093],[-135.42,-110.813],[-158.981,-20.913],[5.303,159.087]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":33,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"parent":11,"sr":1,"ks":{"p":{"a":0,"k":[-148.03,-63.49,0]},"a":{"a":0,"k":[-148.03,-63.49,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[1.081,-15.591],[0,0],[0.01,0],[-5.699,9.64],[0,0]],"o":[[-42.636,-22.157],[-0.01,0],[-1.283,-12.428],[16.864,-28.514],[5.547,-0.606]],"v":[[-120.56,-89.291],[-178.963,-61.424],[-178.983,-61.434],[-172.678,-95.859],[-126.714,-115.865]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.596078455448,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[17.728,-1.949],[16.87,-28.514],[-21.623,-17.626]],"o":[[0,0],[-13.747,23.235],[25.716,20.962]],"v":[[-126.711,-115.866],[-172.682,-95.857],[-156.36,-15.922]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.929411768913,0.674509823322,0.666666686535,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[55.083,3.638],[22.172,-27.368],[-47.288,-39.234]],"o":[[-19.765,-1.305],[-24.472,30.208],[49.528,41.092]],"v":[[-115.798,-143.021],[-186.99,-118.078],[-164.645,10.795]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-36.319,10.182]],"o":[[0,0],[0,0]],"v":[[-194.126,-81.406],[-152.972,-131.334]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.737254917622,0.572549045086,0.349019616842,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":10},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[55.083,3.638],[22.172,-27.368],[-47.288,-39.234]],"o":[[-19.765,-1.305],[-24.472,30.208],[49.528,41.092]],"v":[[-115.798,-143.021],[-186.99,-118.078],[-164.645,10.795]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":33,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"parent":11,"sr":1,"ks":{"p":{"a":0,"k":[157.962,-63.49,0]},"a":{"a":0,"k":[157.962,-63.49,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.081,-15.591],[0,0],[-0.01,0],[5.699,9.64],[0,0]],"o":[[42.636,-22.157],[0.01,0],[1.283,-12.428],[-16.864,-28.514],[-5.547,-0.606]],"v":[[130.917,-89.291],[189.319,-61.424],[189.34,-61.434],[183.034,-95.859],[137.07,-115.865]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.596078455448,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-55.083,3.638],[-22.172,-27.368],[47.288,-39.234]],"o":[[19.765,-1.305],[24.472,30.208],[-49.528,41.092]],"v":[[125.73,-143.021],[196.922,-118.078],[174.577,10.795]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[36.319,10.182]],"o":[[0,0],[0,0]],"v":[[203.905,-80.406],[162.752,-130.334]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.737254917622,0.572549045086,0.349019616842,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":10},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-17.728,-1.949],[-16.87,-28.514],[21.623,-17.626]],"o":[[0,0],[13.747,23.235],[-25.716,20.962]],"v":[[136.643,-115.866],[182.613,-95.857],[166.291,-15.922]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.929411768913,0.674509823322,0.666666686535,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-55.083,3.638],[-22.172,-27.368],[47.288,-39.234]],"o":[[19.765,-1.305],[24.472,30.208],[-49.528,41.092]],"v":[[125.73,-143.021],[196.922,-118.078],[174.577,10.795]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":33,"st":0,"bm":0}]} \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/tsv_setup_monkey_close_and_peek_to_idle.tgs b/TMessagesProj/src/main/res/raw/tsv_setup_monkey_close_and_peek_to_idle.tgs new file mode 100644 index 000000000..e53ea9ac9 --- /dev/null +++ b/TMessagesProj/src/main/res/raw/tsv_setup_monkey_close_and_peek_to_idle.tgs @@ -0,0 +1 @@ +{"tgs":1,"v":"5.5.2","fr":60,"ip":0,"op":33,"w":512,"h":512,"nm":"_password_peek - remove","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":3,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":0,"k":[256,256,0]},"s":{"a":0,"k":[95,95,100]}},"ao":0,"ip":0,"op":33,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":3,"parent":11,"sr":1,"ks":{"o":{"a":0,"k":0}},"ao":0,"ip":0,"op":33,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"t":24,"s":[-12.879]}]},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":0,"s":[127.498,460.89,0],"to":[0,0,0],"ti":[0,0,0]},{"t":24,"s":[127.498,860.89,0]}]},"a":{"a":0,"k":[150.003,211.463,0]},"s":{"a":0,"k":[-95,95,100]}},"ao":0,"ef":[{"ty":5,"nm":"arm R: Path 1 [1.1.1.0]","np":3,"mn":"ADBE Layer Control","ix":1,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.1.1.1]","np":3,"mn":"ADBE Layer Control","ix":2,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.1.1.2]","np":3,"mn":"ADBE Layer Control","ix":3,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.2.1.0]","np":3,"mn":"ADBE Layer Control","ix":4,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.2.1.1]","np":3,"mn":"ADBE Layer Control","ix":5,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.2.1.2]","np":3,"mn":"ADBE Layer Control","ix":6,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.0]","np":3,"mn":"ADBE Layer Control","ix":7,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.1]","np":3,"mn":"ADBE Layer Control","ix":8,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.2]","np":3,"mn":"ADBE Layer Control","ix":9,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.3]","np":3,"mn":"ADBE Layer Control","ix":10,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.4]","np":3,"mn":"ADBE Layer Control","ix":11,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.5]","np":3,"mn":"ADBE Layer Control","ix":12,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.6]","np":3,"mn":"ADBE Layer Control","ix":13,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.0]","np":3,"mn":"ADBE Layer Control","ix":14,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.1]","np":3,"mn":"ADBE Layer Control","ix":15,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.2]","np":3,"mn":"ADBE Layer Control","ix":16,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.3]","np":3,"mn":"ADBE Layer Control","ix":17,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.4]","np":3,"mn":"ADBE Layer Control","ix":18,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.5]","np":3,"mn":"ADBE Layer Control","ix":19,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.6]","np":3,"mn":"ADBE Layer Control","ix":20,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.7]","np":3,"mn":"ADBE Layer Control","ix":21,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.8]","np":3,"mn":"ADBE Layer Control","ix":22,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.9]","np":3,"mn":"ADBE Layer Control","ix":23,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.10]","np":3,"mn":"ADBE Layer Control","ix":24,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.11]","np":3,"mn":"ADBE Layer Control","ix":25,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.12]","np":3,"mn":"ADBE Layer Control","ix":26,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.13]","np":3,"mn":"ADBE Layer Control","ix":27,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.14]","np":3,"mn":"ADBE Layer Control","ix":28,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.15]","np":3,"mn":"ADBE Layer Control","ix":29,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.16]","np":3,"mn":"ADBE Layer Control","ix":30,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]}],"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.264},"t":0,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[114.063,202.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0.631,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.875,55.938],[98.625,84.625],[114,202.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1.264,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[74.25,55.75],[98.625,84.625],[113.875,201.938]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1.895,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[74.875,55.438],[98.625,84.625],[113.688,201.625]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2.527,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[75.688,55],[98.625,84.625],[113.375,201.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.158,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[76.688,54.5],[98.625,84.625],[112.938,200.25]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.789,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[77.813,53.938],[98.625,84.625],[112.375,199.125]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4.422,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[79,53.313],[98.625,84.625],[111.625,197.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5.053,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[80.375,52.625],[98.625,84.625],[110.688,196.563]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5.684,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[81.75,51.938],[98.625,84.625],[109.688,195.313]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6.316,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[83.125,51.25],[98.625,84.625],[108.688,194.25]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6.947,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[84.5,50.5],[98.625,84.625],[107.625,193.375]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7.58,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[85.875,49.813],[98.625,84.625],[106.625,192.563]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8.211,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[87.188,49.125],[98.625,84.625],[105.813,191.75]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8.842,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[88.438,48.5],[98.625,84.625],[105.125,190.938]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9.473,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[89.563,47.938],[98.625,84.625],[104.625,189.938]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.105,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[90.563,47.438],[98.625,84.625],[104.313,188.938]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.738,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[91.375,47.063],[98.625,84.625],[104.125,188]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11.369,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[91.938,46.75],[98.625,84.625],[104,187.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.375,46.563],[98.625,84.625],[104.063,186.125]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12.631,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.125,185.313]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.264,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.25,184.625]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.895,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.438,184.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14.527,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.563,183.625]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15.158,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.688,183.375]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15.789,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.75,183.188]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16.422,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.875,183.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17.053,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.938,183]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17.684,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.938,182.938]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.316,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.947,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19.58,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20.211,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20.842,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21.473,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22.105,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22.738,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.736},"o":{"x":0.167,"y":0.167},"t":23.369,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"t":24,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.264},"t":0,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189.375,202.063],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0.631,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189.313,201.75],[156.688,64.313],[162.125,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1.264,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189.188,200.75],[156.688,64.313],[162.063,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1.895,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189,199.063],[156.688,64.313],[161.938,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2.527,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[188.563,196.688],[156.688,64.313],[161.688,37.438]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.158,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[188,193.75],[156.688,64.313],[161.5,37.438]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.789,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[187.188,190.375],[156.688,64.313],[161.188,37.375]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4.422,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[186.125,186.688],[156.688,64.313],[160.938,37.375]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5.053,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[184.813,182.938],[156.688,64.313],[160.563,37.313]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5.684,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[183.313,179.313],[156.688,64.313],[160.25,37.313]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6.316,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[181.75,176],[156.688,64.313],[159.938,37.25]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6.947,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[180.125,173.063],[156.688,64.313],[159.563,37.25]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7.58,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[178.688,170.563],[156.688,64.313],[159.25,37.188]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8.211,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.438,168.438],[156.688,64.313],[158.938,37.125]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8.842,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.438,166.75],[156.688,64.313],[158.625,37.125]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9.473,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[175.875,165.5],[156.688,64.313],[158.375,37.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.105,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[175.563,164.563],[156.688,64.313],[158.125,37.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.738,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[175.438,163.813],[156.688,64.313],[157.938,37.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11.369,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[175.5,163.313],[156.688,64.313],[157.75,37.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[175.688,162.938],[156.688,64.313],[157.688,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12.631,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176,162.75],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.264,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.313,162.688],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.895,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.625,162.688],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14.527,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.875,162.688],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15.158,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.125,162.813],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15.789,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.313,162.938],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16.422,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.438,163],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17.053,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.563,163.063],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17.684,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.625,163.063],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.316,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.625,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.947,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19.58,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20.211,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20.842,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21.473,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22.105,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22.738,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.736},"o":{"x":0.167,"y":0.167},"t":23.369,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"t":24,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.264},"t":0,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.75,211.063],[164.125,212.188],[190.375,204.063],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0.631,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.75,210.938],[163.875,211.938],[190.313,203.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1.264,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.625,210.563],[163,211.313],[190.25,202.688],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1.895,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.375,209.875],[161.438,210.188],[190.063,201],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2.527,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.063,208.813],[159.125,208.625],[189.688,198.625],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.158,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[130.5,207.375],[156.188,206.813],[189.188,195.688],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.789,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[129.813,205.625],[153,204.75],[188.375,192.25],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4.422,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[128.938,203.688],[149.813,202.563],[187.375,188.5],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5.053,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[128,201.75],[146.75,200.5],[186.125,184.688],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5.684,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[126.875,199.938],[143.938,198.563],[184.688,181.063],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6.316,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[125.813,198.313],[141.438,196.813],[183.188,177.688],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6.947,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[124.688,196.875],[139.25,195.375],[181.625,174.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7.58,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[123.688,195.688],[137.375,194.063],[180.188,172.188],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8.211,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[122.813,194.563],[135.875,193],[179,170.063],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8.842,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[122.063,193.5],[134.688,192],[178,168.313],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9.473,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.563,192.5],[133.875,191],[177.438,167.063],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.105,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.25,191.438],[133.375,190.063],[177.125,166.125],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.738,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121,190.563],[133.125,189.25],[177,165.375],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11.369,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[120.938,189.75],[133,188.5],[177.063,164.875],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[120.938,189],[133,187.813],[177.25,164.563],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12.631,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121,188.313],[133.125,187.25],[177.563,164.375],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.264,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.063,187.688],[133.188,186.75],[177.875,164.313],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.895,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.188,187.25],[133.313,186.438],[178.188,164.313],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14.527,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.313,187],[133.438,186.188],[178.438,164.375],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15.158,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.438,186.813],[133.563,186.063],[178.625,164.438],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15.789,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.5,186.688],[133.688,186],[178.813,164.563],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16.422,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.625,186.625],[133.75,186],[178.938,164.625],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17.053,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.625,186.563],[133.813,185.938],[179.063,164.688],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17.684,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.813,185.938],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.316,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.938],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.947,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19.58,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20.211,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20.842,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21.473,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22.105,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22.738,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.736},"o":{"x":0.167,"y":0.167},"t":23.369,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"t":24,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.737254917622,0.572549045086,0.349019616842,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.264},"t":0,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.375,204.063],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[114.063,205.063],[148,212.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0.631,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.313,203.75],[156.688,64.313],[159.75,34.75],[150.5,44.563],[146.625,32.125],[142.375,31.125],[134.375,39.938],[123.438,26],[119.063,26.813],[113.813,44.063],[96.438,37.063],[93,39.375],[92.875,59.063],[73.375,51.063],[98.625,84.625],[114.063,205.063],[147.75,212.563]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1.264,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.25,202.688],[156.688,64.313],[159.688,34.75],[150.625,44.5],[146.875,32.188],[142.625,31.125],[134.688,39.875],[123.938,26],[119.563,26.813],[114.313,44.063],[97.125,36.938],[93.688,39.25],[93.188,59],[73.813,50.875],[98.625,84.625],[113.938,204.938],[146.875,211.875]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1.895,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.063,201],[156.688,64.313],[159.5,34.813],[150.813,44.375],[147.25,32.313],[143,31.125],[135.188,39.75],[124.75,26.063],[120.375,26.875],[115.125,44.125],[98.188,36.688],[94.75,39],[93.688,58.813],[74.5,50.563],[98.625,84.625],[113.813,204.625],[145.25,210.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2.527,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[189.688,198.625],[156.688,64.313],[159.25,34.813],[151,44.25],[147.688,32.438],[143.5,31.125],[135.875,39.563],[125.813,26.125],[121.438,26.938],[116.188,44.188],[99.625,36.313],[96.188,38.625],[94.313,58.625],[75.375,50.188],[98.625,84.625],[113.563,204.063],[142.938,209.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.158,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[189.188,195.688],[156.688,64.313],[158.938,34.875],[151.313,44.125],[148.25,32.563],[144.125,31.125],[136.688,39.438],[127.125,26.125],[122.75,26.938],[117.5,44.188],[101.375,35.938],[97.938,38.25],[95.125,58.313],[76.438,49.75],[98.625,84.625],[113.25,203.188],[139.938,207.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.789,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[188.375,192.25],[156.688,64.313],[158.625,34.938],[151.688,43.938],[148.938,32.75],[144.813,31.125],[137.625,39.25],[128.563,26.188],[124.188,27],[118.938,44.25],[103.375,35.438],[99.938,37.75],[96.063,58],[77.688,49.188],[98.625,84.625],[112.75,202.063],[136.625,205.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4.422,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[187.375,188.5],[156.688,64.313],[158.25,35],[152.063,43.75],[149.625,32.938],[145.563,31.188],[138.688,39],[130.188,26.25],[125.813,27.063],[120.563,44.313],[105.563,34.938],[102.125,37.25],[97.063,57.688],[79,48.625],[98.625,84.625],[112.063,200.813],[133.25,203.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5.053,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[186.125,184.688],[156.688,64.313],[157.875,35.063],[152.438,43.563],[150.438,33.125],[146.313,31.188],[139.813,38.75],[131.938,26.313],[127.563,27.125],[122.313,44.375],[107.875,34.438],[104.438,36.75],[98.125,57.313],[80.438,48],[98.625,84.625],[111.25,199.5],[130.125,201.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5.684,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[184.688,181.063],[156.688,64.313],[157.5,35.125],[152.875,43.375],[151.25,33.313],[147.188,31.188],[140.938,38.5],[133.75,26.375],[129.375,27.188],[124.125,44.438],[110.313,33.875],[106.875,36.188],[99.25,56.938],[81.938,47.375],[98.625,84.625],[110.375,198.25],[127.25,199.313]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6.316,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[183.188,177.688],[156.688,64.313],[157.063,35.188],[153.25,43.125],[152.063,33.563],[148.063,31.188],[142.125,38.25],[135.563,26.438],[131.188,27.25],[125.938,44.5],[112.813,33.313],[109.375,35.625],[100.375,56.563],[83.5,46.688],[98.625,84.625],[109.375,197.188],[124.688,197.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6.947,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[181.625,174.75],[156.688,64.313],[156.625,35.25],[153.688,42.938],[152.875,33.75],[148.875,31.188],[143.313,38],[137.438,26.563],[133.063,27.375],[127.813,44.625],[115.313,32.688],[111.875,35],[101.5,56.188],[85.063,46.063],[98.625,84.625],[108.438,196.25],[122.438,196.563]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7.58,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[180.188,172.188],[156.688,64.313],[156.25,35.313],[154.125,42.75],[153.688,34],[149.75,31.188],[144.438,37.813],[139.25,26.625],[134.875,27.438],[129.625,44.688],[117.75,32.125],[114.313,34.438],[102.625,55.813],[86.563,45.375],[98.625,84.625],[107.5,195.375],[120.5,195.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8.211,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179,170.063],[156.688,64.313],[155.875,35.375],[154.5,42.5],[154.438,34.188],[150.563,31.188],[145.563,37.563],[140.938,26.688],[136.563,27.5],[131.313,44.75],[120.063,31.625],[116.625,33.938],[103.688,55.438],[88,44.75],[98.625,84.625],[106.75,194.625],[118.938,194.563]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8.842,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178,168.313],[156.688,64.313],[155.5,35.375],[154.875,42.313],[155.188,34.375],[151.313,31.188],[146.563,37.313],[142.563,26.75],[138.188,27.563],[132.938,44.813],[122.25,31.125],[118.813,33.438],[104.688,55.125],[89.313,44.188],[98.625,84.625],[106.063,193.75],[117.75,193.688]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9.473,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.438,167.063],[156.688,64.313],[155.188,35.438],[155.25,42.188],[155.813,34.563],[152,31.25],[147.5,37.125],[144.063,26.813],[139.688,27.625],[134.438,44.875],[124.25,30.625],[120.813,32.938],[105.625,54.813],[90.563,43.688],[98.625,84.625],[105.625,192.813],[116.875,192.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.105,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.125,166.125],[156.688,64.313],[154.875,35.5],[155.5,42],[156.375,34.688],[152.563,31.25],[148.375,36.938],[145.375,26.813],[141,27.625],[135.75,44.875],[125.938,30.25],[122.5,32.563],[106.438,54.563],[91.625,43.188],[98.625,84.625],[105.25,191.75],[116.375,191.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.738,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177,165.375],[156.688,64.313],[154.625,35.5],[155.75,41.875],[156.875,34.813],[153.063,31.25],[149,36.813],[146.438,26.875],[142.063,27.688],[136.813,44.938],[127.375,29.938],[123.938,32.25],[107.063,54.313],[92.5,42.813],[98.625,84.625],[105.063,190.813],[116.063,190.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11.369,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.063,164.875],[156.688,64.313],[154.5,35.563],[155.938,41.813],[157.25,34.938],[153.438,31.25],[149.563,36.688],[147.25,26.875],[142.875,27.688],[137.625,44.938],[128.5,29.688],[125.063,32],[107.563,54.188],[93.188,42.5],[98.625,84.625],[104.938,189.875],[116,190]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.25,164.563],[156.688,64.313],[154.375,35.563],[156.063,41.75],[157.438,35],[153.688,31.25],[149.875,36.625],[147.75,26.938],[143.375,27.75],[138.125,45],[129.188,29.5],[125.75,31.813],[107.875,54.063],[93.625,42.313],[98.625,84.625],[104.938,189],[116,189.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12.631,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.563,164.375],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.063,188.188],[116.063,188.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.264,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.875,164.313],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.125,187.5],[116.188,187.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.895,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178.188,164.313],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.25,186.938],[116.25,187.375]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14.527,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178.438,164.375],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.375,186.5],[116.375,187.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15.158,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178.625,164.438],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.5,186.25],[116.5,186.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15.789,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178.813,164.563],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.563,186.063],[116.625,186.688]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16.422,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178.938,164.625],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.688,185.938],[116.688,186.625]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17.053,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.063,164.688],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.688,185.875],[116.75,186.563]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17.684,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.813],[116.75,186.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.316,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.947,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19.58,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20.211,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20.842,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21.473,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22.105,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22.738,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.736},"o":{"x":0.167,"y":0.167},"t":23.369,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"t":24,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-12.183,-34.643]],"o":[[0,0],[0,0]],"v":[[41.387,-96.927],[74.702,-38.38]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":12.631,"s":[{"i":[[0,0],[-9.623,-65.983]],"o":[[0,0],[0,0]],"v":[[86.517,-104.667],[113.459,-44.71]],"c":false}]},{"t":24,"s":[{"i":[[0,0],[-16.69,-65.288]],"o":[[0,0],[0,0]],"v":[[73.894,-101.727],[107.348,-44.337]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.580392181873,0.376470595598,0.215686276555,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-3.811,-17.322]],"o":[[0,0],[0,0]],"v":[[133.538,-74.755],[147.742,-34.569]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":12.631,"s":[{"i":[[0,0],[-0.82,-17.124]],"o":[[0,0],[0,0]],"v":[[147.278,-73.523],[156.287,-33.644]],"c":false}]},{"t":24,"s":[{"i":[[0,0],[-2.646,-17.122]],"o":[[0,0],[0,0]],"v":[[138.271,-76.891],[151.566,-37.773]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.580392181873,0.376470595598,0.215686276555,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-9.007,-30.14]],"o":[[0,0],[0,0]],"v":[[76.723,-110.438],[108.941,-50.159]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":12.631,"s":[{"i":[[0,0],[-3.221,-30.331]],"o":[[0,0],[0,0]],"v":[[116.515,-115.508],[136.69,-53.721]],"c":false}]},{"t":24,"s":[{"i":[[0,0],[-6.464,-30.14]],"o":[[0,0],[0,0]],"v":[[102.888,-115.812],[129.737,-55.865]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.580392181873,0.376470595598,0.215686276555,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[20.093,-1.386],[17.668,8.661],[0.693,-7.275],[12.125,-0.373],[-1.732,-12.125],[5.123,-13.539],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-13.289,-6.514],[0,0],[-12.125,0.373],[0,0],[-4.85,12.818],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[133.538,-74.755],[98.895,-119.792],[76.723,-110.438],[56.63,-121.551],[41.387,-96.927],[24.412,-87.574],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":12.631,"s":[{"i":[[1.676,27.483],[2.293,28.734],[3.07,5.382],[11.575,9.843],[-4.135,-6.511],[8.601,0.539],[0.04,-12.061],[4.168,-9.585],[-1.933,-20.561],[-5.598,-30.564]],"o":[[0,0],[-1.189,-14.881],[0,0],[-8.706,-7.403],[0,0],[-8.601,-0.539],[0,0],[-5.238,12.055],[2.327,24.75],[5.598,30.564]],"v":[[158.002,30.408],[159.55,-13.781],[147.162,-73.484],[124.983,-120.557],[116.515,-115.508],[100.8,-126.589],[85.743,-104.635],[74.51,-95.563],[83.581,-18.309],[91.476,44.341]],"c":true}]},{"t":24,"s":[{"i":[[1.676,27.483],[3.695,28.652],[3.658,5.082],[12.679,8.661],[-4.848,-6.104],[8.701,-0.373],[-1.243,-12.125],[3.171,-10.075],[-4.13,-20.458],[-5.598,-30.564]],"o":[[0,0],[-1.916,-14.839],[0,0],[-9.537,-6.514],[0,0],[-8.701,0.373],[0,0],[-3.982,12.672],[4.971,24.626],[5.598,30.564]],"v":[[158.002,30.408],[156.721,-15.376],[138.158,-76.84],[110.861,-121.787],[102.888,-115.812],[85.917,-125.277],[73.12,-101.612],[62.796,-91.3],[80.13,-14.627],[91.476,44.341]],"c":true}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.580392181873,0.376470595598,0.215686276555,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[25.645,70.013],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[2.001,5.679],[4.557,24.917],[23.028,21.078],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[37.09,-38.535],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":12.631,"s":[{"i":[[10.643,70.793],[-0.439,-4.83],[-5.174,-30.8],[1.97,27.525],[1.391,28.785],[0.608,4.602],[42.671,-3.275]],"o":[[0.808,5.736],[2.251,24.762],[5.172,30.786],[0,0],[-0.218,-4.512],[0,0],[-33.501,2.571]],"v":[[79.2,-46.36],[84.434,-18.331],[91.955,44.096],[157.821,30.381],[159.169,-13.797],[157.931,-27.545],[126.056,33.44]],"c":true}]},{"t":24,"s":[{"i":[[18.227,70.013],[-0.955,-4.807],[-5.174,-30.8],[1.97,27.525],[2.796,28.747],[0.833,4.577],[42.671,-3.275]],"o":[[1.422,5.679],[4.897,24.645],[5.172,30.786],[0,0],[-0.438,-4.506],[0,0],[-33.501,2.571]],"v":[[72.743,-42.351],[80.985,-14.74],[91.955,44.096],[157.821,30.381],[156.339,-15.374],[154.428,-29.076],[126.056,33.44]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.86274510622,0.690196096897,0.498039215803,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[-2.11,-7.28],[0.08,1.65],[-12.857,-21.206],[-4.596,-2.59],[0,0],[7.09,11.6],[0,0],[-12.323,-15.225],[-4.52,-8.91],[-0.32,1.03],[0,0],[0,0],[-15.78,-21.096],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[10.24,-0.71],[17.66,8.66],[0.7,-7.28],[12.13,-0.37],[-1.73,-12.13],[5.13,-13.54]],"o":[[0.81,-1.63],[-0.54,-10.39],[13.69,22.58],[6.049,3.409],[-2.93,-11.65],[-7.1,-11.59],[5.15,-18],[11.13,13.751],[4.52,8.92],[0.33,-1.03],[-4.26,-15.14],[1.37,-11.32],[18.31,24.479],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-13.29,-6.51],[0,0],[-12.12,0.38],[0,0],[-1.61,4.25]],"v":[[26.173,-69.753],[27.343,-74.753],[48.083,-70.753],[68.653,-33.843],[74.463,-39.163],[54.034,-80.303],[44.824,-98.643],[74.463,-95.213],[98.713,-51.333],[109.264,-48.413],[108.614,-52.253],[84.773,-102.243],[111.373,-92.133],[140.114,-32.473],[147.793,-35.753],[142.653,-52.793],[159.744,-55.513],[133.864,-74.753],[99.224,-119.793],[77.043,-110.433],[56.954,-121.553],[41.713,-96.923],[24.733,-87.573]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":12.631,"s":[{"i":[[-0.732,-7.321],[-0.111,1.63],[-6.871,-21.828],[-2.976,-2.892],[0,0],[3.808,11.942],[0,0],[-7.116,-15.903],[-2.261,-9.106],[-0.339,0.988],[0,0],[0,0],[-8.946,-21.939],[-0.685,-3.177],[0,0],[0,0],[-0.301,-0.529],[3.373,0.585],[11.574,9.836],[1.253,-7.111],[8.605,0.533],[0.042,-12.066],[4.156,-9.127]],"o":[[0.742,-1.543],[0.701,-10.264],[7.316,23.242],[3.917,3.807],[-0.855,-11.683],[-3.807,-11.936],[5.512,-17.328],[6.427,14.363],[2.263,9.115],[0.34,-0.989],[-1.431,-15.217],[2.147,-11.037],[10.38,25.457],[0.602,2.792],[0,0],[-0.241,-8.888],[-3.533,-12.155],[0,0],[-8.707,-7.399],[0,0],[-8.598,-0.532],[0,0],[-1.805,3.967]],"v":[[73.898,-77.895],[75.245,-82.728],[95.837,-79.298],[107.935,-40.639],[112.592,-45.44],[100.078,-89.384],[88.349,-106.067],[111.894,-99.803],[129.59,-55.641],[136.736,-51.979],[136.677,-55.807],[119.907,-105.95],[130.914,-92.407],[156.234,-33.395],[156.257,-34.75],[149.197,-51.147],[152.717,-49.833],[147.302,-73.467],[125.215,-120.534],[116.74,-115.479],[101.029,-126.567],[85.973,-104.607],[74.737,-95.538]],"c":true}]},{"t":24,"s":[{"i":[[-1.514,-7.28],[0.061,1.65],[-9.227,-21.206],[-3.298,-2.59],[0,0],[5.097,11.596],[0,0],[-8.843,-15.225],[-3.241,-8.911],[-0.236,1.029],[0,0],[0,0],[-11.324,-21.096],[-1.026,-3.12],[0,0],[0,0],[-0.359,-0.5],[3.452,0.229],[12.678,8.654],[0.502,-7.28],[8.704,-0.38],[-1.241,-12.13],[3.207,-9.614]],"o":[[0.581,-1.63],[-0.388,-10.39],[9.825,22.58],[4.341,3.409],[-2.102,-11.65],[-5.095,-11.59],[3.696,-18],[7.987,13.751],[3.244,8.92],[0.237,-1.03],[-3.057,-15.14],[0.983,-11.32],[13.14,24.479],[0.902,2.742],[0,0],[-1.188,-8.907],[-4.844,-11.84],[0,0],[-9.537,-6.51],[0,0],[-8.698,0.38],[0,0],[-1.392,4.179]],"v":[[64.06,-73.479],[64.9,-78.479],[85.959,-77.223],[102.23,-39.658],[106.399,-44.978],[89.149,-87.81],[75.586,-103.328],[99.915,-99.538],[122.397,-57.039],[129.968,-54.119],[129.502,-57.959],[107.314,-106.568],[119.816,-94.129],[151.54,-37.516],[151.418,-38.881],[142.579,-54.608],[146.257,-53.662],[138.301,-76.838],[111.097,-121.789],[103.118,-115.807],[86.149,-125.279],[73.354,-101.608],[63.027,-91.299]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.988235294819,0.890196084976,0.780392169952,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[20.093,-1.386],[17.668,8.661],[0.693,-7.275],[12.125,-0.373],[-1.732,-12.125],[5.123,-13.539],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-13.289,-6.514],[0,0],[-12.125,0.373],[0,0],[-4.85,12.818],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[133.538,-74.755],[98.895,-119.792],[76.723,-110.438],[56.63,-121.551],[41.387,-96.927],[24.412,-87.574],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":12.631,"s":[{"i":[[1.676,27.483],[1.424,28.79],[2.778,5.732],[11.575,9.843],[1.247,-7.107],[8.601,0.539],[0.04,-12.061],[4.25,-9.083],[-1.933,-20.561],[-5.598,-30.564]],"o":[[0,0],[-1.39,-28.1],[0,0],[-8.706,-7.403],[0,0],[-8.601,-0.539],[0,0],[-5.569,11.907],[2.327,24.75],[5.598,30.564]],"v":[[158.002,30.408],[159.55,-13.781],[147.162,-73.484],[124.983,-120.557],[116.515,-115.508],[100.8,-126.589],[85.743,-104.635],[74.51,-95.563],[83.581,-18.309],[91.476,44.341]],"c":true}]},{"t":24,"s":[{"i":[[1.676,27.483],[2.83,28.75],[3.402,5.465],[12.679,8.661],[0.497,-7.275],[8.701,-0.373],[-1.243,-12.125],[3.306,-9.58],[-4.13,-20.458],[-5.598,-30.564]],"o":[[0,0],[-2.762,-28.061],[0,0],[-9.537,-6.514],[0,0],[-8.701,0.373],[0,0],[-4.33,12.558],[4.971,24.626],[5.598,30.564]],"v":[[158.002,30.408],[156.721,-15.376],[138.158,-76.84],[110.861,-121.787],[102.888,-115.812],[85.917,-125.277],[73.12,-101.612],[62.796,-91.3],[80.13,-14.627],[91.476,44.341]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.913725495338,0.78823530674,0.647058844566,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":33,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"t":24,"s":[19]}]},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":0,"s":[378.502,550.89,0],"to":[0,0,0],"ti":[0,0,0]},{"t":24,"s":[378.502,850.89,0]}]},"a":{"a":0,"k":[150.003,211.463,0]},"s":{"a":0,"k":[95,95,100]}},"ao":0,"ef":[{"ty":5,"nm":"arm R: Path 1 [1.1.1.0]","np":3,"mn":"ADBE Layer Control","ix":1,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.1.1.1]","np":3,"mn":"ADBE Layer Control","ix":2,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.1.1.2]","np":3,"mn":"ADBE Layer Control","ix":3,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.2.1.0]","np":3,"mn":"ADBE Layer Control","ix":4,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.2.1.1]","np":3,"mn":"ADBE Layer Control","ix":5,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.2.1.2]","np":3,"mn":"ADBE Layer Control","ix":6,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.0]","np":3,"mn":"ADBE Layer Control","ix":7,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.1]","np":3,"mn":"ADBE Layer Control","ix":8,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.2]","np":3,"mn":"ADBE Layer Control","ix":9,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.3]","np":3,"mn":"ADBE Layer Control","ix":10,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.4]","np":3,"mn":"ADBE Layer Control","ix":11,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.5]","np":3,"mn":"ADBE Layer Control","ix":12,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.6]","np":3,"mn":"ADBE Layer Control","ix":13,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.0]","np":3,"mn":"ADBE Layer Control","ix":14,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.1]","np":3,"mn":"ADBE Layer Control","ix":15,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.2]","np":3,"mn":"ADBE Layer Control","ix":16,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.3]","np":3,"mn":"ADBE Layer Control","ix":17,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.4]","np":3,"mn":"ADBE Layer Control","ix":18,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.5]","np":3,"mn":"ADBE Layer Control","ix":19,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.6]","np":3,"mn":"ADBE Layer Control","ix":20,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.7]","np":3,"mn":"ADBE Layer Control","ix":21,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.8]","np":3,"mn":"ADBE Layer Control","ix":22,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.9]","np":3,"mn":"ADBE Layer Control","ix":23,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.10]","np":3,"mn":"ADBE Layer Control","ix":24,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.11]","np":3,"mn":"ADBE Layer Control","ix":25,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.12]","np":3,"mn":"ADBE Layer Control","ix":26,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.13]","np":3,"mn":"ADBE Layer Control","ix":27,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.14]","np":3,"mn":"ADBE Layer Control","ix":28,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.15]","np":3,"mn":"ADBE Layer Control","ix":29,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.16]","np":3,"mn":"ADBE Layer Control","ix":30,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]}],"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":0,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[103.513,107.589]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2.5,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[104.059,112.859]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[104.538,116.654]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.5,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[105.017,121.766]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[106.402,128.737]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4.5,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[107.842,140.839]],"c":false}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[109.303,159.126]],"c":false}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0.333},"t":5.5,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[111.369,186.872]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.333},"t":6,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[113.081,199.218]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.396},"t":8,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[114.063,202.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8.42,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.875,55.938],[98.625,84.625],[114,202.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8.842,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[74.25,55.75],[98.625,84.625],[113.875,201.938]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9.264,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[74.875,55.438],[98.625,84.625],[113.688,201.625]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9.686,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[75.688,55],[98.625,84.625],[113.375,201.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.105,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[76.688,54.5],[98.625,84.625],[112.938,200.25]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.525,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[77.813,53.938],[98.625,84.625],[112.375,199.125]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.949,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[79,53.313],[98.625,84.625],[111.625,197.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11.365,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[80.375,52.625],[98.625,84.625],[110.688,196.563]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11.791,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[81.75,51.938],[98.625,84.625],[109.688,195.313]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12.209,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[83.125,51.25],[98.625,84.625],[108.688,194.25]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12.635,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[84.5,50.5],[98.625,84.625],[107.625,193.375]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.053,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[85.875,49.813],[98.625,84.625],[106.625,192.563]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.475,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[87.188,49.125],[98.625,84.625],[105.813,191.75]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.895,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[88.438,48.5],[98.625,84.625],[105.125,190.938]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14.314,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[89.563,47.938],[98.625,84.625],[104.625,189.938]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14.736,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[90.563,47.438],[98.625,84.625],[104.313,188.938]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15.158,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[91.375,47.063],[98.625,84.625],[104.125,188]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15.58,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[91.938,46.75],[98.625,84.625],[104,187.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.375,46.563],[98.625,84.625],[104.063,186.125]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16.42,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.125,185.313]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16.842,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.25,184.625]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17.264,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.438,184.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17.686,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.563,183.625]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.105,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.688,183.375]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.525,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.75,183.188]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.949,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.875,183.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19.365,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.938,183]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19.791,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[104.938,182.938]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20.209,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20.635,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21.053,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21.475,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21.895,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22.314,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22.736,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23.158,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"i":{"x":0.833,"y":0.604},"o":{"x":0.167,"y":0.167},"t":23.58,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]},{"t":24,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[92.5,46.438],[98.625,84.625],[105,182.875]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":0,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[171.852,107.589],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2.5,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[172.674,112.859],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[173.517,116.654],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.5,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[174.36,121.766],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.707,128.737],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4.5,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[179.109,140.839],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[181.531,159.126],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0.333},"t":5.5,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[184.922,186.872],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.333},"t":6,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[187.752,199.218],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.396},"t":8,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189.375,202.063],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8.42,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189.313,201.75],[156.688,64.313],[162.125,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8.842,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189.188,200.75],[156.688,64.313],[162.063,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9.264,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189,199.063],[156.688,64.313],[161.938,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9.686,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[188.563,196.688],[156.688,64.313],[161.688,37.438]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.105,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[188,193.75],[156.688,64.313],[161.5,37.438]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.525,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[187.188,190.375],[156.688,64.313],[161.188,37.375]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.949,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[186.125,186.688],[156.688,64.313],[160.938,37.375]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11.365,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[184.813,182.938],[156.688,64.313],[160.563,37.313]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11.791,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[183.313,179.313],[156.688,64.313],[160.25,37.313]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12.209,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[181.75,176],[156.688,64.313],[159.938,37.25]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12.635,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[180.125,173.063],[156.688,64.313],[159.563,37.25]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.053,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[178.688,170.563],[156.688,64.313],[159.25,37.188]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.475,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.438,168.438],[156.688,64.313],[158.938,37.125]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.895,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.438,166.75],[156.688,64.313],[158.625,37.125]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14.314,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[175.875,165.5],[156.688,64.313],[158.375,37.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14.736,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[175.563,164.563],[156.688,64.313],[158.125,37.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15.158,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[175.438,163.813],[156.688,64.313],[157.938,37.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15.58,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[175.5,163.313],[156.688,64.313],[157.75,37.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[175.688,162.938],[156.688,64.313],[157.688,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16.42,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176,162.75],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16.842,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.313,162.688],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17.264,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.625,162.688],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17.686,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.875,162.688],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.105,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.125,162.813],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.525,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.313,162.938],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.949,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.438,163],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19.365,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.563,163.063],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19.791,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.625,163.063],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20.209,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.625,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20.635,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21.053,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21.475,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21.895,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22.314,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22.736,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23.158,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"i":{"x":0.833,"y":0.604},"o":{"x":0.167,"y":0.167},"t":23.58,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]},{"t":24,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[177.688,163.125],[156.688,64.313],[157.625,37]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":0,"s":[{"i":[[0,0],[-16.504,2.432],[0,0],[10.257,22.27],[0,0],[11.75,-13.313],[0.118,-11.22]],"o":[[0,0],[19.509,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[-0.093,8.794]],"v":[[119.563,116.589],[148.94,117.714],[172.759,109.589],[159.875,83.125],[159.454,86.599],[128.056,69.51],[122.641,99.378]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2.5,"s":[{"i":[[0,0],[-16.571,2.432],[0,0],[10.118,23.473],[0,0],[11.75,-13.313],[-0.05,-12.111]],"o":[[0,0],[19.588,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[0.069,9.727]],"v":[[120.173,121.859],[149.67,122.984],[173.586,114.859],[159.875,83.125],[159.342,86.636],[127.962,69.552],[122.721,101.252]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3,"s":[{"i":[[0,0],[-16.659,2.433],[0,0],[9.936,25.055],[0,0],[11.75,-13.313],[-0.271,-13.283]],"o":[[0,0],[19.692,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[0.283,10.954]],"v":[[120.738,125.654],[150.391,126.779],[174.433,118.654],[159.875,83.125],[159.194,86.685],[127.838,69.607],[122.825,103.716]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.5,"s":[{"i":[[0,0],[-16.747,2.433],[0,0],[9.755,26.638],[0,0],[11.75,-13.313],[-0.493,-14.455]],"o":[[0,0],[19.796,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[0.496,12.18]],"v":[[121.303,130.766],[151.112,131.891],[175.281,123.766],[159.875,83.125],[159.046,86.735],[127.715,69.661],[122.93,106.18]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[{"i":[[0,0],[-16.979,2.434],[0,0],[9.274,30.821],[0,0],[11.75,-13.313],[-1.078,-17.553]],"o":[[0,0],[20.07,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[1.061,15.423]],"v":[[122.913,137.737],[153.136,138.862],[177.64,130.737],[159.875,83.125],[158.656,86.865],[127.388,69.807],[123.207,112.695]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4.5,"s":[{"i":[[0,0],[-17.211,2.434],[0,0],[8.793,35.004],[0,0],[11.75,-13.313],[-1.663,-20.652]],"o":[[0,0],[20.345,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[1.625,18.667]],"v":[[124.579,149.839],[155.215,150.964],[180.055,142.839],[159.875,83.125],[158.265,86.995],[127.062,69.952],[123.484,119.209]],"c":true}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[0,0],[-17.443,2.435],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-2.248,-23.75]],"o":[[0,0],[20.619,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[2.19,21.91]],"v":[[126.266,168.126],[157.315,169.251],[182.49,161.126],[159.875,83.125],[157.875,87.125],[126.735,70.097],[123.761,125.724]],"c":true}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0.333},"t":5.5,"s":[{"i":[[0,0],[-17.763,2.436],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-3.055,-28.02]],"o":[[0,0],[20.998,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[2.967,26.379]],"v":[[128.643,195.872],[160.262,196.997],[185.899,188.872],[159.875,83.125],[157.875,87.125],[126.285,70.297],[124.186,131.025]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.333},"t":6,"s":[{"i":[[0,0],[-18.033,2.437],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-3.735,-31.621]],"o":[[0,0],[21.317,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[3.624,30.15]],"v":[[130.617,208.218],[162.717,209.343],[188.743,201.218],[159.875,83.125],[157.875,87.125],[125.905,70.466],[124.544,135.497]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.396},"t":8,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.75,211.063],[164.125,212.188],[190.375,204.063],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8.42,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.75,210.938],[163.875,211.938],[190.313,203.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8.842,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.625,210.563],[163,211.313],[190.25,202.688],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9.264,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.375,209.875],[161.438,210.188],[190.063,201],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9.686,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.063,208.813],[159.125,208.625],[189.688,198.625],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.105,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[130.5,207.375],[156.188,206.813],[189.188,195.688],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.525,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[129.813,205.625],[153,204.75],[188.375,192.25],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.949,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[128.938,203.688],[149.813,202.563],[187.375,188.5],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11.365,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[128,201.75],[146.75,200.5],[186.125,184.688],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11.791,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[126.875,199.938],[143.938,198.563],[184.688,181.063],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12.209,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[125.813,198.313],[141.438,196.813],[183.188,177.688],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12.635,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[124.688,196.875],[139.25,195.375],[181.625,174.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.053,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[123.688,195.688],[137.375,194.063],[180.188,172.188],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.475,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[122.813,194.563],[135.875,193],[179,170.063],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.895,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[122.063,193.5],[134.688,192],[178,168.313],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14.314,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.563,192.5],[133.875,191],[177.438,167.063],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14.736,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.25,191.438],[133.375,190.063],[177.125,166.125],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15.158,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121,190.563],[133.125,189.25],[177,165.375],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15.58,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[120.938,189.75],[133,188.5],[177.063,164.875],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[120.938,189],[133,187.813],[177.25,164.563],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16.42,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121,188.313],[133.125,187.25],[177.563,164.375],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16.842,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.063,187.688],[133.188,186.75],[177.875,164.313],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17.264,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.188,187.25],[133.313,186.438],[178.188,164.313],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17.686,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.313,187],[133.438,186.188],[178.438,164.375],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.105,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.438,186.813],[133.563,186.063],[178.625,164.438],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.525,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.5,186.688],[133.688,186],[178.813,164.563],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.949,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.625,186.625],[133.75,186],[178.938,164.625],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19.365,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.625,186.563],[133.813,185.938],[179.063,164.688],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19.791,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.813,185.938],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20.209,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.938],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20.635,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21.053,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21.475,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21.895,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22.314,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22.736,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23.158,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.604},"o":{"x":0.167,"y":0.167},"t":23.58,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"t":24,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[121.688,186.5],[133.875,185.875],[179.125,164.75],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.737254917622,0.572549045086,0.349019616842,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":0,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-17.865,0.036]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[31.135,-0.063]],"v":[[172.759,109.589],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[103.513,110.589],[134.308,118.276]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2.5,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-17.937,0.037]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[31.261,-0.063]],"v":[[173.586,114.859],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[104.059,115.859],[134.978,123.546]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-18.032,0.038]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[31.427,-0.063]],"v":[[174.433,118.654],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[104.538,119.654],[135.622,127.342]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.5,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-18.127,0.04]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[31.593,-0.063]],"v":[[175.281,123.766],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[105.017,124.766],[136.265,132.453]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-18.379,0.043]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[32.031,-0.063]],"v":[[177.64,130.737],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[106.402,131.737],[138.083,139.424]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4.5,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-18.63,0.047]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[32.469,-0.063]],"v":[[180.055,142.839],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[107.842,143.839],[139.956,151.527]],"c":true}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-18.881,0.051]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[32.907,-0.063]],"v":[[182.49,161.126],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[109.303,162.126],[141.851,169.813]],"c":true}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0.333},"t":5.5,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.228,0.056]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[33.511,-0.063]],"v":[[185.899,188.872],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[111.369,189.872],[144.514,197.56]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.333},"t":6,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.52,0.06]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.02,-0.063]],"v":[[188.743,201.218],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[113.081,202.218],[146.729,209.906]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.396},"t":8,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.375,204.063],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[114.063,205.063],[148,212.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8.42,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.313,203.75],[156.688,64.313],[159.75,34.75],[150.5,44.563],[146.625,32.125],[142.375,31.125],[134.375,39.938],[123.438,26],[119.063,26.813],[113.813,44.063],[96.438,37.063],[93,39.375],[92.875,59.063],[73.375,51.063],[98.625,84.625],[114.063,205.063],[147.75,212.563]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8.842,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.25,202.688],[156.688,64.313],[159.688,34.75],[150.625,44.5],[146.875,32.188],[142.625,31.125],[134.688,39.875],[123.938,26],[119.563,26.813],[114.313,44.063],[97.125,36.938],[93.688,39.25],[93.188,59],[73.813,50.875],[98.625,84.625],[113.938,204.938],[146.875,211.875]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9.264,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.063,201],[156.688,64.313],[159.5,34.813],[150.813,44.375],[147.25,32.313],[143,31.125],[135.188,39.75],[124.75,26.063],[120.375,26.875],[115.125,44.125],[98.188,36.688],[94.75,39],[93.688,58.813],[74.5,50.563],[98.625,84.625],[113.813,204.625],[145.25,210.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9.686,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[189.688,198.625],[156.688,64.313],[159.25,34.813],[151,44.25],[147.688,32.438],[143.5,31.125],[135.875,39.563],[125.813,26.125],[121.438,26.938],[116.188,44.188],[99.625,36.313],[96.188,38.625],[94.313,58.625],[75.375,50.188],[98.625,84.625],[113.563,204.063],[142.938,209.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.105,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[189.188,195.688],[156.688,64.313],[158.938,34.875],[151.313,44.125],[148.25,32.563],[144.125,31.125],[136.688,39.438],[127.125,26.125],[122.75,26.938],[117.5,44.188],[101.375,35.938],[97.938,38.25],[95.125,58.313],[76.438,49.75],[98.625,84.625],[113.25,203.188],[139.938,207.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.525,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[188.375,192.25],[156.688,64.313],[158.625,34.938],[151.688,43.938],[148.938,32.75],[144.813,31.125],[137.625,39.25],[128.563,26.188],[124.188,27],[118.938,44.25],[103.375,35.438],[99.938,37.75],[96.063,58],[77.688,49.188],[98.625,84.625],[112.75,202.063],[136.625,205.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.949,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[187.375,188.5],[156.688,64.313],[158.25,35],[152.063,43.75],[149.625,32.938],[145.563,31.188],[138.688,39],[130.188,26.25],[125.813,27.063],[120.563,44.313],[105.563,34.938],[102.125,37.25],[97.063,57.688],[79,48.625],[98.625,84.625],[112.063,200.813],[133.25,203.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11.365,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[186.125,184.688],[156.688,64.313],[157.875,35.063],[152.438,43.563],[150.438,33.125],[146.313,31.188],[139.813,38.75],[131.938,26.313],[127.563,27.125],[122.313,44.375],[107.875,34.438],[104.438,36.75],[98.125,57.313],[80.438,48],[98.625,84.625],[111.25,199.5],[130.125,201.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11.791,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[184.688,181.063],[156.688,64.313],[157.5,35.125],[152.875,43.375],[151.25,33.313],[147.188,31.188],[140.938,38.5],[133.75,26.375],[129.375,27.188],[124.125,44.438],[110.313,33.875],[106.875,36.188],[99.25,56.938],[81.938,47.375],[98.625,84.625],[110.375,198.25],[127.25,199.313]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12.209,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[183.188,177.688],[156.688,64.313],[157.063,35.188],[153.25,43.125],[152.063,33.563],[148.063,31.188],[142.125,38.25],[135.563,26.438],[131.188,27.25],[125.938,44.5],[112.813,33.313],[109.375,35.625],[100.375,56.563],[83.5,46.688],[98.625,84.625],[109.375,197.188],[124.688,197.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12.635,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[181.625,174.75],[156.688,64.313],[156.625,35.25],[153.688,42.938],[152.875,33.75],[148.875,31.188],[143.313,38],[137.438,26.563],[133.063,27.375],[127.813,44.625],[115.313,32.688],[111.875,35],[101.5,56.188],[85.063,46.063],[98.625,84.625],[108.438,196.25],[122.438,196.563]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.053,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[180.188,172.188],[156.688,64.313],[156.25,35.313],[154.125,42.75],[153.688,34],[149.75,31.188],[144.438,37.813],[139.25,26.625],[134.875,27.438],[129.625,44.688],[117.75,32.125],[114.313,34.438],[102.625,55.813],[86.563,45.375],[98.625,84.625],[107.5,195.375],[120.5,195.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.475,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179,170.063],[156.688,64.313],[155.875,35.375],[154.5,42.5],[154.438,34.188],[150.563,31.188],[145.563,37.563],[140.938,26.688],[136.563,27.5],[131.313,44.75],[120.063,31.625],[116.625,33.938],[103.688,55.438],[88,44.75],[98.625,84.625],[106.75,194.625],[118.938,194.563]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.895,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178,168.313],[156.688,64.313],[155.5,35.375],[154.875,42.313],[155.188,34.375],[151.313,31.188],[146.563,37.313],[142.563,26.75],[138.188,27.563],[132.938,44.813],[122.25,31.125],[118.813,33.438],[104.688,55.125],[89.313,44.188],[98.625,84.625],[106.063,193.75],[117.75,193.688]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14.314,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.438,167.063],[156.688,64.313],[155.188,35.438],[155.25,42.188],[155.813,34.563],[152,31.25],[147.5,37.125],[144.063,26.813],[139.688,27.625],[134.438,44.875],[124.25,30.625],[120.813,32.938],[105.625,54.813],[90.563,43.688],[98.625,84.625],[105.625,192.813],[116.875,192.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14.736,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.125,166.125],[156.688,64.313],[154.875,35.5],[155.5,42],[156.375,34.688],[152.563,31.25],[148.375,36.938],[145.375,26.813],[141,27.625],[135.75,44.875],[125.938,30.25],[122.5,32.563],[106.438,54.563],[91.625,43.188],[98.625,84.625],[105.25,191.75],[116.375,191.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15.158,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177,165.375],[156.688,64.313],[154.625,35.5],[155.75,41.875],[156.875,34.813],[153.063,31.25],[149,36.813],[146.438,26.875],[142.063,27.688],[136.813,44.938],[127.375,29.938],[123.938,32.25],[107.063,54.313],[92.5,42.813],[98.625,84.625],[105.063,190.813],[116.063,190.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15.58,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.063,164.875],[156.688,64.313],[154.5,35.563],[155.938,41.813],[157.25,34.938],[153.438,31.25],[149.563,36.688],[147.25,26.875],[142.875,27.688],[137.625,44.938],[128.5,29.688],[125.063,32],[107.563,54.188],[93.188,42.5],[98.625,84.625],[104.938,189.875],[116,190]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.25,164.563],[156.688,64.313],[154.375,35.563],[156.063,41.75],[157.438,35],[153.688,31.25],[149.875,36.625],[147.75,26.938],[143.375,27.75],[138.125,45],[129.188,29.5],[125.75,31.813],[107.875,54.063],[93.625,42.313],[98.625,84.625],[104.938,189],[116,189.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16.42,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.563,164.375],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.063,188.188],[116.063,188.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16.842,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[177.875,164.313],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.125,187.5],[116.188,187.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17.264,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178.188,164.313],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.25,186.938],[116.25,187.375]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17.686,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178.438,164.375],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.375,186.5],[116.375,187.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.105,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178.625,164.438],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.5,186.25],[116.5,186.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.525,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178.813,164.563],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.563,186.063],[116.625,186.688]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.949,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[178.938,164.625],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.688,185.938],[116.688,186.625]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19.365,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.063,164.688],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.688,185.875],[116.75,186.563]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19.791,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.813],[116.75,186.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20.209,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20.635,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21.053,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21.475,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21.895,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22.314,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22.736,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23.158,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"i":{"x":0.833,"y":0.604},"o":{"x":0.167,"y":0.167},"t":23.58,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]},{"t":24,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[179.125,164.75],[156.688,64.313],[154.313,35.563],[156.125,41.75],[157.5,35],[153.75,31.25],[150,36.625],[147.938,26.938],[143.563,27.75],[138.313,45],[129.438,29.438],[126,31.75],[108,54],[93.75,42.25],[98.625,84.625],[105.75,185.75],[116.75,186.438]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":0,"s":[{"i":[[0,0],[-18.559,-31.688]],"o":[[0,0],[0,0]],"v":[[25.044,-84.597],[74.379,-38.14]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2.5,"s":[{"i":[[0,0],[-18.306,-31.806]],"o":[[0,0],[0,0]],"v":[[25.692,-85.086],[74.392,-38.15]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3,"s":[{"i":[[0,0],[-17.973,-31.96]],"o":[[0,0],[0,0]],"v":[[26.545,-85.729],[74.409,-38.162]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.5,"s":[{"i":[[0,0],[-17.641,-32.114]],"o":[[0,0],[0,0]],"v":[[27.397,-86.373],[74.426,-38.175]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[{"i":[[0,0],[-16.761,-32.521]],"o":[[0,0],[0,0]],"v":[[29.651,-88.073],[74.47,-38.208]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4.5,"s":[{"i":[[0,0],[-15.882,-32.929]],"o":[[0,0],[0,0]],"v":[[31.904,-89.773],[74.515,-38.241]],"c":false}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[0,0],[-15.003,-33.336]],"o":[[0,0],[0,0]],"v":[[34.158,-91.473],[74.559,-38.274]],"c":false}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0.333},"t":5.5,"s":[{"i":[[0,0],[-13.791,-33.898]],"o":[[0,0],[0,0]],"v":[[37.264,-93.817],[74.621,-38.32]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.333},"t":6,"s":[{"i":[[0,0],[-12.769,-34.372]],"o":[[0,0],[0,0]],"v":[[39.884,-95.793],[74.673,-38.358]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":8,"s":[{"i":[[0,0],[-12.183,-34.643]],"o":[[0,0],[0,0]],"v":[[41.387,-96.927],[74.702,-38.38]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":16.42,"s":[{"i":[[0,0],[-9.623,-65.983]],"o":[[0,0],[0,0]],"v":[[86.517,-104.667],[113.459,-44.71]],"c":false}]},{"t":24,"s":[{"i":[[0,0],[-16.69,-65.288]],"o":[[0,0],[0,0]],"v":[[73.894,-101.727],[107.348,-44.337]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.580392181873,0.376470595598,0.215686276555,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":0,"s":[{"i":[[0,0],[4.1,-14.641]],"o":[[0,0],[0,0]],"v":[[149.171,-70.646],[147.742,-34.569]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2.5,"s":[{"i":[[0,0],[3.787,-14.747]],"o":[[0,0],[0,0]],"v":[[148.551,-70.809],[147.742,-34.569]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3,"s":[{"i":[[0,0],[3.374,-14.887]],"o":[[0,0],[0,0]],"v":[[147.736,-71.024],[147.742,-34.569]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.5,"s":[{"i":[[0,0],[2.961,-15.027]],"o":[[0,0],[0,0]],"v":[[146.92,-71.238],[147.742,-34.569]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[{"i":[[0,0],[1.87,-15.397]],"o":[[0,0],[0,0]],"v":[[144.764,-71.805],[147.742,-34.569]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4.5,"s":[{"i":[[0,0],[0.779,-15.766]],"o":[[0,0],[0,0]],"v":[[142.609,-72.371],[147.742,-34.569]],"c":false}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[0,0],[-0.311,-16.136]],"o":[[0,0],[0,0]],"v":[[140.453,-72.938],[147.742,-34.569]],"c":false}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0.333},"t":5.5,"s":[{"i":[[0,0],[-1.815,-16.645]],"o":[[0,0],[0,0]],"v":[[137.482,-73.719],[147.742,-34.569]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.333},"t":6,"s":[{"i":[[0,0],[-3.083,-17.075]],"o":[[0,0],[0,0]],"v":[[134.976,-74.378],[147.742,-34.569]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":8,"s":[{"i":[[0,0],[-3.811,-17.322]],"o":[[0,0],[0,0]],"v":[[133.538,-74.755],[147.742,-34.569]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":16.42,"s":[{"i":[[0,0],[-0.82,-17.124]],"o":[[0,0],[0,0]],"v":[[147.278,-73.523],[156.287,-33.644]],"c":false}]},{"t":24,"s":[{"i":[[0,0],[-2.646,-17.122]],"o":[[0,0],[0,0]],"v":[[138.271,-76.891],[151.566,-37.773]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.580392181873,0.376470595598,0.215686276555,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":0,"s":[{"i":[[0,0],[0.95,-2.261]],"o":[[0,0],[0,0]],"v":[[113.289,-50.822],[113.153,-50.098]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2.5,"s":[{"i":[[0,0],[0.139,-3.892]],"o":[[0,0],[0,0]],"v":[[112.896,-51.418],[112.986,-50.101]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3,"s":[{"i":[[0,0],[-0.929,-6.037]],"o":[[0,0],[0,0]],"v":[[112.38,-52.201],[112.766,-50.104]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.5,"s":[{"i":[[0,0],[-1.996,-8.182]],"o":[[0,0],[0,0]],"v":[[111.863,-52.985],[112.546,-50.107]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[{"i":[[0,0],[-4.817,-13.853]],"o":[[0,0],[0,0]],"v":[[110.497,-55.057],[111.965,-50.115]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4.5,"s":[{"i":[[0,0],[-7.638,-19.523]],"o":[[0,0],[0,0]],"v":[[109.132,-57.128],[111.385,-50.124]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[0,0],[-10.46,-25.194]],"o":[[0,0],[0,0]],"v":[[107.766,-59.2],[110.804,-50.132]],"c":false}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0.167},"t":5.5,"s":[{"i":[[0,0],[-10.58,-23.06]],"o":[[0,0],[0,0]],"v":[[87.059,-94.242],[110.004,-50.144]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.333},"t":6,"s":[{"i":[[0,0],[-9.581,-27.559]],"o":[[0,0],[0,0]],"v":[[83.177,-99.786],[109.329,-50.153]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":8,"s":[{"i":[[0,0],[-9.007,-30.14]],"o":[[0,0],[0,0]],"v":[[76.723,-110.438],[108.941,-50.159]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":16.42,"s":[{"i":[[0,0],[-3.221,-30.331]],"o":[[0,0],[0,0]],"v":[[116.515,-115.508],[136.69,-53.721]],"c":false}]},{"t":24,"s":[{"i":[[0,0],[-6.464,-30.14]],"o":[[0,0],[0,0]],"v":[[102.888,-115.812],[129.737,-55.865]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.580392181873,0.376470595598,0.215686276555,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":0,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[18.85,7.095],[23.358,-0.525],[5.921,-12.862],[25.32,1.323],[-4.658,-11.328],[1.639,-14.383],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-24.47,0.55],[0,0],[-12.114,-0.633],[0,0],[-1.552,13.617],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[149.171,-70.646],[124.471,-122.896],[113.289,-50.822],[37.833,-104.875],[25.044,-84.597],[10.887,-71.36],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2.5,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[18.899,6.759],[24.122,-0.161],[5.44,-12.692],[25.348,1.353],[-4.542,-11.36],[1.778,-14.349],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-24.893,0.27],[0,0],[-12.115,-0.593],[0,0],[-1.683,13.585],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[148.551,-70.809],[122.431,-122.698],[112.896,-51.418],[38.578,-105.537],[25.692,-85.086],[11.424,-72.003],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[18.964,6.316],[24.491,0.318],[4.808,-12.468],[25.385,1.393],[-4.389,-11.401],[1.959,-14.305],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-24.799,-0.098],[0,0],[-12.115,-0.541],[0,0],[-1.855,13.543],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[147.736,-71.024],[120.628,-122.437],[112.38,-52.201],[39.559,-106.406],[26.545,-85.729],[12.129,-72.848],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.5,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.029,5.874],[23.492,0.797],[4.175,-12.244],[25.421,1.432],[-4.237,-11.443],[2.141,-14.261],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-23.363,-0.467],[0,0],[-12.116,-0.488],[0,0],[-2.027,13.502],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[146.92,-71.238],[120.638,-122.177],[111.863,-52.985],[40.54,-107.276],[27.397,-86.373],[12.835,-73.694],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.2,4.704],[21.683,2.064],[2.503,-11.652],[25.519,1.536],[-3.833,-11.553],[2.621,-14.145],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-20.643,-1.441],[0,0],[-12.117,-0.349],[0,0],[-2.482,13.392],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[144.764,-71.805],[119.213,-121.489],[110.497,-55.057],[43.132,-109.576],[29.651,-88.073],[14.7,-75.93],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4.5,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.372,3.535],[23.426,3.331],[0.83,-11.06],[25.616,1.64],[-3.43,-11.663],[3.102,-14.028],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-21.454,-2.415],[0,0],[-12.119,-0.211],[0,0],[-2.937,13.281],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[142.609,-72.371],[113.017,-120.8],[109.132,-57.128],[45.724,-111.875],[31.904,-89.773],[16.565,-78.166],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.543,2.365],[26.99,4.598],[-0.842,-10.468],[25.713,1.744],[-3.026,-11.773],[3.582,-13.912],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-23.878,-3.389],[0,0],[-12.12,-0.072],[0,0],[-3.391,13.171],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[140.453,-72.938],[104.486,-120.112],[107.766,-59.2],[48.316,-114.175],[34.158,-91.473],[18.43,-80.402],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0.333},"t":5.5,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.779,0.754],[21.946,6.343],[-0.183,-9.096],[19.875,0.834],[-2.47,-11.924],[4.244,-13.752],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-18.409,-4.732],[0,0],[-12.122,0.12],[0,0],[-4.018,13.02],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[137.482,-73.719],[103.415,-119.974],[87.059,-94.242],[51.888,-117.344],[37.264,-93.817],[21,-83.483],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.333},"t":6,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.979,-0.606],[19.227,7.816],[0.374,-7.939],[14.95,0.067],[-2.001,-12.052],[4.803,-13.617],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-15.155,-5.865],[0,0],[-12.124,0.281],[0,0],[-4.547,12.891],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[134.976,-74.378],[100.543,-119.858],[83.177,-99.786],[54.901,-120.017],[39.884,-95.793],[23.168,-86.082],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":8,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[20.093,-1.386],[17.668,8.661],[0.693,-7.275],[12.125,-0.373],[-1.732,-12.125],[5.123,-13.539],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-13.289,-6.514],[0,0],[-12.125,0.373],[0,0],[-4.85,12.818],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[133.538,-74.755],[98.895,-119.792],[76.723,-110.438],[56.63,-121.551],[41.387,-96.927],[24.412,-87.574],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":16.42,"s":[{"i":[[1.676,27.483],[2.293,28.734],[3.07,5.382],[11.575,9.843],[-4.135,-6.511],[8.601,0.539],[0.04,-12.061],[4.168,-9.585],[-1.933,-20.561],[-5.598,-30.564]],"o":[[0,0],[-1.189,-14.881],[0,0],[-8.706,-7.403],[0,0],[-8.601,-0.539],[0,0],[-5.238,12.055],[2.327,24.75],[5.598,30.564]],"v":[[158.002,30.408],[159.55,-13.781],[147.162,-73.484],[124.983,-120.557],[116.515,-115.508],[100.8,-126.589],[85.743,-104.635],[74.51,-95.563],[83.581,-18.309],[91.476,44.341]],"c":true}]},{"t":24,"s":[{"i":[[1.676,27.483],[3.695,28.652],[3.658,5.082],[12.679,8.661],[-4.848,-6.104],[8.701,-0.373],[-1.243,-12.125],[3.171,-10.075],[-4.13,-20.458],[-5.598,-30.564]],"o":[[0,0],[-1.916,-14.839],[0,0],[-9.537,-6.514],[0,0],[-8.701,0.373],[0,0],[-3.982,12.672],[4.971,24.626],[5.598,30.564]],"v":[[158.002,30.408],[156.721,-15.376],[138.158,-76.84],[110.861,-121.787],[102.888,-115.812],[85.917,-125.277],[73.12,-101.612],[62.796,-91.3],[80.13,-14.627],[91.476,44.341]],"c":true}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.580392181873,0.376470595598,0.215686276555,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":0,"s":[{"i":[[42.06,61.566],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[3.334,5.013],[4.557,24.917],[23.028,21.078],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[35.225,-26.939],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2.5,"s":[{"i":[[41.409,61.901],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[3.282,5.039],[4.557,24.917],[23.028,21.078],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[35.299,-27.398],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3,"s":[{"i":[[40.553,62.342],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[3.212,5.074],[4.557,24.917],[23.028,21.078],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[35.396,-28.003],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.5,"s":[{"i":[[39.696,62.782],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[3.142,5.109],[4.557,24.917],[23.028,21.078],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[35.493,-28.608],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[{"i":[[37.433,63.947],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[2.958,5.201],[4.557,24.917],[23.028,21.077],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[35.751,-30.207],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4.5,"s":[{"i":[[35.169,65.112],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[2.775,5.292],[4.557,24.917],[23.028,21.077],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[36.008,-31.806],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[32.905,66.276],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[2.591,5.384],[4.557,24.917],[23.028,21.078],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[36.265,-33.405],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0.333},"t":5.5,"s":[{"i":[[29.786,67.882],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[2.337,5.511],[4.557,24.917],[23.028,21.078],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[36.619,-35.609],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.333},"t":6,"s":[{"i":[[27.154,69.236],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[2.123,5.617],[4.557,24.917],[23.028,21.078],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[36.918,-37.468],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":8,"s":[{"i":[[25.645,70.013],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[2.001,5.679],[4.557,24.917],[23.028,21.078],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[37.09,-38.535],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":16.42,"s":[{"i":[[10.643,70.793],[-0.439,-4.83],[-5.174,-30.8],[1.97,27.525],[1.391,28.785],[0.608,4.602],[42.671,-3.275]],"o":[[0.808,5.736],[2.251,24.762],[5.172,30.786],[0,0],[-0.218,-4.512],[0,0],[-33.501,2.571]],"v":[[79.2,-46.36],[84.434,-18.331],[91.955,44.096],[157.821,30.381],[159.169,-13.797],[157.931,-27.545],[126.056,33.44]],"c":true}]},{"t":24,"s":[{"i":[[18.227,70.013],[-0.955,-4.807],[-5.174,-30.8],[1.97,27.525],[2.796,28.747],[0.833,4.577],[42.671,-3.275]],"o":[[1.422,5.679],[4.897,24.645],[5.172,30.786],[0,0],[-0.438,-4.506],[0,0],[-33.501,2.571]],"v":[[72.743,-42.351],[80.985,-14.74],[91.955,44.096],[157.821,30.381],[156.339,-15.374],[154.428,-29.076],[126.056,33.44]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.86274510622,0.690196096897,0.498039215803,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":0,"s":[{"i":[[-3.834,-6.538],[0.488,1.578],[-17.673,-17.397],[-5.005,-1.667],[0,0],[9.732,9.493],[0,0],[-15.686,-11.731],[-8.233,-5.66],[-1.79,1.532],[0,0],[0,0],[-23.985,-23.807],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[9.608,3.612],[32.523,0.691],[7.531,-13.082],[24.263,1.674],[-4.657,-11.333],[1.645,-14.386]],"o":[[0.385,-1.779],[-3.076,-9.939],[18.818,18.524],[6.588,2.194],[-5.095,-10.879],[-9.73,-9.49],[0.57,-18.714],[14.167,10.595],[9.116,6.267],[1.792,-1.533],[-2.635,4.089],[10.399,-17.315],[24.266,24.085],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-24.47,-0.52],[0,0],[-12.097,-0.835],[0,0],[-0.516,4.515]],"v":[[16.973,-54.518],[16.879,-59.652],[37.966,-60.871],[69.305,-32.534],[73.995,-38.863],[41.387,-71.59],[27.954,-87.105],[60.423,-86.062],[103.976,-50.609],[113.869,-50.602],[116.047,-53.876],[112.759,-49.264],[125.003,-110.404],[140.114,-32.473],[147.793,-35.753],[150.285,-51.214],[169.48,-38.408],[149.466,-70.509],[124.993,-123.075],[113.522,-50.602],[38.14,-104.979],[25.361,-84.673],[11.199,-71.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2.5,"s":[{"i":[[-3.765,-6.568],[0.472,1.581],[-17.482,-17.548],[-4.989,-1.704],[0,0],[9.627,9.576],[0,0],[-15.552,-11.869],[-8.086,-5.789],[-1.732,1.512],[0,0],[0,0],[-25.082,-23.9],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[9.633,3.441],[33.086,1.007],[6.981,-12.829],[24.325,1.663],[-4.541,-11.365],[1.783,-14.352]],"o":[[0.402,-1.773],[-2.976,-9.957],[18.615,18.685],[6.566,2.243],[-5.009,-10.909],[-9.626,-9.574],[0.751,-18.685],[14.047,10.72],[8.933,6.372],[1.734,-1.513],[-2.699,3.326],[9.625,-16.997],[24.788,23.789],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-24.894,-0.757],[0,0],[-12.098,-0.786],[0,0],[-0.56,4.505]],"v":[[17.338,-55.122],[17.294,-60.251],[38.367,-61.263],[69.279,-32.586],[74.014,-38.875],[41.889,-71.935],[28.623,-87.563],[60.979,-86.425],[103.768,-50.638],[113.686,-50.515],[115.752,-53.811],[112.463,-49.914],[123.764,-109.848],[140.114,-32.473],[147.793,-35.753],[149.982,-51.277],[169.094,-39.086],[148.847,-70.677],[122.966,-122.87],[113.133,-51.206],[38.886,-105.636],[26.01,-85.159],[11.736,-72.078]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3,"s":[{"i":[[-3.676,-6.607],[0.451,1.585],[-17.231,-17.747],[-4.967,-1.752],[0,0],[9.49,9.686],[0,0],[-15.377,-12.052],[-7.892,-5.959],[-1.655,1.486],[0,0],[0,0],[-25.857,-24.022],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[9.666,3.215],[32.961,1.422],[6.257,-12.495],[24.407,1.65],[-4.388,-11.406],[1.965,-14.308]],"o":[[0.424,-1.765],[-2.843,-9.98],[18.347,18.896],[6.538,2.306],[-4.896,-10.95],[-9.489,-9.683],[0.99,-18.648],[13.888,10.885],[8.694,6.511],[1.657,-1.487],[-2.784,2.323],[8.606,-16.577],[24.824,23.399],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-24.8,-1.07],[0,0],[-12.099,-0.723],[0,0],[-0.617,4.491]],"v":[[17.818,-55.917],[17.84,-61.039],[38.895,-61.778],[69.245,-32.654],[74.038,-38.891],[42.549,-72.39],[29.503,-88.164],[61.712,-86.902],[103.493,-50.676],[113.446,-50.401],[115.364,-53.727],[112.074,-50.77],[122.963,-109.116],[140.114,-32.473],[147.793,-35.753],[149.584,-51.359],[168.586,-39.978],[148.034,-70.899],[121.165,-122.6],[112.621,-52.001],[39.867,-106.501],[26.863,-85.798],[12.442,-72.92]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.5,"s":[{"i":[[-3.586,-6.645],[0.43,1.588],[-16.98,-17.945],[-4.946,-1.8],[0,0],[9.352,9.796],[0,0],[-15.201,-12.234],[-7.698,-6.128],[-1.579,1.46],[0,0],[0,0],[-25.153,-24.144],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[9.699,2.99],[31.052,1.837],[5.534,-12.162],[24.488,1.636],[-4.236,-11.448],[2.147,-14.264]],"o":[[0.446,-1.758],[-2.711,-10.004],[18.08,19.108],[6.51,2.369],[-4.783,-10.99],[-9.351,-9.793],[1.229,-18.611],[13.73,11.05],[8.454,6.649],[1.581,-1.461],[-2.869,1.32],[7.587,-16.158],[23.505,23.01],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-23.364,-1.382],[0,0],[-12.101,-0.66],[0,0],[-0.674,4.477]],"v":[[18.298,-56.712],[18.385,-61.827],[39.423,-62.294],[69.211,-32.722],[74.063,-38.906],[43.208,-72.844],[30.383,-88.766],[62.444,-87.38],[103.219,-50.714],[113.206,-50.287],[114.977,-53.642],[111.685,-51.626],[123.757,-108.385],[140.114,-32.473],[147.793,-35.753],[149.186,-51.441],[168.078,-40.871],[147.22,-71.12],[121.147,-122.331],[112.108,-52.796],[40.849,-107.365],[27.716,-86.437],[13.148,-73.761]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[{"i":[[-3.348,-6.747],[0.373,1.598],[-16.316,-18.47],[-4.89,-1.927],[0,0],[8.987,10.087],[0,0],[-14.738,-12.716],[-7.186,-6.576],[-1.376,1.391],[0,0],[0,0],[-23.977,-24.466],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[9.786,2.394],[27.436,2.935],[3.622,-11.28],[24.703,1.6],[-3.832,-11.558],[2.628,-14.147]],"o":[[0.505,-1.737],[-2.361,-10.066],[17.373,19.667],[6.436,2.537],[-4.485,-11.096],[-8.989,-10.082],[1.861,-18.512],[13.311,11.485],[7.82,7.015],[1.38,-1.391],[-3.093,-1.332],[4.894,-15.05],[21.03,21.98],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-20.643,-2.208],[0,0],[-12.104,-0.492],[0,0],[-0.825,4.44]],"v":[[19.566,-58.813],[19.828,-63.909],[40.818,-63.656],[69.121,-32.903],[74.127,-38.948],[44.952,-74.046],[32.709,-90.357],[64.38,-88.642],[102.493,-50.813],[112.571,-49.985],[113.952,-53.418],[110.657,-53.889],[124.001,-106.451],[140.114,-32.473],[147.793,-35.753],[148.134,-51.659],[166.736,-43.23],[145.068,-71.705],[119.672,-121.618],[110.755,-54.897],[43.443,-109.651],[29.971,-88.126],[15.014,-75.986]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4.5,"s":[{"i":[[-3.11,-6.85],[0.317,1.608],[-15.651,-18.996],[-4.833,-2.055],[0,0],[8.623,10.377],[0,0],[-14.274,-13.198],[-6.674,-7.024],[-1.173,1.321],[0,0],[0,0],[-26.603,-24.789],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[9.873,1.798],[28.514,4.033],[1.71,-10.398],[24.919,1.564],[-3.428,-11.668],[3.108,-14.031]],"o":[[0.563,-1.716],[-2.012,-10.128],[16.666,20.227],[6.361,2.704],[-4.186,-11.202],[-8.626,-10.372],[2.492,-18.414],[12.892,11.92],[7.187,7.381],[1.178,-1.322],[-3.317,-3.983],[2.201,-13.941],[22.108,20.95],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-21.455,-3.034],[0,0],[-12.107,-0.325],[0,0],[-0.975,4.404]],"v":[[20.835,-60.914],[21.271,-65.991],[42.213,-65.019],[69.031,-33.083],[74.192,-38.989],[46.696,-75.247],[35.035,-91.948],[66.316,-89.904],[101.767,-50.913],[111.936,-49.683],[112.927,-53.195],[109.628,-56.151],[119.945,-104.517],[140.114,-32.473],[147.793,-35.753],[147.081,-51.877],[165.393,-45.588],[142.917,-72.29],[113.502,-120.905],[109.401,-56.998],[46.037,-111.936],[32.226,-89.816],[16.88,-78.211]],"c":true}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[-2.872,-6.952],[0.261,1.618],[-14.987,-19.521],[-4.777,-2.182],[0,0],[8.259,10.668],[0,0],[-13.81,-13.679],[-6.162,-7.473],[-0.971,1.252],[0,0],[0,0],[-31.345,-25.111],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[9.96,1.202],[31.735,5.13],[-0.203,-9.516],[25.134,1.527],[-3.025,-11.778],[3.589,-13.914]],"o":[[0.622,-1.696],[-1.662,-10.19],[15.958,20.786],[6.287,2.872],[-3.888,-11.309],[-8.263,-10.661],[3.124,-18.316],[12.473,12.355],[6.553,7.747],[0.976,-1.253],[-3.541,-6.635],[-0.492,-12.833],[24.865,19.92],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-23.879,-3.86],[0,0],[-12.11,-0.157],[0,0],[-1.126,4.367]],"v":[[22.104,-63.014],[22.714,-68.074],[43.608,-66.382],[68.942,-33.264],[74.256,-39.03],[48.44,-76.449],[37.362,-93.539],[68.253,-91.165],[101.041,-51.013],[111.301,-49.381],[111.902,-52.971],[108.6,-58.414],[114.211,-102.583],[140.114,-32.473],[147.793,-35.753],[146.029,-52.095],[164.05,-47.947],[140.765,-72.876],[105.034,-120.192],[108.047,-59.1],[48.632,-114.222],[34.48,-91.505],[18.747,-80.436]],"c":true}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0.333},"t":5.5,"s":[{"i":[[-2.545,-7.093],[0.183,1.632],[-14.072,-20.245],[-4.699,-2.357],[0,0],[7.756,11.068],[0,0],[-13.171,-14.343],[-5.457,-8.09],[-0.691,1.157],[0,0],[0,0],[-23.45,-23.386],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[10.08,0.38],[24.465,6.647],[0.185,-8.555],[19.546,0.712],[-2.468,-11.929],[4.251,-13.753]],"o":[[0.703,-1.668],[-1.18,-10.276],[14.984,21.557],[6.185,3.103],[-3.476,-11.455],[-7.764,-11.06],[3.994,-18.18],[11.896,12.955],[5.679,8.251],[0.698,-1.157],[-3.85,-10.289],[0.308,-12.183],[21.091,21.879],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-18.41,-4.999],[0,0],[-12.114,0.074],[0,0],[-1.334,4.317]],"v":[[23.852,-65.91],[24.703,-70.944],[45.531,-68.26],[68.818,-33.513],[74.345,-39.087],[50.843,-78.105],[40.568,-95.732],[70.921,-92.905],[100.041,-51.15],[110.425,-48.965],[110.489,-52.662],[98.362,-77.246],[113.949,-98.093],[140.114,-32.473],[147.793,-35.753],[144.578,-52.395],[162.2,-51.198],[137.8,-73.682],[103.848,-120.021],[87.357,-94.182],[52.207,-117.372],[37.588,-93.833],[21.319,-83.503]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.333},"t":6,"s":[{"i":[[-2.268,-7.212],[0.118,1.643],[-13.3,-20.855],[-4.633,-2.505],[0,0],[7.333,11.406],[0,0],[-12.632,-14.904],[-4.861,-8.611],[-0.456,1.076],[0,0],[0,0],[-18.576,-21.931],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[10.182,-0.313],[20.141,7.926],[0.512,-7.745],[14.833,0.024],[-1.999,-12.057],[4.81,-13.618]],"o":[[0.771,-1.644],[-0.773,-10.349],[14.162,22.207],[6.099,3.297],[-3.129,-11.579],[-7.342,-11.397],[4.729,-18.066],[11.409,13.461],[4.943,8.676],[0.464,-1.076],[-4.111,-13.372],[0.983,-11.635],[19.324,23.531],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-15.156,-5.959],[0,0],[-12.118,0.268],[0,0],[-1.509,4.274]],"v":[[25.327,-68.352],[26.381,-73.364],[47.153,-69.844],[68.713,-33.723],[74.42,-39.136],[52.871,-79.502],[43.272,-97.582],[73.172,-94.372],[99.197,-51.267],[109.687,-48.614],[109.297,-52.402],[89.727,-93.131],[112.312,-94.306],[140.114,-32.473],[147.793,-35.753],[143.355,-52.648],[160.639,-53.94],[135.298,-74.363],[100.909,-119.876],[83.489,-99.761],[55.223,-120.029],[40.21,-95.797],[23.489,-86.089]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":8,"s":[{"i":[[-2.11,-7.28],[0.08,1.65],[-12.857,-21.206],[-4.596,-2.59],[0,0],[7.09,11.6],[0,0],[-12.323,-15.225],[-4.52,-8.91],[-0.32,1.03],[0,0],[0,0],[-15.78,-21.096],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[10.24,-0.71],[17.66,8.66],[0.7,-7.28],[12.13,-0.37],[-1.73,-12.13],[5.13,-13.54]],"o":[[0.81,-1.63],[-0.54,-10.39],[13.69,22.58],[6.049,3.409],[-2.93,-11.65],[-7.1,-11.59],[5.15,-18],[11.13,13.751],[4.52,8.92],[0.33,-1.03],[-4.26,-15.14],[1.37,-11.32],[18.31,24.479],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-13.29,-6.51],[0,0],[-12.12,0.38],[0,0],[-1.61,4.25]],"v":[[26.173,-69.753],[27.343,-74.753],[48.083,-70.753],[68.653,-33.843],[74.463,-39.163],[54.034,-80.303],[44.824,-98.643],[74.463,-95.213],[98.713,-51.333],[109.264,-48.413],[108.614,-52.253],[84.773,-102.243],[111.373,-92.133],[140.114,-32.473],[147.793,-35.753],[142.653,-52.793],[159.744,-55.513],[133.864,-74.753],[99.224,-119.793],[77.043,-110.433],[56.954,-121.553],[41.713,-96.923],[24.733,-87.573]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":16.42,"s":[{"i":[[-0.732,-7.321],[-0.111,1.63],[-6.871,-21.828],[-2.976,-2.892],[0,0],[3.808,11.942],[0,0],[-7.116,-15.903],[-2.261,-9.106],[-0.339,0.988],[0,0],[0,0],[-8.946,-21.939],[-0.685,-3.177],[0,0],[0,0],[-0.301,-0.529],[3.373,0.585],[11.574,9.836],[1.253,-7.111],[8.605,0.533],[0.042,-12.066],[4.156,-9.127]],"o":[[0.742,-1.543],[0.701,-10.264],[7.316,23.242],[3.917,3.807],[-0.855,-11.683],[-3.807,-11.936],[5.512,-17.328],[6.427,14.363],[2.263,9.115],[0.34,-0.989],[-1.431,-15.217],[2.147,-11.037],[10.38,25.457],[0.602,2.792],[0,0],[-0.241,-8.888],[-3.533,-12.155],[0,0],[-8.707,-7.399],[0,0],[-8.598,-0.532],[0,0],[-1.805,3.967]],"v":[[73.898,-77.895],[75.245,-82.728],[95.837,-79.298],[107.935,-40.639],[112.592,-45.44],[100.078,-89.384],[88.349,-106.067],[111.894,-99.803],[129.59,-55.641],[136.736,-51.979],[136.677,-55.807],[119.907,-105.95],[130.914,-92.407],[156.234,-33.395],[156.257,-34.75],[149.197,-51.147],[152.717,-49.833],[147.302,-73.467],[125.215,-120.534],[116.74,-115.479],[101.029,-126.567],[85.973,-104.607],[74.737,-95.538]],"c":true}]},{"t":24,"s":[{"i":[[-1.514,-7.28],[0.061,1.65],[-9.227,-21.206],[-3.298,-2.59],[0,0],[5.097,11.596],[0,0],[-8.843,-15.225],[-3.241,-8.911],[-0.236,1.029],[0,0],[0,0],[-11.324,-21.096],[-1.026,-3.12],[0,0],[0,0],[-0.359,-0.5],[3.452,0.229],[12.678,8.654],[0.502,-7.28],[8.704,-0.38],[-1.241,-12.13],[3.207,-9.614]],"o":[[0.581,-1.63],[-0.388,-10.39],[9.825,22.58],[4.341,3.409],[-2.102,-11.65],[-5.095,-11.59],[3.696,-18],[7.987,13.751],[3.244,8.92],[0.237,-1.03],[-3.057,-15.14],[0.983,-11.32],[13.14,24.479],[0.902,2.742],[0,0],[-1.188,-8.907],[-4.844,-11.84],[0,0],[-9.537,-6.51],[0,0],[-8.698,0.38],[0,0],[-1.392,4.179]],"v":[[64.06,-73.479],[64.9,-78.479],[85.959,-77.223],[102.23,-39.658],[106.399,-44.978],[89.149,-87.81],[75.586,-103.328],[99.915,-99.538],[122.397,-57.039],[129.968,-54.119],[129.502,-57.959],[107.314,-106.568],[119.816,-94.129],[151.54,-37.516],[151.418,-38.881],[142.579,-54.608],[146.257,-53.662],[138.301,-76.838],[111.097,-121.789],[103.118,-115.807],[86.149,-125.279],[73.354,-101.608],[63.027,-91.299]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.988235294819,0.890196084976,0.780392169952,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":0,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[18.85,7.095],[32.534,0.698],[7.5,-11.546],[24.153,1.985],[-4.658,-11.328],[1.639,-14.383],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-24.471,-0.525],[0,0],[-12.09,-0.994],[0,0],[-1.552,13.617],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[149.171,-70.646],[124.471,-122.896],[113.289,-50.822],[37.833,-104.875],[25.044,-84.597],[10.887,-71.36],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2.5,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[18.899,6.759],[33.097,1.014],[6.935,-11.395],[23.676,1.892],[-4.542,-11.36],[1.778,-14.349],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-24.894,-0.763],[0,0],[-12.091,-0.939],[0,0],[-1.683,13.585],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[148.551,-70.809],[122.431,-122.698],[112.896,-51.418],[38.578,-105.537],[25.692,-85.086],[11.424,-72.003],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[18.964,6.316],[32.973,1.43],[6.192,-11.196],[23.048,1.769],[-4.389,-11.401],[1.959,-14.305],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-24.8,-1.075],[0,0],[-12.093,-0.868],[0,0],[-1.855,13.543],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[147.736,-71.024],[120.628,-122.437],[112.38,-52.201],[39.559,-106.406],[26.545,-85.729],[12.129,-72.848],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.5,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.029,5.874],[31.063,1.845],[5.448,-10.996],[22.421,1.646],[-4.237,-11.443],[2.141,-14.261],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-23.364,-1.388],[0,0],[-12.095,-0.797],[0,0],[-2.027,13.502],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[146.92,-71.238],[120.638,-122.177],[111.863,-52.985],[40.54,-107.276],[27.397,-86.373],[12.835,-73.694],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.2,4.704],[27.446,2.943],[3.483,-10.469],[20.762,1.32],[-3.833,-11.553],[2.621,-14.145],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-20.643,-2.213],[0,0],[-12.1,-0.608],[0,0],[-2.482,13.392],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[144.764,-71.805],[119.213,-121.489],[110.497,-55.057],[43.132,-109.576],[29.651,-88.073],[14.7,-75.93],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4.5,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.372,3.535],[28.525,4.041],[1.518,-9.943],[19.104,0.995],[-3.43,-11.663],[3.102,-14.028],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-21.455,-3.039],[0,0],[-12.105,-0.42],[0,0],[-2.937,13.281],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[142.609,-72.371],[113.017,-120.8],[109.132,-57.128],[45.724,-111.875],[31.904,-89.773],[16.565,-78.166],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.543,2.365],[31.747,5.139],[-0.448,-9.416],[17.445,0.67],[-3.026,-11.773],[3.582,-13.912],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-23.878,-3.865],[0,0],[-12.11,-0.231],[0,0],[-3.391,13.171],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[140.453,-72.938],[104.486,-120.112],[107.766,-59.2],[48.316,-114.175],[34.158,-91.473],[18.43,-80.402],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.667},"o":{"x":0.167,"y":0.333},"t":5.5,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.779,0.754],[24.475,6.652],[0.042,-8.496],[15.159,0.222],[-2.47,-11.924],[4.244,-13.752],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-18.409,-5.003],[0,0],[-12.116,0.029],[0,0],[-4.018,13.02],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[137.482,-73.719],[103.415,-119.974],[87.059,-94.242],[51.888,-117.344],[37.264,-93.817],[21,-83.483],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.333},"t":6,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.979,-0.606],[20.15,7.929],[0.456,-7.72],[13.231,-0.157],[-2.001,-12.052],[4.803,-13.617],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-15.155,-5.963],[0,0],[-12.122,0.248],[0,0],[-4.547,12.891],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[134.976,-74.378],[100.543,-119.858],[83.177,-99.786],[54.901,-120.017],[39.884,-95.793],[23.168,-86.082],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":8,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[20.093,-1.386],[17.668,8.661],[0.693,-7.275],[12.125,-0.373],[-1.732,-12.125],[5.123,-13.539],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-13.289,-6.514],[0,0],[-12.125,0.373],[0,0],[-4.85,12.818],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[133.538,-74.755],[98.895,-119.792],[76.723,-110.438],[56.63,-121.551],[41.387,-96.927],[24.412,-87.574],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":16.42,"s":[{"i":[[1.676,27.483],[1.424,28.79],[2.778,5.732],[11.575,9.843],[1.247,-7.107],[8.601,0.539],[0.04,-12.061],[4.25,-9.083],[-1.933,-20.561],[-5.598,-30.564]],"o":[[0,0],[-1.39,-28.1],[0,0],[-8.706,-7.403],[0,0],[-8.601,-0.539],[0,0],[-5.569,11.907],[2.327,24.75],[5.598,30.564]],"v":[[158.002,30.408],[159.55,-13.781],[147.162,-73.484],[124.983,-120.557],[116.515,-115.508],[100.8,-126.589],[85.743,-104.635],[74.51,-95.563],[83.581,-18.309],[91.476,44.341]],"c":true}]},{"t":24,"s":[{"i":[[1.676,27.483],[2.83,28.75],[3.402,5.465],[12.679,8.661],[0.497,-7.275],[8.701,-0.373],[-1.243,-12.125],[3.306,-9.58],[-4.13,-20.458],[-5.598,-30.564]],"o":[[0,0],[-2.762,-28.061],[0,0],[-9.537,-6.514],[0,0],[-8.701,0.373],[0,0],[-4.33,12.558],[4.971,24.626],[5.598,30.564]],"v":[[158.002,30.408],[156.721,-15.376],[138.158,-76.84],[110.861,-121.787],[102.888,-115.812],[85.917,-125.277],[73.12,-101.612],[62.796,-91.3],[80.13,-14.627],[91.476,44.341]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.913725495338,0.78823530674,0.647058844566,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":33,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":9,"s":[20]},{"t":12,"s":[0]}]},"p":{"a":0,"k":[341.929,268.75,0]},"a":{"a":0,"k":[87.294,20.789,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":1,"y":0},"t":0,"s":[{"i":[[-12.801,-44.719],[-7.19,-16.664],[-24.083,-15.726],[-2.877,-10.794],[30.317,-18.567],[-14.52,12.287],[0.825,6.413],[-2.342,5.994],[-0.65,2.073],[6.008,28.397],[19.934,-2.839],[-2.869,-83.633],[0.171,-7.306],[12.067,-1.247],[-2.597,-11.969]],"o":[[3.364,11.751],[12.709,29.454],[7.337,4.667],[2.085,7.822],[32.946,-6.739],[-5.103,-21.33],[-1.456,-11.312],[1.233,-2.004],[0,0],[-5.862,-27.709],[0,0],[0.507,14.786],[0,0],[-12.067,1.247],[0,0]],"v":[[-1.225,69.692],[17.656,113.086],[49.904,144.181],[68.931,145.79],[51.49,160.266],[147.472,120.625],[117.368,125.178],[120.966,98.001],[123.817,91.889],[134.546,113.38],[95.537,-17.397],[79.733,56.172],[68.297,62.602],[21.29,19.282],[15.285,33.125]],"c":true}]},{"t":12,"s":[{"i":[[-3.234,1.162],[-2.46,-1.144],[-6.693,0.486],[-1.143,-0.902],[30.317,-18.567],[-14.52,12.287],[0.456,0.616],[-0.361,0.857],[-0.164,0.059],[6.008,28.397],[5.038,-1.804],[-0.723,0.265],[0.043,-0.015],[3.05,-1.092],[-0.656,0.236]],"o":[[0.85,-0.305],[4.348,2.021],[2.034,-0.162],[0.829,0.654],[32.946,-6.739],[-5.103,-21.33],[-0.804,-1.086],[0.234,-0.327],[0,0],[-5.862,-27.709],[0,0],[0.128,-0.047],[0,0],[-3.05,1.092],[0,0]],"v":[[87.03,135.071],[92.538,135.42],[101.888,135.85],[106.758,134.301],[51.49,160.266],[147.472,120.625],[118.205,127.697],[118.067,124.445],[118.631,123.753],[134.546,113.38],[111.487,126.32],[107.491,127.745],[104.6,128.78],[92.721,133.037],[91.203,133.58]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":33,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":8,"s":[20]},{"t":12,"s":[0]}]},"p":{"a":0,"k":[178.129,267.75,0]},"a":{"a":0,"k":[87.294,20.789,0]},"s":{"a":0,"k":[-100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":2,"s":[{"i":[[-12.801,-44.719],[-3.605,-17.788],[-24.083,-15.726],[-2.877,-10.794],[30.317,-18.567],[-14.52,12.287],[0.825,6.413],[-2.342,5.994],[-0.65,2.073],[6.008,28.397],[19.934,-2.839],[18.256,7.361],[0.171,-7.306],[12.067,-1.247],[-2.597,-11.969]],"o":[[3.364,11.751],[6.529,32.214],[7.337,4.667],[2.085,7.822],[32.946,-6.739],[-5.103,-21.33],[-1.456,-11.312],[1.233,-2.004],[0,0],[-5.862,-27.709],[0,0],[-13.721,-5.533],[0,0],[-12.067,1.247],[0,0]],"v":[[12.775,-39.308],[27.656,6.086],[67.904,85.681],[85.931,109.29],[51.49,160.266],[147.472,120.625],[138.368,85.178],[141.966,58.001],[144.817,51.889],[148.546,4.38],[105.537,-51.897],[67.733,-94.328],[46.297,-83.398],[35.29,-89.718],[29.285,-75.875]],"c":true}]},{"t":12,"s":[{"i":[[-2.263,0.741],[-0.665,0.16],[-3.893,2.031],[-0.513,0.16],[4.696,-2.915],[-14.52,12.287],[0.165,-0.015],[-0.339,0.268],[-0.092,0.078],[1.101,-0.279],[3.138,-1.829],[2.927,-1.582],[-0.012,-0.084],[1.902,-1.103],[-0.475,0.123]],"o":[[0.595,-0.195],[1.204,-0.29],[1.185,-0.62],[0.371,-0.116],[5.175,-3.042],[-5.103,-21.33],[-0.29,0.026],[0.184,-0.13],[0,0],[-1.075,0.272],[0,0],[-2.2,1.189],[0,0],[-1.902,1.103],[0,0]],"v":[[125.645,131.596],[128.24,130.673],[135.03,127.775],[138.007,126.365],[132.831,129.954],[147.472,120.625],[146.172,121.398],[146.596,120.819],[147.015,120.505],[147.351,119.725],[140.249,123.09],[134.044,126.113],[130.712,128.153],[128.938,129.09],[128.061,129.762]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":33,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"parent":2,"sr":1,"ks":{"p":{"a":0,"k":[-63.783,7.296,0]},"a":{"a":0,"k":[-63.783,7.296,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-11.871],[9.986,0],[0,7.079],[-9.986,0]],"o":[[0,7.079],[-9.986,0],[0,-11.357],[9.986,0]],"v":[[-46.701,12.524],[-63.783,33.272],[-80.865,12.524],[-63.783,11.875]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.282352954149,0.286274522543,0.286274522543,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-3.629],[7.358,0],[0,5.828],[-7.358,0]],"o":[[0,5.701],[-7.358,0],[0,-3.63],[7.358,0]],"v":[[-50.461,-12.676],[-63.783,-11.535],[-77.106,-12.676],[-63.783,-23.45]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.960784316063,0.960784316063,0.960784316063,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-19.516],[13.393,0],[0,19.516],[-13.393,0]],"o":[[0,19.516],[-13.393,0],[0,-19.516],[13.393,0]],"v":[[-39.533,4.77],[-63.783,40.106],[-88.033,4.77],[-63.783,-30.566]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.066666670144,0.066666670144,0.066666670144,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-19.516],[13.393,0],[0,19.516],[-13.393,0]],"o":[[0,19.516],[-13.393,0],[0,-19.516],[13.393,0]],"v":[[-38.523,9.822],[-63.783,45.158],[-89.044,9.822],[-63.783,-25.514]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.749019622803,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":33,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"parent":2,"sr":1,"ks":{"p":{"a":0,"k":[73.842,7.296,0]},"a":{"a":0,"k":[-63.783,7.296,0]},"s":{"a":0,"k":[-100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-11.871],[9.986,0],[0,7.079],[-9.986,0]],"o":[[0,7.079],[-9.986,0],[0,-11.357],[9.986,0]],"v":[[-46.701,12.524],[-63.783,33.272],[-80.865,12.524],[-63.783,11.875]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.282352954149,0.286274522543,0.286274522543,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-3.629],[7.358,0],[0,5.828],[-7.358,0]],"o":[[0,5.701],[-7.358,0],[0,-3.63],[7.358,0]],"v":[[-50.461,-12.676],[-63.783,-11.535],[-77.106,-12.676],[-63.783,-23.45]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.960784316063,0.960784316063,0.960784316063,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-19.516],[13.393,0],[0,19.516],[-13.393,0]],"o":[[0,19.516],[-13.393,0],[0,-19.516],[13.393,0]],"v":[[-39.533,4.77],[-63.783,40.106],[-88.033,4.77],[-63.783,-30.566]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.066666670144,0.066666670144,0.066666670144,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-19.516],[13.393,0],[0,19.516],[-13.393,0]],"o":[[0,19.516],[-13.393,0],[0,-19.516],[13.393,0]],"v":[[-38.523,9.822],[-63.783,45.158],[-89.044,9.822],[-63.783,-25.514]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.749019622803,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":33,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"parent":2,"sr":1,"ks":{"p":{"a":0,"k":[5.883,50.25,0]},"a":{"a":0,"k":[5.883,50.25,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[2.511,-4.918],[0.213,-0.942],[-3.744,-1.911],[2.476,-4.893],[-0.478,0.936],[3.948,2.016]],"o":[[-0.469,0.919],[2.519,-4.85],[3.744,1.911],[0.643,-0.734],[2.511,-4.918],[-3.948,-2.016]],"v":[[13.327,44.758],[12.3,47.57],[24.125,43.208],[25.922,54.567],[27.623,52.056],[25.019,39.507]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.211764708161,0.086274512112,0.035294119269,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[2.509,-4.914],[-3.948,-2.015],[-2.509,4.914],[3.948,2.015]],"o":[[-2.509,4.914],[3.948,2.015],[2.509,-4.914],[-3.948,-2.015]],"v":[[13.326,44.758],[15.931,57.305],[27.621,52.056],[25.016,39.509]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.403921574354,0.266666680574,0.188235297799,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[3.93,-7.699],[-3.948,-2.015],[-2.812,4.747],[3.948,2.015]],"o":[[-2.509,4.914],[3.948,2.015],[4.225,-7.134],[-3.948,-2.015]],"v":[[12.111,46.986],[15.567,59.968],[27.169,55.043],[25.661,40.199]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.941176474094,0.847058832645,0.705882370472,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.511,-4.918],[-0.213,-0.942],[3.744,-1.911],[-2.476,-4.893],[0.478,0.936],[-3.948,2.016]],"o":[[0.469,0.919],[-2.519,-4.85],[-3.744,1.911],[-0.643,-0.734],[-2.511,-4.918],[3.948,-2.016]],"v":[[-1.485,44.758],[-0.457,47.57],[-12.282,43.208],[-14.08,54.567],[-15.78,52.056],[-13.177,39.507]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.211764708161,0.086274512112,0.035294119269,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.509,-4.914],[3.948,-2.015],[2.509,4.914],[-3.948,2.015]],"o":[[2.509,4.914],[-3.948,2.015],[-2.509,-4.914],[3.948,-2.015]],"v":[[-1.484,44.758],[-4.089,57.305],[-15.779,52.056],[-13.174,39.509]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.403921574354,0.266666680574,0.188235297799,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-3.93,-7.699],[3.948,-2.015],[2.812,4.747],[-3.948,2.015]],"o":[[2.509,4.914],[-3.948,2.015],[-4.225,-7.134],[3.948,-2.015]],"v":[[-0.269,46.986],[-3.725,59.968],[-15.327,55.043],[-13.818,40.199]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.941176474094,0.847058832645,0.705882370472,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[11.287,0.292],[3.048,-1.351],[3.153,1.398],[3.628,-0.094],[-0.105,-10.467],[-29.829,0],[-0.445,8.16]],"o":[[-3.628,-0.094],[-3.153,1.398],[-3.048,-1.351],[-11.287,0.292],[0.079,7.902],[29.532,0],[0.569,-10.452]],"v":[[23.934,29.849],[11.849,32.814],[-0.121,32.814],[-12.206,29.849],[-28.625,47.042],[5.864,70.656],[40.353,47.042]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.749019622803,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":33,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"parent":2,"sr":1,"ks":{"p":{"a":0,"k":[5.864,107.189,0]},"a":{"a":0,"k":[5.864,107.189,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.67,"y":1},"o":{"x":0.66,"y":0},"t":0,"s":[{"i":[[0.653,-2.439],[0.333,1.551],[3.373,3.05],[6.071,0],[1.346,-1.29],[0.618,-2.064],[-0.205,-1.404],[-0.338,1.997],[-3.418,3.305],[-6.254,0],[-1.401,-1.279],[-0.54,-2.447]],"o":[[0.208,-1.404],[-0.519,-2.417],[-1.362,-1.231],[-6.075,0],[-3.325,3.187],[-0.266,0.888],[-0.653,-2.439],[0.358,-2.116],[1.382,-1.337],[6.254,0],[3.465,3.161],[0.511,2.317]],"v":[[23.396,98.676],[22.79,94.926],[17.364,87.313],[7.718,82.815],[-2.169,86.808],[-7.041,95.879],[-7.395,99.164],[-7.644,94.323],[-3.163,85.358],[7.718,80.641],[17.981,85.383],[23.361,92.486]],"c":true}]},{"t":24,"s":[{"i":[[1.188,-2.439],[0.921,0.417],[6.452,0.59],[6.878,0],[2.613,-0.213],[1.434,-0.652],[-0.372,-1.404],[-1.391,0.611],[-6.645,0.566],[-7.086,0],[-2.685,-0.256],[-1.475,-0.645]],"o":[[0.378,-1.404],[-1.435,-0.65],[-2.605,-0.238],[-6.884,0],[-6.452,0.525],[-0.92,0.418],[-1.188,-2.439],[1.479,-0.65],[2.688,-0.229],[7.086,0],[6.639,0.632],[1.396,0.611]],"v":[[34.087,94.056],[33.413,91.171],[21.553,89.807],[5.926,89.257],[-9.991,89.703],[-21.919,91.171],[-22.598,94.051],[-22.751,89.003],[-10.911,87.679],[5.926,87.083],[22.498,87.794],[34.24,89.003]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.015686275437,0,0.003921568859,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.67,"y":1},"o":{"x":0.66,"y":0},"t":0,"s":[{"i":[[0.372,0],[3.395,0],[2.745,3.171],[-0.77,0],[0,0],[-3.425,-1.128]],"o":[[-2.709,3.051],[-3.49,0],[-0.13,0],[3.521,0],[0,0],[0.736,0.243]],"v":[[17.833,108.59],[7.798,113.377],[-1.599,109.066],[0.157,109.061],[7.764,109.456],[16.695,109.214]],"c":true}]},{"t":24,"s":[{"i":[[0.676,0],[6.173,0],[4.992,3.171],[-1.401,0],[0,0],[-6.229,-1.128]],"o":[[-4.927,3.051],[-6.347,0],[-0.236,0],[6.404,0],[0,0],[1.339,0.243]],"v":[[23.022,105.559],[5.744,111.007],[-11.941,105.116],[-8.151,106.691],[5.555,107.59],[19.484,106.941]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.698039233685,0.274509817362,0.376470595598,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.67,"y":1},"o":{"x":0.66,"y":0},"t":0,"s":[{"i":[[0.731,3.326],[3.463,3.161],[6.255,0],[1.382,-1.336],[0.511,-1.952],[-1.375,-3.795],[-6.279,0],[-1.949,5.379]],"o":[[-0.539,-2.454],[-1.401,-1.279],[-6.255,0],[-3.416,3.304],[-0.692,2.646],[1.949,5.379],[6.279,0],[1.375,-3.795]],"v":[[23.362,92.486],[17.981,85.382],[7.718,80.642],[-3.164,85.358],[-7.643,94.319],[-6.315,102.544],[7.8,113.374],[22.318,102.05]],"c":true}]},{"t":24,"s":[{"i":[[2,0.88],[6.637,0.633],[7.087,0],[2.687,-0.229],[1.475,-0.649],[-2.5,-3.795],[-11.418,0],[-3.544,5.379]],"o":[[-1.475,-0.649],[-2.684,-0.256],[-7.087,0],[-6.643,0.567],[-2,0.88],[3.544,5.379],[11.418,0],[2.5,-3.795]],"v":[[34.242,89.001],[22.499,87.793],[5.925,87.084],[-10.913,87.679],[-22.749,89.001],[-20.634,97.431],[5.746,111.004],[32.127,97.431]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.247058823705,0.039215687662,0.141176477075,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.67,"y":1},"o":{"x":0.66,"y":0},"t":0,"s":[{"i":[[1.427,3.64],[3.584,3.306],[6.493,0],[1.43,-1.397],[0.622,-1.853],[-1.427,-3.795],[-6.517,0],[-2.023,5.379]],"o":[[-0.738,-1.882],[-1.45,-1.337],[-6.493,0],[-3.535,3.454],[-1.188,3.538],[2.023,5.379],[6.517,0],[1.427,-3.795]],"v":[[23.362,92.486],[17.962,87.849],[7.718,82.844],[-2.692,87.507],[-7.643,94.319],[-7.255,103.879],[7.792,118.052],[23.092,103.579]],"c":true}]},{"t":24,"s":[{"i":[[3.188,0.413],[6.882,0.687],[7.357,0],[2.786,-0.25],[1.597,-0.464],[-2.595,-3.795],[-11.852,0],[-3.679,5.379]],"o":[[-1.648,-0.214],[-2.783,-0.278],[-7.357,0],[-6.889,0.618],[-3.048,0.885],[3.678,5.379],[11.852,0],[2.595,-3.795]],"v":[[34.242,89.001],[22.653,90.081],[5.925,89.286],[-11.089,89.965],[-22.749,89.001],[-21.823,100.948],[5.733,115.682],[33.554,101.21]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.956862747669,0.913725495338,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.67,"y":1},"o":{"x":0.66,"y":0},"t":0,"s":[{"i":[[0.642,1.938],[3.047,3.546],[6.255,0],[2.025,-2.773],[0.19,-1.347],[-1.375,-3.795],[-6.279,0],[-1.949,5.379]],"o":[[-0.54,-1.629],[-1.226,-1.426],[-6.255,0],[-2.393,3.277],[-0.244,1.731],[1.949,5.379],[6.279,0],[1.375,-3.795]],"v":[[22.949,90.878],[18.446,83.779],[7.715,77.503],[-5.317,85.475],[-8.088,94.686],[-7.219,100.342],[7.8,111.172],[23.221,99.848]],"c":true}]},{"t":24,"s":[{"i":[[2,0.88],[6.637,0.633],[7.087,0],[2.687,-0.229],[1.475,-0.649],[-2.5,-3.795],[-11.418,0],[-3.544,5.379]],"o":[[-1.475,-0.649],[-2.684,-0.256],[-7.087,0],[-6.643,0.567],[-2,0.88],[3.544,5.379],[11.418,0],[2.5,-3.795]],"v":[[35.881,85.862],[23.167,84.726],[5.922,83.945],[-11.558,84.606],[-24.395,85.862],[-22.277,95.229],[5.746,108.802],[33.769,95.229]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.749019622803,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":33,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"parent":1,"sr":1,"ks":{"p":{"a":0,"k":[5.303,144.067,0]},"a":{"a":0,"k":[5.303,144.067,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-10.992,-6.96],[0,0],[-16.976,11.779],[-18.657,4.78]],"o":[[17.211,5.126],[18.61,11.782],[0,0],[10.182,-7.065],[0,0]],"v":[[-70.986,150.908],[-27.847,165.744],[5.303,176.601],[37.654,165.544],[81.313,150.908]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.698039233685,0.584313750267,0.447058826685,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-24.85,4.01],[2.81,-4.07],[4.9,-0.67],[10.74,-7.45],[0,0],[16.98,11.78],[7.38,1.01],[3.407,3.585],[1.57,5.1],[-14.42,-8.27],[-8.4,5.66]],"o":[[-1.671,6.6],[-2.81,4.07],[-7.38,1.01],[-16.97,11.78],[0,0],[-10.73,-7.45],[-4.9,-0.67],[-3.841,-4.041],[12.31,3.41],[17.93,10.29],[7.89,-5.32]],"v":[[91.856,131.627],[83.799,149.584],[68.549,154.317],[37.649,165.547],[5.299,176.597],[-27.051,165.547],[-57.941,154.317],[-72.457,150.111],[-81.201,131.67],[-17.101,154.037],[28.949,154.037]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":11},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[51.445,12.472],[11.245,-13.381],[2.922,3.477],[38.8,-9.406],[-5.196,-23.384],[-28.607,-10.289],[0.785,-3.583],[-16.2,-23.457],[-4.902,-0.674],[-10.738,-7.451],[0,0],[-16.975,11.779],[-7.382,1.015],[-2.812,4.072],[3.47,15.845],[-3.452,1.242],[-4.853,21.841]],"o":[[-38.801,-9.406],[-2.922,3.477],[-11.245,-13.381],[-51.445,12.472],[4.854,21.841],[3.452,1.242],[-3.47,15.845],[2.812,4.072],[7.382,1.015],[16.975,11.779],[0,0],[10.737,-7.451],[4.902,-0.674],[16.2,-23.457],[-0.785,-3.583],[28.607,-10.289],[5.197,-23.384]],"v":[[88.579,-75.949],[10.891,-45.909],[-0.285,-45.909],[-77.973,-75.949],[-132.017,4.597],[-80.556,57.662],[-75.875,66.071],[-70.075,146.877],[-57.943,154.316],[-27.048,165.544],[5.303,176.601],[37.654,165.544],[68.548,153.316],[80.68,146.877],[86.481,66.071],[91.162,57.662],[142.623,4.597]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.941176474094,0.847058832645,0.701960802078,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-6.695,-15.921],[5.747,-3.178],[22.493,4.591],[6.631,-1.555],[16.983,8.766],[-3.144,6.284],[-28.696,7.38],[-11.25,-13.38],[-2.92,3.48],[-38.8,-9.4]],"o":[[2.546,6.053],[-39.7,21.954],[-6.674,-1.362],[-56.127,13.163],[-6.244,-3.223],[5.486,-10.965],[38.664,-9.944],[2.92,3.48],[11.25,-13.38],[26.786,6.499]],"v":[[134.093,-35.971],[128.458,-19.704],[14.574,-11.647],[-5.621,-11.396],[-116.496,-21.256],[-122.192,-38.41],[-76.315,-72.759],[-0.282,-45.913],[10.887,-45.913],[87.791,-72.245]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.749019622803,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[51.445,12.472],[11.245,-13.381],[2.922,3.477],[38.8,-9.406],[-5.196,-23.384],[-28.607,-10.289],[0.785,-3.583],[-16.2,-23.457],[-4.902,-0.674],[-10.738,-7.451],[0,0],[-16.975,11.779],[-7.382,1.015],[-2.812,4.072],[3.47,15.845],[-3.452,1.242],[-4.853,21.841]],"o":[[-38.801,-9.406],[-2.922,3.477],[-11.245,-13.381],[-51.445,12.472],[4.854,21.841],[3.452,1.242],[-3.47,15.845],[2.812,4.072],[7.382,1.015],[16.975,11.779],[0,0],[10.737,-7.451],[4.902,-0.674],[16.2,-23.457],[-0.785,-3.583],[28.607,-10.289],[5.197,-23.384]],"v":[[88.579,-75.949],[10.891,-45.909],[-0.285,-45.909],[-77.973,-75.949],[-132.017,4.597],[-80.556,57.662],[-75.875,66.071],[-70.075,146.877],[-57.943,154.316],[-27.048,165.544],[5.303,176.601],[37.654,165.544],[68.548,154.316],[80.68,146.877],[86.481,66.071],[91.162,57.662],[142.623,4.597]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.941176474094,0.847058832645,0.701960802078,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[24.154,48.305],[13.203,43.885],[77.248,0],[15.205,-50.539],[21.999,-43.995],[-198.638,0]],"o":[[-21.999,-43.995],[-15.205,-50.539],[-78.08,0],[-13.203,43.885],[-24.154,48.305],[198.638,0]],"v":[[169.587,-20.913],[146.026,-110.813],[5.303,-207.093],[-135.42,-110.813],[-158.981,-20.913],[5.303,159.087]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-7.633,-2.073]],"o":[[0,0],[0,0]],"v":[[41.579,-186.44],[54.078,-183.608]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-1.612,-0.576]],"o":[[1.511,0.494],[0,0]],"v":[[62.717,-181.024],[67.407,-179.42]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-23.536],[50.223,0],[0,23.536],[-50.223,0]],"o":[[0,23.536],[-50.223,0],[0,-23.536],[50.223,0]],"v":[[96.859,-148.606],[5.921,-105.99],[-85.016,-148.606],[5.921,-191.222]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.780392169952,0.623529434204,0.419607847929,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[22.173,44.342],[12.12,40.285],[70.911,0],[13.958,-46.393],[20.194,-40.385],[-182.343,0]],"o":[[-20.194,-40.385],[-13.957,-46.393],[-71.675,0],[-12.12,40.285],[-22.173,44.342],[182.343,0]],"v":[[156.11,-21.166],[134.482,-103.692],[5.303,-192.073],[-123.876,-103.692],[-145.504,-21.166],[5.303,144.067]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.737254917622,0.572549045086,0.349019616842,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[24.154,48.305],[13.203,43.885],[77.248,0],[15.205,-50.539],[21.999,-43.995],[-198.638,0]],"o":[[-21.999,-43.995],[-15.205,-50.539],[-78.08,0],[-13.203,43.885],[-24.154,48.305],[198.638,0]],"v":[[169.587,-20.913],[146.026,-110.813],[5.303,-207.093],[-135.42,-110.813],[-158.981,-20.913],[5.303,159.087]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":33,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"parent":11,"sr":1,"ks":{"p":{"a":0,"k":[-148.03,-63.49,0]},"a":{"a":0,"k":[-148.03,-63.49,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[1.081,-15.591],[0,0],[0.01,0],[-5.699,9.64],[0,0]],"o":[[-42.636,-22.157],[-0.01,0],[-1.283,-12.428],[16.864,-28.514],[5.547,-0.606]],"v":[[-120.56,-89.291],[-178.963,-61.424],[-178.983,-61.434],[-172.678,-95.859],[-126.714,-115.865]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.596078455448,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[17.728,-1.949],[16.87,-28.514],[-21.623,-17.626]],"o":[[0,0],[-13.747,23.235],[25.716,20.962]],"v":[[-126.711,-115.866],[-172.682,-95.857],[-156.36,-15.922]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.929411768913,0.674509823322,0.666666686535,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[55.083,3.638],[22.172,-27.368],[-47.288,-39.234]],"o":[[-19.765,-1.305],[-24.472,30.208],[49.528,41.092]],"v":[[-115.798,-143.021],[-186.99,-118.078],[-164.645,10.795]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-36.319,10.182]],"o":[[0,0],[0,0]],"v":[[-194.126,-81.406],[-152.972,-131.334]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.737254917622,0.572549045086,0.349019616842,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":10},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[55.083,3.638],[22.172,-27.368],[-47.288,-39.234]],"o":[[-19.765,-1.305],[-24.472,30.208],[49.528,41.092]],"v":[[-115.798,-143.021],[-186.99,-118.078],[-164.645,10.795]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":33,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"parent":11,"sr":1,"ks":{"p":{"a":0,"k":[157.962,-63.49,0]},"a":{"a":0,"k":[157.962,-63.49,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.081,-15.591],[0,0],[-0.01,0],[5.699,9.64],[0,0]],"o":[[42.636,-22.157],[0.01,0],[1.283,-12.428],[-16.864,-28.514],[-5.547,-0.606]],"v":[[130.917,-89.291],[189.319,-61.424],[189.34,-61.434],[183.034,-95.859],[137.07,-115.865]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.596078455448,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-55.083,3.638],[-22.172,-27.368],[47.288,-39.234]],"o":[[19.765,-1.305],[24.472,30.208],[-49.528,41.092]],"v":[[125.73,-143.021],[196.922,-118.078],[174.577,10.795]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[36.319,10.182]],"o":[[0,0],[0,0]],"v":[[203.905,-80.406],[162.752,-130.334]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.737254917622,0.572549045086,0.349019616842,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":10},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-17.728,-1.949],[-16.87,-28.514],[21.623,-17.626]],"o":[[0,0],[13.747,23.235],[-25.716,20.962]],"v":[[136.643,-115.866],[182.613,-95.857],[166.291,-15.922]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.929411768913,0.674509823322,0.666666686535,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-55.083,3.638],[-22.172,-27.368],[47.288,-39.234]],"o":[[19.765,-1.305],[24.472,30.208],[-49.528,41.092]],"v":[[125.73,-143.021],[196.922,-118.078],[174.577,10.795]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":33,"st":0,"bm":0}]} \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/tsv_setup_monkey_idle1.tgs b/TMessagesProj/src/main/res/raw/tsv_setup_monkey_idle1.tgs new file mode 100644 index 000000000..ed7370be3 --- /dev/null +++ b/TMessagesProj/src/main/res/raw/tsv_setup_monkey_idle1.tgs @@ -0,0 +1 @@ +{"tgs":1,"v":"5.5.2","fr":60,"ip":0,"op":30,"w":512,"h":512,"nm":"password_open_idle_short_blink","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"master","sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":0,"k":[256,256,0]},"s":{"a":0,"k":[95,95,100]}},"ao":0,"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":3,"nm":"face","parent":7,"sr":1,"ks":{"o":{"a":0,"k":0}},"ao":0,"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"eye_L 2","parent":2,"sr":1,"ks":{"p":{"a":0,"k":[-63.783,7.296,0]},"a":{"a":0,"k":[-63.783,7.296,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":0,"s":[{"i":[[0,-11.871],[9.986,0],[0,7.079],[-9.986,0]],"o":[[0,7.079],[-9.986,0],[0,-11.357],[9.986,0]],"v":[[-46.701,12.524],[-63.783,33.272],[-80.865,12.524],[-63.783,11.875]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":7,"s":[{"i":[[0,-0.618],[4.754,0],[0,2.194],[-4.754,0]],"o":[[0,2.194],[-4.754,0],[0,-1.118],[4.754,0]],"v":[[-50.556,14.024],[-63.816,16.897],[-76.57,13.649],[-63.82,15.407]],"c":true}]},{"t":15,"s":[{"i":[[0,-11.871],[9.986,0],[0,7.079],[-9.986,0]],"o":[[0,7.079],[-9.986,0],[0,-11.357],[9.986,0]],"v":[[-46.701,12.524],[-63.783,33.272],[-80.865,12.524],[-63.783,11.875]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.282352954149,0.286274522543,0.286274522543,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":0,"s":[{"i":[[0,-3.629],[7.358,0],[0,5.828],[-7.358,0]],"o":[[0,5.701],[-7.358,0],[0,-3.63],[7.358,0]],"v":[[-50.461,-12.676],[-63.783,-11.535],[-77.106,-12.676],[-63.783,-23.45]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":7,"s":[{"i":[[0,0.161],[7.358,0],[0,-0.258],[-7.358,0]],"o":[[0,-0.253],[-7.358,0],[0,0.161],[7.358,0]],"v":[[-50.31,11.585],[-63.766,14.468],[-77.067,11.366],[-63.766,14.441]],"c":true}]},{"t":15,"s":[{"i":[[0,-3.629],[7.358,0],[0,5.828],[-7.358,0]],"o":[[0,5.701],[-7.358,0],[0,-3.63],[7.358,0]],"v":[[-50.461,-12.676],[-63.783,-11.535],[-77.106,-12.676],[-63.783,-23.45]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.960784316063,0.960784316063,0.960784316063,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":0,"s":[{"i":[[0,-19.516],[13.393,0],[0,19.516],[-13.393,0]],"o":[[0,19.516],[-13.393,0],[0,-19.516],[13.393,0]],"v":[[-39.533,4.77],[-63.783,40.106],[-88.033,4.77],[-63.783,-30.566]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":7,"s":[{"i":[[0,-5.552],[13.393,0],[0,5.198],[-13.393,0]],"o":[[0,6.698],[-13.393,0],[0,-5.427],[13.393,0]],"v":[[-39.533,4.77],[-63.758,17.731],[-88.033,4.77],[-63.758,12.934]],"c":true}]},{"t":15,"s":[{"i":[[0,-19.516],[13.393,0],[0,19.516],[-13.393,0]],"o":[[0,19.516],[-13.393,0],[0,-19.516],[13.393,0]],"v":[[-39.533,4.77],[-63.783,40.106],[-88.033,4.77],[-63.783,-30.566]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.066666670144,0.066666670144,0.066666670144,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":0,"s":[{"i":[[0,-19.516],[13.393,0],[0,19.516],[-13.393,0]],"o":[[0,19.516],[-13.393,0],[0,-19.516],[13.393,0]],"v":[[-38.523,9.822],[-63.783,45.158],[-89.044,9.822],[-63.783,-25.514]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":7,"s":[{"i":[[0,-10.354],[13.393,0],[0,4.146],[-13.393,0]],"o":[[0,6.771],[-13.393,0],[0,-11.604],[13.393,0]],"v":[[-38.545,7.822],[-63.816,19.658],[-89.088,8.322],[-63.816,13.986]],"c":true}]},{"t":15,"s":[{"i":[[0,-19.516],[13.393,0],[0,19.516],[-13.393,0]],"o":[[0,19.516],[-13.393,0],[0,-19.516],[13.393,0]],"v":[[-38.523,9.822],[-63.783,45.158],[-89.044,9.822],[-63.783,-25.514]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.749019622803,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"eye_R_mirror","parent":2,"sr":1,"ks":{"p":{"a":0,"k":[73.842,7.296,0]},"a":{"a":0,"k":[-63.783,7.296,0]},"s":{"a":0,"k":[-100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":0,"s":[{"i":[[0,-11.871],[9.986,0],[0,7.079],[-9.986,0]],"o":[[0,7.079],[-9.986,0],[0,-11.357],[9.986,0]],"v":[[-46.701,12.524],[-63.783,33.272],[-80.865,12.524],[-63.783,11.875]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":7,"s":[{"i":[[0,-0.618],[4.754,0],[0,2.194],[-4.754,0]],"o":[[0,2.194],[-4.754,0],[0,-1.118],[4.754,0]],"v":[[-50.556,14.024],[-63.816,16.897],[-76.57,13.649],[-63.82,15.407]],"c":true}]},{"t":15,"s":[{"i":[[0,-11.871],[9.986,0],[0,7.079],[-9.986,0]],"o":[[0,7.079],[-9.986,0],[0,-11.357],[9.986,0]],"v":[[-46.701,12.524],[-63.783,33.272],[-80.865,12.524],[-63.783,11.875]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.282352954149,0.286274522543,0.286274522543,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":0,"s":[{"i":[[0,-3.629],[7.358,0],[0,5.828],[-7.358,0]],"o":[[0,5.701],[-7.358,0],[0,-3.63],[7.358,0]],"v":[[-50.461,-12.676],[-63.783,-11.535],[-77.106,-12.676],[-63.783,-23.45]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":7,"s":[{"i":[[0,0.161],[7.358,0],[0,-0.258],[-7.358,0]],"o":[[0,-0.253],[-7.358,0],[0,0.161],[7.358,0]],"v":[[-50.31,11.585],[-63.766,14.468],[-77.067,11.366],[-63.766,14.441]],"c":true}]},{"t":15,"s":[{"i":[[0,-3.629],[7.358,0],[0,5.828],[-7.358,0]],"o":[[0,5.701],[-7.358,0],[0,-3.63],[7.358,0]],"v":[[-50.461,-12.676],[-63.783,-11.535],[-77.106,-12.676],[-63.783,-23.45]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.960784316063,0.960784316063,0.960784316063,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":0,"s":[{"i":[[0,-19.516],[13.393,0],[0,19.516],[-13.393,0]],"o":[[0,19.516],[-13.393,0],[0,-19.516],[13.393,0]],"v":[[-39.533,4.77],[-63.783,40.106],[-88.033,4.77],[-63.783,-30.566]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":7,"s":[{"i":[[0,-5.552],[13.393,0],[0,5.198],[-13.393,0]],"o":[[0,6.698],[-13.393,0],[0,-5.427],[13.393,0]],"v":[[-39.533,4.77],[-63.758,17.731],[-88.033,4.77],[-63.758,12.934]],"c":true}]},{"t":15,"s":[{"i":[[0,-19.516],[13.393,0],[0,19.516],[-13.393,0]],"o":[[0,19.516],[-13.393,0],[0,-19.516],[13.393,0]],"v":[[-39.533,4.77],[-63.783,40.106],[-88.033,4.77],[-63.783,-30.566]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.066666670144,0.066666670144,0.066666670144,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":0,"s":[{"i":[[0,-19.516],[13.393,0],[0,19.516],[-13.393,0]],"o":[[0,19.516],[-13.393,0],[0,-19.516],[13.393,0]],"v":[[-38.523,9.822],[-63.783,45.158],[-89.044,9.822],[-63.783,-25.514]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":7,"s":[{"i":[[0,-10.354],[13.393,0],[0,4.146],[-13.393,0]],"o":[[0,6.771],[-13.393,0],[0,-11.604],[13.393,0]],"v":[[-38.545,7.822],[-63.816,19.658],[-89.088,8.322],[-63.816,13.986]],"c":true}]},{"t":15,"s":[{"i":[[0,-19.516],[13.393,0],[0,19.516],[-13.393,0]],"o":[[0,19.516],[-13.393,0],[0,-19.516],[13.393,0]],"v":[[-38.523,9.822],[-63.783,45.158],[-89.044,9.822],[-63.783,-25.514]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.749019622803,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"nose","parent":2,"sr":1,"ks":{"p":{"a":0,"k":[5.883,50.25,0]},"a":{"a":0,"k":[5.883,50.25,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[2.511,-4.918],[0.213,-0.942],[-3.744,-1.911],[2.476,-4.893],[-0.478,0.936],[3.948,2.016]],"o":[[-0.469,0.919],[2.519,-4.85],[3.744,1.911],[0.643,-0.734],[2.511,-4.918],[-3.948,-2.016]],"v":[[13.327,44.758],[12.3,47.57],[24.125,43.208],[25.922,54.567],[27.623,52.056],[25.019,39.507]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.211764708161,0.086274512112,0.035294119269,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[2.509,-4.914],[-3.948,-2.015],[-2.509,4.914],[3.948,2.015]],"o":[[-2.509,4.914],[3.948,2.015],[2.509,-4.914],[-3.948,-2.015]],"v":[[13.326,44.758],[15.931,57.305],[27.621,52.056],[25.016,39.509]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.403921574354,0.266666680574,0.188235297799,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[3.93,-7.699],[-3.948,-2.015],[-2.812,4.747],[3.948,2.015]],"o":[[-2.509,4.914],[3.948,2.015],[4.225,-7.134],[-3.948,-2.015]],"v":[[12.111,46.986],[15.567,59.968],[27.169,55.043],[25.661,40.199]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.941176474094,0.847058832645,0.705882370472,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.511,-4.918],[-0.213,-0.942],[3.744,-1.911],[-2.476,-4.893],[0.478,0.936],[-3.948,2.016]],"o":[[0.469,0.919],[-2.519,-4.85],[-3.744,1.911],[-0.643,-0.734],[-2.511,-4.918],[3.948,-2.016]],"v":[[-1.485,44.758],[-0.457,47.57],[-12.282,43.208],[-14.08,54.567],[-15.78,52.056],[-13.177,39.507]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.211764708161,0.086274512112,0.035294119269,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.509,-4.914],[3.948,-2.015],[2.509,4.914],[-3.948,2.015]],"o":[[2.509,4.914],[-3.948,2.015],[-2.509,-4.914],[3.948,-2.015]],"v":[[-1.484,44.758],[-4.089,57.305],[-15.779,52.056],[-13.174,39.509]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.403921574354,0.266666680574,0.188235297799,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-3.93,-7.699],[3.948,-2.015],[2.812,4.747],[-3.948,2.015]],"o":[[2.509,4.914],[-3.948,2.015],[-4.225,-7.134],[3.948,-2.015]],"v":[[-0.269,46.986],[-3.725,59.968],[-15.327,55.043],[-13.818,40.199]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.941176474094,0.847058832645,0.705882370472,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[11.287,0.292],[3.048,-1.351],[3.153,1.398],[3.628,-0.094],[-0.105,-10.467],[-29.829,0],[-0.445,8.16]],"o":[[-3.628,-0.094],[-3.153,1.398],[-3.048,-1.351],[-11.287,0.292],[0.079,7.902],[29.532,0],[0.569,-10.452]],"v":[[23.934,29.849],[11.849,32.814],[-0.121,32.814],[-12.206,29.849],[-28.625,47.042],[5.864,70.656],[40.353,47.042]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.749019622803,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"mouth","parent":2,"sr":1,"ks":{"p":{"a":0,"k":[5.864,107.189,0]},"a":{"a":0,"k":[5.864,107.189,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[1.188,-2.439],[0.921,0.417],[6.452,0.59],[6.878,0],[2.613,-0.213],[1.434,-0.652],[-0.372,-1.404],[-1.391,0.611],[-6.645,0.566],[-7.086,0],[-2.685,-0.256],[-1.475,-0.645]],"o":[[0.378,-1.404],[-1.435,-0.65],[-2.605,-0.238],[-6.884,0],[-6.452,0.525],[-0.92,0.418],[-1.188,-2.439],[1.479,-0.65],[2.688,-0.229],[7.086,0],[6.639,0.632],[1.396,0.611]],"v":[[34.087,94.056],[33.413,91.171],[21.553,89.807],[5.926,89.257],[-9.991,89.703],[-21.919,91.171],[-22.598,94.051],[-22.751,89.003],[-10.911,87.679],[5.926,87.083],[22.498,87.794],[34.24,89.003]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.015686275437,0,0.003921568859,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.676,0],[6.173,0],[4.992,3.171],[-1.401,0],[0,0],[-6.229,-1.128]],"o":[[-4.927,3.051],[-6.347,0],[-0.236,0],[6.404,0],[0,0],[1.339,0.243]],"v":[[23.022,105.559],[5.744,111.007],[-11.941,105.116],[-8.151,106.691],[5.555,107.59],[19.484,106.941]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.698039233685,0.274509817362,0.376470595598,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[2,0.88],[6.637,0.633],[7.087,0],[2.687,-0.229],[1.475,-0.649],[-2.5,-3.795],[-11.418,0],[-3.544,5.379]],"o":[[-1.475,-0.649],[-2.684,-0.256],[-7.087,0],[-6.643,0.567],[-2,0.88],[3.544,5.379],[11.418,0],[2.5,-3.795]],"v":[[34.242,89.001],[22.499,87.793],[5.925,87.084],[-10.913,87.679],[-22.749,89.001],[-20.634,97.431],[5.746,111.004],[32.127,97.431]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.247058823705,0.039215687662,0.141176477075,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[3.188,0.413],[6.882,0.687],[7.357,0],[2.786,-0.25],[1.597,-0.464],[-2.595,-3.795],[-11.852,0],[-3.679,5.379]],"o":[[-1.648,-0.214],[-2.783,-0.278],[-7.357,0],[-6.889,0.618],[-3.048,0.885],[3.678,5.379],[11.852,0],[2.595,-3.795]],"v":[[34.242,89.001],[22.653,90.081],[5.925,89.286],[-11.089,89.965],[-22.749,89.001],[-21.823,100.948],[5.733,115.682],[33.554,101.21]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.956862747669,0.913725495338,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 4","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[2,0.88],[6.637,0.633],[7.087,0],[2.687,-0.229],[1.475,-0.649],[-2.5,-3.795],[-11.418,0],[-3.544,5.379]],"o":[[-1.475,-0.649],[-2.684,-0.256],[-7.087,0],[-6.643,0.567],[-2,0.88],[3.544,5.379],[11.418,0],[2.5,-3.795]],"v":[[35.881,85.862],[23.167,84.726],[5.922,83.945],[-11.558,84.606],[-24.395,85.862],[-22.277,95.229],[5.746,108.802],[33.769,95.229]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.749019622803,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 5","bm":0,"hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"base","parent":1,"sr":1,"ks":{"p":{"a":0,"k":[5.303,144.067,0]},"a":{"a":0,"k":[5.303,144.067,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-10.992,-6.96],[0,0],[-16.976,11.779],[-18.657,4.78]],"o":[[17.211,5.126],[18.61,11.782],[0,0],[10.182,-7.065],[0,0]],"v":[[-70.986,150.908],[-27.847,165.744],[5.303,176.601],[37.654,165.544],[81.313,150.908]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.698039233685,0.584313750267,0.447058826685,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-24.85,4.01],[2.81,-4.07],[4.9,-0.67],[10.74,-7.45],[0,0],[16.98,11.78],[7.38,1.01],[3.407,3.585],[1.57,5.1],[-14.42,-8.27],[-8.4,5.66]],"o":[[-1.671,6.6],[-2.81,4.07],[-7.38,1.01],[-16.97,11.78],[0,0],[-10.73,-7.45],[-4.9,-0.67],[-3.841,-4.041],[12.31,3.41],[17.93,10.29],[7.89,-5.32]],"v":[[91.856,131.627],[83.799,149.584],[68.549,154.317],[37.649,165.547],[5.299,176.597],[-27.051,165.547],[-57.941,154.317],[-72.457,150.111],[-81.201,131.67],[-17.101,154.037],[28.949,154.037]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":11},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[51.445,12.472],[11.245,-13.381],[2.922,3.477],[38.8,-9.406],[-5.196,-23.384],[-28.607,-10.289],[0.785,-3.583],[-16.2,-23.457],[-4.902,-0.674],[-10.738,-7.451],[0,0],[-16.975,11.779],[-7.382,1.015],[-2.812,4.072],[3.47,15.845],[-3.452,1.242],[-4.853,21.841]],"o":[[-38.801,-9.406],[-2.922,3.477],[-11.245,-13.381],[-51.445,12.472],[4.854,21.841],[3.452,1.242],[-3.47,15.845],[2.812,4.072],[7.382,1.015],[16.975,11.779],[0,0],[10.737,-7.451],[4.902,-0.674],[16.2,-23.457],[-0.785,-3.583],[28.607,-10.289],[5.197,-23.384]],"v":[[88.579,-75.949],[10.891,-45.909],[-0.285,-45.909],[-77.973,-75.949],[-132.017,4.597],[-80.556,57.662],[-75.875,66.071],[-70.075,146.877],[-57.943,154.316],[-27.048,165.544],[5.303,176.601],[37.654,165.544],[68.548,153.316],[80.68,146.877],[86.481,66.071],[91.162,57.662],[142.623,4.597]],"c":true}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.941176474094,0.847058832645,0.701960802078,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-6.695,-15.921],[5.747,-3.178],[22.493,4.591],[6.631,-1.555],[16.983,8.766],[-3.144,6.284],[-28.696,7.38],[-11.25,-13.38],[-2.92,3.48],[-38.8,-9.4]],"o":[[2.546,6.053],[-39.7,21.954],[-6.674,-1.362],[-56.127,13.163],[-6.244,-3.223],[5.486,-10.965],[38.664,-9.944],[2.92,3.48],[11.25,-13.38],[26.786,6.499]],"v":[[134.093,-35.971],[128.458,-19.704],[14.574,-11.647],[-5.621,-11.396],[-116.496,-21.256],[-122.192,-38.41],[-76.315,-72.759],[-0.282,-45.913],[10.887,-45.913],[87.791,-72.245]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.749019622803,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 4","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[51.445,12.472],[11.245,-13.381],[2.922,3.477],[38.8,-9.406],[-5.196,-23.384],[-28.607,-10.289],[0.785,-3.583],[-16.2,-23.457],[-4.902,-0.674],[-10.738,-7.451],[0,0],[-16.975,11.779],[-7.382,1.015],[-2.812,4.072],[3.47,15.845],[-3.452,1.242],[-4.853,21.841]],"o":[[-38.801,-9.406],[-2.922,3.477],[-11.245,-13.381],[-51.445,12.472],[4.854,21.841],[3.452,1.242],[-3.47,15.845],[2.812,4.072],[7.382,1.015],[16.975,11.779],[0,0],[10.737,-7.451],[4.902,-0.674],[16.2,-23.457],[-0.785,-3.583],[28.607,-10.289],[5.197,-23.384]],"v":[[88.579,-75.949],[10.891,-45.909],[-0.285,-45.909],[-77.973,-75.949],[-132.017,4.597],[-80.556,57.662],[-75.875,66.071],[-70.075,146.877],[-57.943,154.316],[-27.048,165.544],[5.303,176.601],[37.654,165.544],[68.548,154.316],[80.68,146.877],[86.481,66.071],[91.162,57.662],[142.623,4.597]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.941176474094,0.847058832645,0.701960802078,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 5","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[24.154,48.305],[13.203,43.885],[77.248,0],[15.205,-50.539],[21.999,-43.995],[-198.638,0]],"o":[[-21.999,-43.995],[-15.205,-50.539],[-78.08,0],[-13.203,43.885],[-24.154,48.305],[198.638,0]],"v":[[169.587,-20.913],[146.026,-110.813],[5.303,-207.093],[-135.42,-110.813],[-158.981,-20.913],[5.303,159.087]],"c":true}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 6","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-7.633,-2.073]],"o":[[0,0],[0,0]],"v":[[41.579,-186.44],[54.078,-183.608]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-1.612,-0.576]],"o":[[1.511,0.494],[0,0]],"v":[[62.717,-181.024],[67.407,-179.42]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 7","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-23.536],[50.223,0],[0,23.536],[-50.223,0]],"o":[[0,23.536],[-50.223,0],[0,-23.536],[50.223,0]],"v":[[96.859,-148.606],[5.921,-105.99],[-85.016,-148.606],[5.921,-191.222]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.780392169952,0.623529434204,0.419607847929,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 8","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[22.173,44.342],[12.12,40.285],[70.911,0],[13.958,-46.393],[20.194,-40.385],[-182.343,0]],"o":[[-20.194,-40.385],[-13.957,-46.393],[-71.675,0],[-12.12,40.285],[-22.173,44.342],[182.343,0]],"v":[[156.11,-21.166],[134.482,-103.692],[5.303,-192.073],[-123.876,-103.692],[-145.504,-21.166],[5.303,144.067]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.737254917622,0.572549045086,0.349019616842,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 9","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[24.154,48.305],[13.203,43.885],[77.248,0],[15.205,-50.539],[21.999,-43.995],[-198.638,0]],"o":[[-21.999,-43.995],[-15.205,-50.539],[-78.08,0],[-13.203,43.885],[-24.154,48.305],[198.638,0]],"v":[[169.587,-20.913],[146.026,-110.813],[5.303,-207.093],[-135.42,-110.813],[-158.981,-20.913],[5.303,159.087]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 10","bm":0,"hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"ear L","parent":7,"sr":1,"ks":{"p":{"a":0,"k":[-148.03,-63.49,0]},"a":{"a":0,"k":[-148.03,-63.49,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[1.081,-15.591],[0,0],[0.01,0],[-5.699,9.64],[0,0]],"o":[[-42.636,-22.157],[-0.01,0],[-1.283,-12.428],[16.864,-28.514],[5.547,-0.606]],"v":[[-120.56,-89.291],[-178.963,-61.424],[-178.983,-61.434],[-172.678,-95.859],[-126.714,-115.865]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.596078455448,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[17.728,-1.949],[16.87,-28.514],[-21.623,-17.626]],"o":[[0,0],[-13.747,23.235],[25.716,20.962]],"v":[[-126.711,-115.866],[-172.682,-95.857],[-156.36,-15.922]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.929411768913,0.674509823322,0.666666686535,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[55.083,3.638],[22.172,-27.368],[-47.288,-39.234]],"o":[[-19.765,-1.305],[-24.472,30.208],[49.528,41.092]],"v":[[-115.798,-143.021],[-186.99,-118.078],[-164.645,10.795]],"c":true}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-36.319,10.182]],"o":[[0,0],[0,0]],"v":[[-194.126,-81.406],[-152.972,-131.334]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.737254917622,0.572549045086,0.349019616842,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":10},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 4","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[55.083,3.638],[22.172,-27.368],[-47.288,-39.234]],"o":[[-19.765,-1.305],[-24.472,30.208],[49.528,41.092]],"v":[[-115.798,-143.021],[-186.99,-118.078],[-164.645,10.795]],"c":true}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 5","bm":0,"hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"ear R","parent":7,"sr":1,"ks":{"p":{"a":0,"k":[157.962,-63.49,0]},"a":{"a":0,"k":[157.962,-63.49,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.081,-15.591],[0,0],[-0.01,0],[5.699,9.64],[0,0]],"o":[[42.636,-22.157],[0.01,0],[1.283,-12.428],[-16.864,-28.514],[-5.547,-0.606]],"v":[[130.917,-89.291],[189.319,-61.424],[189.34,-61.434],[183.034,-95.859],[137.07,-115.865]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.596078455448,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-55.083,3.638],[-22.172,-27.368],[47.288,-39.234]],"o":[[19.765,-1.305],[24.472,30.208],[-49.528,41.092]],"v":[[125.73,-143.021],[196.922,-118.078],[174.577,10.795]],"c":true}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[36.319,10.182]],"o":[[0,0],[0,0]],"v":[[203.905,-80.406],[162.752,-130.334]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.737254917622,0.572549045086,0.349019616842,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":10},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-17.728,-1.949],[-16.87,-28.514],[21.623,-17.626]],"o":[[0,0],[13.747,23.235],[-25.716,20.962]],"v":[[136.643,-115.866],[182.613,-95.857],[166.291,-15.922]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.929411768913,0.674509823322,0.666666686535,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 4","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-55.083,3.638],[-22.172,-27.368],[47.288,-39.234]],"o":[[19.765,-1.305],[24.472,30.208],[-49.528,41.092]],"v":[[125.73,-143.021],[196.922,-118.078],[174.577,10.795]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 5","bm":0,"hd":false}],"ip":0,"op":30,"st":0,"bm":0}]} \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/tsv_setup_monkey_idle2.tgs b/TMessagesProj/src/main/res/raw/tsv_setup_monkey_idle2.tgs new file mode 100644 index 000000000..6bedc3600 --- /dev/null +++ b/TMessagesProj/src/main/res/raw/tsv_setup_monkey_idle2.tgs @@ -0,0 +1 @@ +{"tgs":1,"v":"5.5.2","fr":60,"ip":0,"op":30,"w":512,"h":512,"nm":"password_open_idle_short_ear","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"master","sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":0,"k":[256,256,0]},"s":{"a":0,"k":[95,95,100]}},"ao":0,"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":3,"nm":"face","parent":7,"sr":1,"ks":{"o":{"a":0,"k":0}},"ao":0,"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"eye_L 2","parent":2,"sr":1,"ks":{"p":{"a":0,"k":[-63.783,7.296,0]},"a":{"a":0,"k":[-63.783,7.296,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-11.871],[9.986,0],[0,7.079],[-9.986,0]],"o":[[0,7.079],[-9.986,0],[0,-11.357],[9.986,0]],"v":[[-46.701,12.524],[-63.783,33.272],[-80.865,12.524],[-63.783,11.875]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.282352954149,0.286274522543,0.286274522543,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-3.629],[7.358,0],[0,5.828],[-7.358,0]],"o":[[0,5.701],[-7.358,0],[0,-3.63],[7.358,0]],"v":[[-50.461,-12.676],[-63.783,-11.535],[-77.106,-12.676],[-63.783,-23.45]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.960784316063,0.960784316063,0.960784316063,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-19.516],[13.393,0],[0,19.516],[-13.393,0]],"o":[[0,19.516],[-13.393,0],[0,-19.516],[13.393,0]],"v":[[-39.533,4.77],[-63.783,40.106],[-88.033,4.77],[-63.783,-30.566]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.066666670144,0.066666670144,0.066666670144,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-19.516],[13.393,0],[0,19.516],[-13.393,0]],"o":[[0,19.516],[-13.393,0],[0,-19.516],[13.393,0]],"v":[[-38.523,9.822],[-63.783,45.158],[-89.044,9.822],[-63.783,-25.514]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.749019622803,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"eye_R_mirror","parent":2,"sr":1,"ks":{"p":{"a":0,"k":[73.842,7.296,0]},"a":{"a":0,"k":[-63.783,7.296,0]},"s":{"a":0,"k":[-100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-11.871],[9.986,0],[0,7.079],[-9.986,0]],"o":[[0,7.079],[-9.986,0],[0,-11.357],[9.986,0]],"v":[[-46.701,12.524],[-63.783,33.272],[-80.865,12.524],[-63.783,11.875]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.282352954149,0.286274522543,0.286274522543,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-3.629],[7.358,0],[0,5.828],[-7.358,0]],"o":[[0,5.701],[-7.358,0],[0,-3.63],[7.358,0]],"v":[[-50.461,-12.676],[-63.783,-11.535],[-77.106,-12.676],[-63.783,-23.45]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.960784316063,0.960784316063,0.960784316063,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-19.516],[13.393,0],[0,19.516],[-13.393,0]],"o":[[0,19.516],[-13.393,0],[0,-19.516],[13.393,0]],"v":[[-39.533,4.77],[-63.783,40.106],[-88.033,4.77],[-63.783,-30.566]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.066666670144,0.066666670144,0.066666670144,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-19.516],[13.393,0],[0,19.516],[-13.393,0]],"o":[[0,19.516],[-13.393,0],[0,-19.516],[13.393,0]],"v":[[-38.523,9.822],[-63.783,45.158],[-89.044,9.822],[-63.783,-25.514]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.749019622803,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"nose","parent":2,"sr":1,"ks":{"p":{"a":0,"k":[5.883,50.25,0]},"a":{"a":0,"k":[5.883,50.25,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[2.511,-4.918],[0.213,-0.942],[-3.744,-1.911],[2.476,-4.893],[-0.478,0.936],[3.948,2.016]],"o":[[-0.469,0.919],[2.519,-4.85],[3.744,1.911],[0.643,-0.734],[2.511,-4.918],[-3.948,-2.016]],"v":[[13.327,44.758],[12.3,47.57],[24.125,43.208],[25.922,54.567],[27.623,52.056],[25.019,39.507]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.211764708161,0.086274512112,0.035294119269,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[2.509,-4.914],[-3.948,-2.015],[-2.509,4.914],[3.948,2.015]],"o":[[-2.509,4.914],[3.948,2.015],[2.509,-4.914],[-3.948,-2.015]],"v":[[13.326,44.758],[15.931,57.305],[27.621,52.056],[25.016,39.509]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.403921574354,0.266666680574,0.188235297799,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[3.93,-7.699],[-3.948,-2.015],[-2.812,4.747],[3.948,2.015]],"o":[[-2.509,4.914],[3.948,2.015],[4.225,-7.134],[-3.948,-2.015]],"v":[[12.111,46.986],[15.567,59.968],[27.169,55.043],[25.661,40.199]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.941176474094,0.847058832645,0.705882370472,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.511,-4.918],[-0.213,-0.942],[3.744,-1.911],[-2.476,-4.893],[0.478,0.936],[-3.948,2.016]],"o":[[0.469,0.919],[-2.519,-4.85],[-3.744,1.911],[-0.643,-0.734],[-2.511,-4.918],[3.948,-2.016]],"v":[[-1.485,44.758],[-0.457,47.57],[-12.282,43.208],[-14.08,54.567],[-15.78,52.056],[-13.177,39.507]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.211764708161,0.086274512112,0.035294119269,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.509,-4.914],[3.948,-2.015],[2.509,4.914],[-3.948,2.015]],"o":[[2.509,4.914],[-3.948,2.015],[-2.509,-4.914],[3.948,-2.015]],"v":[[-1.484,44.758],[-4.089,57.305],[-15.779,52.056],[-13.174,39.509]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.403921574354,0.266666680574,0.188235297799,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-3.93,-7.699],[3.948,-2.015],[2.812,4.747],[-3.948,2.015]],"o":[[2.509,4.914],[-3.948,2.015],[-4.225,-7.134],[3.948,-2.015]],"v":[[-0.269,46.986],[-3.725,59.968],[-15.327,55.043],[-13.818,40.199]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.941176474094,0.847058832645,0.705882370472,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[11.287,0.292],[3.048,-1.351],[3.153,1.398],[3.628,-0.094],[-0.105,-10.467],[-29.829,0],[-0.445,8.16]],"o":[[-3.628,-0.094],[-3.153,1.398],[-3.048,-1.351],[-11.287,0.292],[0.079,7.902],[29.532,0],[0.569,-10.452]],"v":[[23.934,29.849],[11.849,32.814],[-0.121,32.814],[-12.206,29.849],[-28.625,47.042],[5.864,70.656],[40.353,47.042]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.749019622803,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"mouth","parent":2,"sr":1,"ks":{"p":{"a":0,"k":[5.864,107.189,0]},"a":{"a":0,"k":[5.864,107.189,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[1.188,-2.439],[0.921,0.417],[6.452,0.59],[6.878,0],[2.613,-0.213],[1.434,-0.652],[-0.372,-1.404],[-1.391,0.611],[-6.645,0.566],[-7.086,0],[-2.685,-0.256],[-1.475,-0.645]],"o":[[0.378,-1.404],[-1.435,-0.65],[-2.605,-0.238],[-6.884,0],[-6.452,0.525],[-0.92,0.418],[-1.188,-2.439],[1.479,-0.65],[2.688,-0.229],[7.086,0],[6.639,0.632],[1.396,0.611]],"v":[[34.087,94.056],[33.413,91.171],[21.553,89.807],[5.926,89.257],[-9.991,89.703],[-21.919,91.171],[-22.598,94.051],[-22.751,89.003],[-10.911,87.679],[5.926,87.083],[22.498,87.794],[34.24,89.003]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.015686275437,0,0.003921568859,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.676,0],[6.173,0],[4.992,3.171],[-1.401,0],[0,0],[-6.229,-1.128]],"o":[[-4.927,3.051],[-6.347,0],[-0.236,0],[6.404,0],[0,0],[1.339,0.243]],"v":[[23.022,105.559],[5.744,111.007],[-11.941,105.116],[-8.151,106.691],[5.555,107.59],[19.484,106.941]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.698039233685,0.274509817362,0.376470595598,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[2,0.88],[6.637,0.633],[7.087,0],[2.687,-0.229],[1.475,-0.649],[-2.5,-3.795],[-11.418,0],[-3.544,5.379]],"o":[[-1.475,-0.649],[-2.684,-0.256],[-7.087,0],[-6.643,0.567],[-2,0.88],[3.544,5.379],[11.418,0],[2.5,-3.795]],"v":[[34.242,89.001],[22.499,87.793],[5.925,87.084],[-10.913,87.679],[-22.749,89.001],[-20.634,97.431],[5.746,111.004],[32.127,97.431]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.247058823705,0.039215687662,0.141176477075,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[3.188,0.413],[6.882,0.687],[7.357,0],[2.786,-0.25],[1.597,-0.464],[-2.595,-3.795],[-11.852,0],[-3.679,5.379]],"o":[[-1.648,-0.214],[-2.783,-0.278],[-7.357,0],[-6.889,0.618],[-3.048,0.885],[3.678,5.379],[11.852,0],[2.595,-3.795]],"v":[[34.242,89.001],[22.653,90.081],[5.925,89.286],[-11.089,89.965],[-22.749,89.001],[-21.823,100.948],[5.733,115.682],[33.554,101.21]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.956862747669,0.913725495338,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 4","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[2,0.88],[6.637,0.633],[7.087,0],[2.687,-0.229],[1.475,-0.649],[-2.5,-3.795],[-11.418,0],[-3.544,5.379]],"o":[[-1.475,-0.649],[-2.684,-0.256],[-7.087,0],[-6.643,0.567],[-2,0.88],[3.544,5.379],[11.418,0],[2.5,-3.795]],"v":[[35.881,85.862],[23.167,84.726],[5.922,83.945],[-11.558,84.606],[-24.395,85.862],[-22.277,95.229],[5.746,108.802],[33.769,95.229]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.749019622803,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 5","bm":0,"hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"base","parent":1,"sr":1,"ks":{"p":{"a":0,"k":[5.303,144.067,0]},"a":{"a":0,"k":[5.303,144.067,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-10.992,-6.96],[0,0],[-16.976,11.779],[-18.657,4.78]],"o":[[17.211,5.126],[18.61,11.782],[0,0],[10.182,-7.065],[0,0]],"v":[[-70.986,150.908],[-27.847,165.744],[5.303,176.601],[37.654,165.544],[81.313,150.908]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.698039233685,0.584313750267,0.447058826685,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-24.85,4.01],[2.81,-4.07],[4.9,-0.67],[10.74,-7.45],[0,0],[16.98,11.78],[7.38,1.01],[3.407,3.585],[1.57,5.1],[-14.42,-8.27],[-8.4,5.66]],"o":[[-1.671,6.6],[-2.81,4.07],[-7.38,1.01],[-16.97,11.78],[0,0],[-10.73,-7.45],[-4.9,-0.67],[-3.841,-4.041],[12.31,3.41],[17.93,10.29],[7.89,-5.32]],"v":[[91.856,131.627],[83.799,149.584],[68.549,154.317],[37.649,165.547],[5.299,176.597],[-27.051,165.547],[-57.941,154.317],[-72.457,150.111],[-81.201,131.67],[-17.101,154.037],[28.949,154.037]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":11},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[51.445,12.472],[11.245,-13.381],[2.922,3.477],[38.8,-9.406],[-5.196,-23.384],[-28.607,-10.289],[0.785,-3.583],[-16.2,-23.457],[-4.902,-0.674],[-10.738,-7.451],[0,0],[-16.975,11.779],[-7.382,1.015],[-2.812,4.072],[3.47,15.845],[-3.452,1.242],[-4.853,21.841]],"o":[[-38.801,-9.406],[-2.922,3.477],[-11.245,-13.381],[-51.445,12.472],[4.854,21.841],[3.452,1.242],[-3.47,15.845],[2.812,4.072],[7.382,1.015],[16.975,11.779],[0,0],[10.737,-7.451],[4.902,-0.674],[16.2,-23.457],[-0.785,-3.583],[28.607,-10.289],[5.197,-23.384]],"v":[[88.579,-75.949],[10.891,-45.909],[-0.285,-45.909],[-77.973,-75.949],[-132.017,4.597],[-80.556,57.662],[-75.875,66.071],[-70.075,146.877],[-57.943,154.316],[-27.048,165.544],[5.303,176.601],[37.654,165.544],[68.548,153.316],[80.68,146.877],[86.481,66.071],[91.162,57.662],[142.623,4.597]],"c":true}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.941176474094,0.847058832645,0.701960802078,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-6.695,-15.921],[5.747,-3.178],[22.493,4.591],[6.631,-1.555],[16.983,8.766],[-3.144,6.284],[-28.696,7.38],[-11.25,-13.38],[-2.92,3.48],[-38.8,-9.4]],"o":[[2.546,6.053],[-39.7,21.954],[-6.674,-1.362],[-56.127,13.163],[-6.244,-3.223],[5.486,-10.965],[38.664,-9.944],[2.92,3.48],[11.25,-13.38],[26.786,6.499]],"v":[[134.093,-35.971],[128.458,-19.704],[14.574,-11.647],[-5.621,-11.396],[-116.496,-21.256],[-122.192,-38.41],[-76.315,-72.759],[-0.282,-45.913],[10.887,-45.913],[87.791,-72.245]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.749019622803,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 4","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[51.445,12.472],[11.245,-13.381],[2.922,3.477],[38.8,-9.406],[-5.196,-23.384],[-28.607,-10.289],[0.785,-3.583],[-16.2,-23.457],[-4.902,-0.674],[-10.738,-7.451],[0,0],[-16.975,11.779],[-7.382,1.015],[-2.812,4.072],[3.47,15.845],[-3.452,1.242],[-4.853,21.841]],"o":[[-38.801,-9.406],[-2.922,3.477],[-11.245,-13.381],[-51.445,12.472],[4.854,21.841],[3.452,1.242],[-3.47,15.845],[2.812,4.072],[7.382,1.015],[16.975,11.779],[0,0],[10.737,-7.451],[4.902,-0.674],[16.2,-23.457],[-0.785,-3.583],[28.607,-10.289],[5.197,-23.384]],"v":[[88.579,-75.949],[10.891,-45.909],[-0.285,-45.909],[-77.973,-75.949],[-132.017,4.597],[-80.556,57.662],[-75.875,66.071],[-70.075,146.877],[-57.943,154.316],[-27.048,165.544],[5.303,176.601],[37.654,165.544],[68.548,154.316],[80.68,146.877],[86.481,66.071],[91.162,57.662],[142.623,4.597]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.941176474094,0.847058832645,0.701960802078,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 5","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[24.154,48.305],[13.203,43.885],[77.248,0],[15.205,-50.539],[21.999,-43.995],[-198.638,0]],"o":[[-21.999,-43.995],[-15.205,-50.539],[-78.08,0],[-13.203,43.885],[-24.154,48.305],[198.638,0]],"v":[[169.587,-20.913],[146.026,-110.813],[5.303,-207.093],[-135.42,-110.813],[-158.981,-20.913],[5.303,159.087]],"c":true}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 6","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-7.633,-2.073]],"o":[[0,0],[0,0]],"v":[[41.579,-186.44],[54.078,-183.608]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-1.612,-0.576]],"o":[[1.511,0.494],[0,0]],"v":[[62.717,-181.024],[67.407,-179.42]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 7","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-23.536],[50.223,0],[0,23.536],[-50.223,0]],"o":[[0,23.536],[-50.223,0],[0,-23.536],[50.223,0]],"v":[[96.859,-148.606],[5.921,-105.99],[-85.016,-148.606],[5.921,-191.222]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.780392169952,0.623529434204,0.419607847929,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 8","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[22.173,44.342],[12.12,40.285],[70.911,0],[13.958,-46.393],[20.194,-40.385],[-182.343,0]],"o":[[-20.194,-40.385],[-13.957,-46.393],[-71.675,0],[-12.12,40.285],[-22.173,44.342],[182.343,0]],"v":[[156.11,-21.166],[134.482,-103.692],[5.303,-192.073],[-123.876,-103.692],[-145.504,-21.166],[5.303,144.067]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.737254917622,0.572549045086,0.349019616842,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 9","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[24.154,48.305],[13.203,43.885],[77.248,0],[15.205,-50.539],[21.999,-43.995],[-198.638,0]],"o":[[-21.999,-43.995],[-15.205,-50.539],[-78.08,0],[-13.203,43.885],[-24.154,48.305],[198.638,0]],"v":[[169.587,-20.913],[146.026,-110.813],[5.303,-207.093],[-135.42,-110.813],[-158.981,-20.913],[5.303,159.087]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 10","bm":0,"hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"ear L","parent":7,"sr":1,"ks":{"p":{"a":0,"k":[-148.03,-63.49,0]},"a":{"a":0,"k":[-148.03,-63.49,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[1.081,-15.591],[0,0],[0.01,0],[-5.699,9.64],[0,0]],"o":[[-42.636,-22.157],[-0.01,0],[-1.283,-12.428],[16.864,-28.514],[5.547,-0.606]],"v":[[-120.56,-89.291],[-178.963,-61.424],[-178.983,-61.434],[-172.678,-95.859],[-126.714,-115.865]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.596078455448,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[17.728,-1.949],[16.87,-28.514],[-21.623,-17.626]],"o":[[0,0],[-13.747,23.235],[25.716,20.962]],"v":[[-126.711,-115.866],[-172.682,-95.857],[-156.36,-15.922]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.929411768913,0.674509823322,0.666666686535,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[55.083,3.638],[22.172,-27.368],[-47.288,-39.234]],"o":[[-19.765,-1.305],[-24.472,30.208],[49.528,41.092]],"v":[[-115.798,-143.021],[-186.99,-118.078],[-164.645,10.795]],"c":true}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-36.319,10.182]],"o":[[0,0],[0,0]],"v":[[-194.126,-81.406],[-152.972,-131.334]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.737254917622,0.572549045086,0.349019616842,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":10},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 4","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[55.083,3.638],[22.172,-27.368],[-47.288,-39.234]],"o":[[-19.765,-1.305],[-24.472,30.208],[49.528,41.092]],"v":[[-115.798,-143.021],[-186.99,-118.078],[-164.645,10.795]],"c":true}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 5","bm":0,"hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"ear R","parent":7,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":8,"s":[10.811]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":15.588,"s":[-14.52]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":22,"s":[10.811]},{"t":30,"s":[0]}]},"p":{"a":0,"k":[113.751,-44.542,0]},"a":{"a":0,"k":[113.751,-44.542,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.081,-15.591],[0,0],[-0.01,0],[5.699,9.64],[0,0]],"o":[[42.636,-22.157],[0.01,0],[1.283,-12.428],[-16.864,-28.514],[-5.547,-0.606]],"v":[[130.917,-89.291],[189.319,-61.424],[189.34,-61.434],[183.034,-95.859],[137.07,-115.865]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.596078455448,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-55.083,3.638],[-22.172,-27.368],[47.288,-39.234]],"o":[[19.765,-1.305],[24.472,30.208],[-49.528,41.092]],"v":[[125.73,-143.021],[196.922,-118.078],[174.577,10.795]],"c":true}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[36.319,10.182]],"o":[[0,0],[0,0]],"v":[[203.905,-80.406],[162.752,-130.334]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.737254917622,0.572549045086,0.349019616842,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":10},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-17.728,-1.949],[-16.87,-28.514],[21.623,-17.626]],"o":[[0,0],[13.747,23.235],[-25.716,20.962]],"v":[[136.643,-115.866],[182.613,-95.857],[166.291,-15.922]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.929411768913,0.674509823322,0.666666686535,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 4","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-55.083,3.638],[-22.172,-27.368],[47.288,-39.234]],"o":[[19.765,-1.305],[24.472,30.208],[-49.528,41.092]],"v":[[125.73,-143.021],[196.922,-118.078],[174.577,10.795]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 5","bm":0,"hd":false}],"ip":0,"op":30,"st":0,"bm":0}]} \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/tsv_setup_monkey_peek.tgs b/TMessagesProj/src/main/res/raw/tsv_setup_monkey_peek.tgs new file mode 100644 index 000000000..43fedd744 --- /dev/null +++ b/TMessagesProj/src/main/res/raw/tsv_setup_monkey_peek.tgs @@ -0,0 +1 @@ +{"tgs":1,"v":"5.5.2","fr":60,"ip":0,"op":33,"w":512,"h":512,"nm":"password_peek","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":3,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":0,"k":[256,256,0]},"s":{"a":0,"k":[95,95,100]}},"ao":0,"ip":0,"op":33,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":3,"parent":11,"sr":1,"ks":{"o":{"a":0,"k":0}},"ao":0,"ip":0,"op":33,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"sr":1,"ks":{"p":{"a":0,"k":[127.498,460.89,0]},"a":{"a":0,"k":[150.003,211.463,0]},"s":{"a":0,"k":[-95,95,100]}},"ao":0,"ef":[{"ty":5,"nm":"arm R: Path 1 [1.1.1.0]","np":3,"mn":"ADBE Layer Control","ix":1,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.1.1.1]","np":3,"mn":"ADBE Layer Control","ix":2,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.1.1.2]","np":3,"mn":"ADBE Layer Control","ix":3,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.2.1.0]","np":3,"mn":"ADBE Layer Control","ix":4,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.2.1.1]","np":3,"mn":"ADBE Layer Control","ix":5,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.2.1.2]","np":3,"mn":"ADBE Layer Control","ix":6,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.0]","np":3,"mn":"ADBE Layer Control","ix":7,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.1]","np":3,"mn":"ADBE Layer Control","ix":8,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.2]","np":3,"mn":"ADBE Layer Control","ix":9,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.3]","np":3,"mn":"ADBE Layer Control","ix":10,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.4]","np":3,"mn":"ADBE Layer Control","ix":11,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.5]","np":3,"mn":"ADBE Layer Control","ix":12,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.6]","np":3,"mn":"ADBE Layer Control","ix":13,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.0]","np":3,"mn":"ADBE Layer Control","ix":14,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.1]","np":3,"mn":"ADBE Layer Control","ix":15,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.2]","np":3,"mn":"ADBE Layer Control","ix":16,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.3]","np":3,"mn":"ADBE Layer Control","ix":17,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.4]","np":3,"mn":"ADBE Layer Control","ix":18,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.5]","np":3,"mn":"ADBE Layer Control","ix":19,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.6]","np":3,"mn":"ADBE Layer Control","ix":20,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.7]","np":3,"mn":"ADBE Layer Control","ix":21,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.8]","np":3,"mn":"ADBE Layer Control","ix":22,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.9]","np":3,"mn":"ADBE Layer Control","ix":23,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.10]","np":3,"mn":"ADBE Layer Control","ix":24,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.11]","np":3,"mn":"ADBE Layer Control","ix":25,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.12]","np":3,"mn":"ADBE Layer Control","ix":26,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.13]","np":3,"mn":"ADBE Layer Control","ix":27,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.14]","np":3,"mn":"ADBE Layer Control","ix":28,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.15]","np":3,"mn":"ADBE Layer Control","ix":29,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.16]","np":3,"mn":"ADBE Layer Control","ix":30,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":3}}]}],"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[114.063,202.063]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189.375,202.063],[156.688,64.313],[162.188,37.5]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.75,211.063],[164.125,212.188],[190.375,204.063],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.737254917622,0.572549045086,0.349019616842,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.375,204.063],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[114.063,205.063],[148,212.75]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-12.183,-34.643]],"o":[[0,0],[0,0]],"v":[[41.387,-96.927],[74.702,-38.38]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.580392181873,0.376470595598,0.215686276555,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-3.811,-17.322]],"o":[[0,0],[0,0]],"v":[[133.538,-74.755],[147.742,-34.569]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.580392181873,0.376470595598,0.215686276555,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-9.007,-30.14]],"o":[[0,0],[0,0]],"v":[[76.723,-110.438],[108.941,-50.159]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.580392181873,0.376470595598,0.215686276555,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-10.22,25.636],[3.943,28.75],[20.093,-1.386],[17.668,8.661],[0.693,-7.275],[12.125,-0.373],[-1.732,-12.125],[5.123,-13.539],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-13.289,-6.514],[0,0],[-12.125,0.373],[0,0],[-4.85,12.818],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[133.538,-74.755],[98.895,-119.792],[76.723,-110.438],[56.63,-121.551],[41.387,-96.927],[24.412,-87.574],[41.676,-22.528],[71.867,54.464]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.580392181873,0.376470595598,0.215686276555,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[25.645,70.013],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[2.001,5.679],[4.557,24.917],[23.028,21.078],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[37.09,-38.535],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.86274510622,0.690196096897,0.498039215803,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.11,-7.28],[0.08,1.65],[-12.857,-21.206],[-4.596,-2.59],[0,0],[7.09,11.6],[0,0],[-12.323,-15.225],[-4.52,-8.91],[-0.32,1.03],[0,0],[0,0],[-15.78,-21.096],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[10.24,-0.71],[17.66,8.66],[0.7,-7.28],[12.13,-0.37],[-1.73,-12.13],[5.13,-13.54]],"o":[[0.81,-1.63],[-0.54,-10.39],[13.69,22.58],[6.049,3.409],[-2.93,-11.65],[-7.1,-11.59],[5.15,-18],[11.13,13.751],[4.52,8.92],[0.33,-1.03],[-4.26,-15.14],[1.37,-11.32],[18.31,24.479],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-13.29,-6.51],[0,0],[-12.12,0.38],[0,0],[-1.61,4.25]],"v":[[26.173,-69.753],[27.343,-74.753],[48.083,-70.753],[68.653,-33.843],[74.463,-39.163],[54.034,-80.303],[44.824,-98.643],[74.463,-95.213],[98.713,-51.333],[109.264,-48.413],[108.614,-52.253],[84.773,-102.243],[111.373,-92.133],[140.114,-32.473],[147.793,-35.753],[142.653,-52.793],[159.744,-55.513],[133.864,-74.753],[99.224,-119.793],[77.043,-110.433],[56.954,-121.553],[41.713,-96.923],[24.733,-87.573]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.988235294819,0.890196084976,0.780392169952,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-10.22,25.636],[3.943,28.75],[20.093,-1.386],[17.668,8.661],[0.693,-7.275],[12.125,-0.373],[-1.732,-12.125],[5.123,-13.539],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-13.289,-6.514],[0,0],[-12.125,0.373],[0,0],[-4.85,12.818],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[133.538,-74.755],[98.895,-119.792],[76.723,-110.438],[56.63,-121.551],[41.387,-96.927],[24.412,-87.574],[41.676,-22.528],[71.867,54.464]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.913725495338,0.78823530674,0.647058844566,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":33,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.424],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":13,"s":[0]},{"i":{"x":[0.576],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":20,"s":[0]},{"t":33,"s":[0]}]},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.33,"y":0},"t":0,"s":[394.502,460.89,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0,"y":0},"o":{"x":0.33,"y":0.33},"t":13,"s":[378.502,550.89,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.67,"y":1},"o":{"x":1,"y":0},"t":20,"s":[378.502,550.89,0],"to":[0,0,0],"ti":[0,0,0]},{"t":33,"s":[394.502,460.89,0]}]},"a":{"a":0,"k":[150.003,211.463,0]},"s":{"a":0,"k":[95,95,100]}},"ao":0,"ef":[{"ty":5,"nm":"arm R: Path 1 [1.1.1.0]","np":3,"mn":"ADBE Layer Control","ix":1,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.1.1.1]","np":3,"mn":"ADBE Layer Control","ix":2,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.1.1.2]","np":3,"mn":"ADBE Layer Control","ix":3,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.2.1.0]","np":3,"mn":"ADBE Layer Control","ix":4,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.2.1.1]","np":3,"mn":"ADBE Layer Control","ix":5,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.2.1.2]","np":3,"mn":"ADBE Layer Control","ix":6,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.0]","np":3,"mn":"ADBE Layer Control","ix":7,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.1]","np":3,"mn":"ADBE Layer Control","ix":8,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.2]","np":3,"mn":"ADBE Layer Control","ix":9,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.3]","np":3,"mn":"ADBE Layer Control","ix":10,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.4]","np":3,"mn":"ADBE Layer Control","ix":11,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.5]","np":3,"mn":"ADBE Layer Control","ix":12,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.3.1.6]","np":3,"mn":"ADBE Layer Control","ix":13,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.0]","np":3,"mn":"ADBE Layer Control","ix":14,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.1]","np":3,"mn":"ADBE Layer Control","ix":15,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.2]","np":3,"mn":"ADBE Layer Control","ix":16,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.3]","np":3,"mn":"ADBE Layer Control","ix":17,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.4]","np":3,"mn":"ADBE Layer Control","ix":18,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.5]","np":3,"mn":"ADBE Layer Control","ix":19,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.6]","np":3,"mn":"ADBE Layer Control","ix":20,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.7]","np":3,"mn":"ADBE Layer Control","ix":21,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.8]","np":3,"mn":"ADBE Layer Control","ix":22,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.9]","np":3,"mn":"ADBE Layer Control","ix":23,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.10]","np":3,"mn":"ADBE Layer Control","ix":24,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.11]","np":3,"mn":"ADBE Layer Control","ix":25,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.12]","np":3,"mn":"ADBE Layer Control","ix":26,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.13]","np":3,"mn":"ADBE Layer Control","ix":27,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.14]","np":3,"mn":"ADBE Layer Control","ix":28,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.15]","np":3,"mn":"ADBE Layer Control","ix":29,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]},{"ty":5,"nm":"arm R: Path 1 [1.4.1.16]","np":3,"mn":"ADBE Layer Control","ix":30,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":4}}]}],"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.33,"y":0},"t":0,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[114.063,202.063]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[113.081,199.218]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[111.369,186.872]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[109.303,159.126]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[107.842,140.839]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[106.402,128.737]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[105.017,121.766]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[104.538,116.654]],"c":false}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[104.059,112.859]],"c":false}]},{"i":{"x":0,"y":1},"o":{"x":0.33,"y":0},"t":13,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[103.513,107.589]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":20,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[103.513,107.589]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[104.059,112.859]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[104.538,116.654]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[105.017,121.766]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[106.402,128.737]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":29,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[107.842,140.839]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[109.303,159.126]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[111.369,186.872]],"c":false}]},{"i":{"x":0.67,"y":1},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[113.081,199.218]],"c":false}]},{"t":33,"s":[{"i":[[0,0],[-2.938,-16.688],[0,0]],"o":[[0,0],[3.188,18.25],[0,0]],"v":[[73.75,56],[98.625,84.625],[114.063,202.063]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.33,"y":0},"t":0,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189.375,202.063],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[187.752,199.218],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[184.922,186.872],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[181.531,159.126],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[179.109,140.839],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.707,128.737],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[174.36,121.766],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[173.517,116.654],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[172.674,112.859],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0,"y":1},"o":{"x":0.33,"y":0},"t":13,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[171.852,107.589],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":20,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[171.852,107.589],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[172.674,112.859],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[173.517,116.654],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[174.36,121.766],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[176.707,128.737],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":29,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[179.109,140.839],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[181.531,159.126],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[184.922,186.872],[156.688,64.313],[162.188,37.5]],"c":false}]},{"i":{"x":0.67,"y":1},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[187.752,199.218],[156.688,64.313],[162.188,37.5]],"c":false}]},{"t":33,"s":[{"i":[[0,0],[1.063,18.688],[-2.75,5.813]],"o":[[0,0],[-0.625,-11.375],[0,0]],"v":[[189.375,202.063],[156.688,64.313],[162.188,37.5]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.33,"y":0},"t":0,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.75,211.063],[164.125,212.188],[190.375,204.063],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1,"s":[{"i":[[0,0],[-18.033,2.437],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-3.735,-31.621]],"o":[[0,0],[21.317,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[3.624,30.15]],"v":[[130.617,208.218],[162.717,209.343],[188.743,201.218],[159.875,83.125],[157.875,87.125],[125.905,70.466],[124.544,135.497]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2,"s":[{"i":[[0,0],[-17.763,2.436],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-3.055,-28.02]],"o":[[0,0],[20.998,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[2.967,26.379]],"v":[[128.643,195.872],[160.262,196.997],[185.899,188.872],[159.875,83.125],[157.875,87.125],[126.285,70.297],[124.186,131.025]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3,"s":[{"i":[[0,0],[-17.443,2.435],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-2.248,-23.75]],"o":[[0,0],[20.619,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[2.19,21.91]],"v":[[126.266,168.126],[157.315,169.251],[182.49,161.126],[159.875,83.125],[157.875,87.125],[126.735,70.097],[123.761,125.724]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[{"i":[[0,0],[-17.211,2.434],[0,0],[8.793,35.004],[0,0],[11.75,-13.313],[-1.663,-20.652]],"o":[[0,0],[20.345,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[1.625,18.667]],"v":[[124.579,149.839],[155.215,150.964],[180.055,142.839],[159.875,83.125],[158.265,86.995],[127.062,69.952],[123.484,119.209]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[0,0],[-16.979,2.434],[0,0],[9.274,30.821],[0,0],[11.75,-13.313],[-1.078,-17.553]],"o":[[0,0],[20.07,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[1.061,15.423]],"v":[[122.913,137.737],[153.136,138.862],[177.64,130.737],[159.875,83.125],[158.656,86.865],[127.388,69.807],[123.207,112.695]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[{"i":[[0,0],[-16.747,2.433],[0,0],[9.755,26.638],[0,0],[11.75,-13.313],[-0.493,-14.455]],"o":[[0,0],[19.796,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[0.496,12.18]],"v":[[121.303,130.766],[151.112,131.891],[175.281,123.766],[159.875,83.125],[159.046,86.735],[127.715,69.661],[122.93,106.18]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7,"s":[{"i":[[0,0],[-16.659,2.433],[0,0],[9.936,25.055],[0,0],[11.75,-13.313],[-0.271,-13.283]],"o":[[0,0],[19.692,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[0.283,10.954]],"v":[[120.738,125.654],[150.391,126.779],[174.433,118.654],[159.875,83.125],[159.194,86.685],[127.838,69.607],[122.825,103.716]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[0,0],[-16.571,2.432],[0,0],[10.118,23.473],[0,0],[11.75,-13.313],[-0.05,-12.111]],"o":[[0,0],[19.588,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[0.069,9.727]],"v":[[120.173,121.859],[149.67,122.984],[173.586,114.859],[159.875,83.125],[159.342,86.636],[127.962,69.552],[122.721,101.252]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.33,"y":0},"t":13,"s":[{"i":[[0,0],[-16.504,2.432],[0,0],[10.257,22.27],[0,0],[11.75,-13.313],[0.118,-11.22]],"o":[[0,0],[19.509,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[-0.093,8.794]],"v":[[119.563,116.589],[148.94,117.714],[172.759,109.589],[159.875,83.125],[159.454,86.599],[128.056,69.51],[122.641,99.378]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":20,"s":[{"i":[[0,0],[-16.504,2.432],[0,0],[10.257,22.27],[0,0],[11.75,-13.313],[0.118,-11.22]],"o":[[0,0],[19.509,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[-0.093,8.794]],"v":[[119.563,116.589],[148.94,117.714],[172.759,109.589],[159.875,83.125],[159.454,86.599],[128.056,69.51],[122.641,99.378]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,0],[-16.571,2.432],[0,0],[10.118,23.473],[0,0],[11.75,-13.313],[-0.05,-12.111]],"o":[[0,0],[19.588,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[0.069,9.727]],"v":[[120.173,121.859],[149.67,122.984],[173.586,114.859],[159.875,83.125],[159.342,86.636],[127.962,69.552],[122.721,101.252]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[-16.659,2.433],[0,0],[9.936,25.055],[0,0],[11.75,-13.313],[-0.271,-13.283]],"o":[[0,0],[19.692,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[0.283,10.954]],"v":[[120.738,125.654],[150.391,126.779],[174.433,118.654],[159.875,83.125],[159.194,86.685],[127.838,69.607],[122.825,103.716]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[0,0],[-16.747,2.433],[0,0],[9.755,26.638],[0,0],[11.75,-13.313],[-0.493,-14.455]],"o":[[0,0],[19.796,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[0.496,12.18]],"v":[[121.303,130.766],[151.112,131.891],[175.281,123.766],[159.875,83.125],[159.046,86.735],[127.715,69.661],[122.93,106.18]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[-16.979,2.434],[0,0],[9.274,30.821],[0,0],[11.75,-13.313],[-1.078,-17.553]],"o":[[0,0],[20.07,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[1.061,15.423]],"v":[[122.913,137.737],[153.136,138.862],[177.64,130.737],[159.875,83.125],[158.656,86.865],[127.388,69.807],[123.207,112.695]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":29,"s":[{"i":[[0,0],[-17.211,2.434],[0,0],[8.793,35.004],[0,0],[11.75,-13.313],[-1.663,-20.652]],"o":[[0,0],[20.345,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[1.625,18.667]],"v":[[124.579,149.839],[155.215,150.964],[180.055,142.839],[159.875,83.125],[158.265,86.995],[127.062,69.952],[123.484,119.209]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[-17.443,2.435],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-2.248,-23.75]],"o":[[0,0],[20.619,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[2.19,21.91]],"v":[[126.266,168.126],[157.315,169.251],[182.49,161.126],[159.875,83.125],[157.875,87.125],[126.735,70.097],[123.761,125.724]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[0,0],[-17.763,2.436],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-3.055,-28.02]],"o":[[0,0],[20.998,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[2.967,26.379]],"v":[[128.643,195.872],[160.262,196.997],[185.899,188.872],[159.875,83.125],[157.875,87.125],[126.285,70.297],[124.186,131.025]],"c":true}]},{"i":{"x":0.67,"y":1},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[0,0],[-18.033,2.437],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-3.735,-31.621]],"o":[[0,0],[21.317,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[3.624,30.15]],"v":[[130.617,208.218],[162.717,209.343],[188.743,201.218],[159.875,83.125],[157.875,87.125],[125.905,70.466],[124.544,135.497]],"c":true}]},{"t":33,"s":[{"i":[[0,0],[-18.188,2.438],[0,0],[8.313,39.188],[0,0],[11.75,-13.313],[-4.125,-33.688]],"o":[[0,0],[21.5,-2.875],[0,0],[0,0],[-2.75,-14.625],[-8.25,9.375],[4,32.313]],"v":[[131.75,211.063],[164.125,212.188],[190.375,204.063],[159.875,83.125],[157.875,87.125],[125.688,70.563],[124.75,138.063]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.737254917622,0.572549045086,0.349019616842,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.33,"y":0},"t":0,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.375,204.063],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[114.063,205.063],[148,212.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.52,0.06]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.02,-0.063]],"v":[[188.743,201.218],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[113.081,202.218],[146.729,209.906]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.228,0.056]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[33.511,-0.063]],"v":[[185.899,188.872],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[111.369,189.872],[144.514,197.56]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-18.881,0.051]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[32.907,-0.063]],"v":[[182.49,161.126],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[109.303,162.126],[141.851,169.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-18.63,0.047]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[32.469,-0.063]],"v":[[180.055,142.839],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[107.842,143.839],[139.956,151.527]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-18.379,0.043]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[32.031,-0.063]],"v":[[177.64,130.737],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[106.402,131.737],[138.083,139.424]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-18.127,0.04]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[31.593,-0.063]],"v":[[175.281,123.766],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[105.017,124.766],[136.265,132.453]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-18.032,0.038]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[31.427,-0.063]],"v":[[174.433,118.654],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[104.538,119.654],[135.622,127.342]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-17.937,0.037]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[31.261,-0.063]],"v":[[173.586,114.859],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[104.059,115.859],[134.978,123.546]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.33,"y":0},"t":13,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-17.865,0.036]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[31.135,-0.063]],"v":[[172.759,109.589],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[103.513,110.589],[134.308,118.276]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":20,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-17.865,0.036]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[31.135,-0.063]],"v":[[172.759,109.589],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[103.513,110.589],[134.308,118.276]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-17.937,0.037]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[31.261,-0.063]],"v":[[173.586,114.859],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[104.059,115.859],[134.978,123.546]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-18.032,0.038]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[31.427,-0.063]],"v":[[174.433,118.654],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[104.538,119.654],[135.622,127.342]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-18.127,0.04]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[31.593,-0.063]],"v":[[175.281,123.766],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[105.017,124.766],[136.265,132.453]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-18.379,0.043]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[32.031,-0.063]],"v":[[177.64,130.737],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[106.402,131.737],[138.083,139.424]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":29,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-18.63,0.047]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[32.469,-0.063]],"v":[[180.055,142.839],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[107.842,143.839],[139.956,151.527]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-18.881,0.051]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[32.907,-0.063]],"v":[[182.49,161.126],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[109.303,162.126],[141.851,169.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.228,0.056]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[33.511,-0.063]],"v":[[185.899,188.872],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[111.369,189.872],[144.514,197.56]],"c":true}]},{"i":{"x":0.67,"y":1},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.52,0.06]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.02,-0.063]],"v":[[188.743,201.218],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[113.081,202.218],[146.729,209.906]],"c":true}]},{"t":33,"s":[{"i":[[0,0],[1.063,18.688],[0,0],[0,0],[0,0],[1.313,-1.438],[0,0],[0,0],[0.563,-1.938],[0,0],[0,0],[0,-1.75],[0,0],[0,0],[-3.5,-18.188],[0,0],[-19.688,0.063]],"o":[[0,0],[-1.063,-18.688],[0,0],[0,0],[-0.563,-1.813],[0,0],[0,0],[-1.25,-1.563],[0,0],[0,0],[-1.625,-0.625],[0,0],[0,0],[0,0],[3.5,18.188],[0,0],[34.313,-0.063]],"v":[[190.375,204.063],[156.688,64.313],[159.813,34.75],[150.438,44.563],[146.563,32.125],[142.313,31.125],[134.25,39.938],[123.25,26],[118.875,26.813],[113.625,44.063],[96.188,37.125],[92.75,39.438],[92.75,59.125],[73.25,51.125],[98.625,84.625],[114.063,205.063],[148,212.75]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.33,"y":0},"t":0,"s":[{"i":[[0,0],[-12.183,-34.643]],"o":[[0,0],[0,0]],"v":[[41.387,-96.927],[74.702,-38.38]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1,"s":[{"i":[[0,0],[-12.769,-34.372]],"o":[[0,0],[0,0]],"v":[[39.884,-95.793],[74.673,-38.358]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2,"s":[{"i":[[0,0],[-13.791,-33.898]],"o":[[0,0],[0,0]],"v":[[37.264,-93.817],[74.621,-38.32]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3,"s":[{"i":[[0,0],[-15.003,-33.336]],"o":[[0,0],[0,0]],"v":[[34.158,-91.473],[74.559,-38.274]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[{"i":[[0,0],[-15.882,-32.929]],"o":[[0,0],[0,0]],"v":[[31.904,-89.773],[74.515,-38.241]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[0,0],[-16.761,-32.521]],"o":[[0,0],[0,0]],"v":[[29.651,-88.073],[74.47,-38.208]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[{"i":[[0,0],[-17.641,-32.114]],"o":[[0,0],[0,0]],"v":[[27.397,-86.373],[74.426,-38.175]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7,"s":[{"i":[[0,0],[-17.973,-31.96]],"o":[[0,0],[0,0]],"v":[[26.545,-85.729],[74.409,-38.162]],"c":false}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[0,0],[-18.306,-31.806]],"o":[[0,0],[0,0]],"v":[[25.692,-85.086],[74.392,-38.15]],"c":false}]},{"i":{"x":0,"y":1},"o":{"x":0.33,"y":0},"t":13,"s":[{"i":[[0,0],[-18.559,-31.688]],"o":[[0,0],[0,0]],"v":[[25.044,-84.597],[74.379,-38.14]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":20,"s":[{"i":[[0,0],[-18.559,-31.688]],"o":[[0,0],[0,0]],"v":[[25.044,-84.597],[74.379,-38.14]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,0],[-18.306,-31.806]],"o":[[0,0],[0,0]],"v":[[25.692,-85.086],[74.392,-38.15]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[-17.973,-31.96]],"o":[[0,0],[0,0]],"v":[[26.545,-85.729],[74.409,-38.162]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[0,0],[-17.641,-32.114]],"o":[[0,0],[0,0]],"v":[[27.397,-86.373],[74.426,-38.175]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[-16.761,-32.521]],"o":[[0,0],[0,0]],"v":[[29.651,-88.073],[74.47,-38.208]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":29,"s":[{"i":[[0,0],[-15.882,-32.929]],"o":[[0,0],[0,0]],"v":[[31.904,-89.773],[74.515,-38.241]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[-15.003,-33.336]],"o":[[0,0],[0,0]],"v":[[34.158,-91.473],[74.559,-38.274]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[0,0],[-13.791,-33.898]],"o":[[0,0],[0,0]],"v":[[37.264,-93.817],[74.621,-38.32]],"c":false}]},{"i":{"x":0.67,"y":1},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[0,0],[-12.769,-34.372]],"o":[[0,0],[0,0]],"v":[[39.884,-95.793],[74.673,-38.358]],"c":false}]},{"t":33,"s":[{"i":[[0,0],[-12.183,-34.643]],"o":[[0,0],[0,0]],"v":[[41.387,-96.927],[74.702,-38.38]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.580392181873,0.376470595598,0.215686276555,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.33,"y":0},"t":0,"s":[{"i":[[0,0],[-3.811,-17.322]],"o":[[0,0],[0,0]],"v":[[133.538,-74.755],[147.742,-34.569]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1,"s":[{"i":[[0,0],[-3.083,-17.075]],"o":[[0,0],[0,0]],"v":[[134.976,-74.378],[147.742,-34.569]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2,"s":[{"i":[[0,0],[-1.815,-16.645]],"o":[[0,0],[0,0]],"v":[[137.482,-73.719],[147.742,-34.569]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3,"s":[{"i":[[0,0],[-0.311,-16.136]],"o":[[0,0],[0,0]],"v":[[140.453,-72.938],[147.742,-34.569]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[{"i":[[0,0],[0.779,-15.766]],"o":[[0,0],[0,0]],"v":[[142.609,-72.371],[147.742,-34.569]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[0,0],[1.87,-15.397]],"o":[[0,0],[0,0]],"v":[[144.764,-71.805],[147.742,-34.569]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[{"i":[[0,0],[2.961,-15.027]],"o":[[0,0],[0,0]],"v":[[146.92,-71.238],[147.742,-34.569]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7,"s":[{"i":[[0,0],[3.374,-14.887]],"o":[[0,0],[0,0]],"v":[[147.736,-71.024],[147.742,-34.569]],"c":false}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[0,0],[3.787,-14.747]],"o":[[0,0],[0,0]],"v":[[148.551,-70.809],[147.742,-34.569]],"c":false}]},{"i":{"x":0,"y":1},"o":{"x":0.33,"y":0},"t":13,"s":[{"i":[[0,0],[4.1,-14.641]],"o":[[0,0],[0,0]],"v":[[149.171,-70.646],[147.742,-34.569]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":20,"s":[{"i":[[0,0],[4.1,-14.641]],"o":[[0,0],[0,0]],"v":[[149.171,-70.646],[147.742,-34.569]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,0],[3.787,-14.747]],"o":[[0,0],[0,0]],"v":[[148.551,-70.809],[147.742,-34.569]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[3.374,-14.887]],"o":[[0,0],[0,0]],"v":[[147.736,-71.024],[147.742,-34.569]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[0,0],[2.961,-15.027]],"o":[[0,0],[0,0]],"v":[[146.92,-71.238],[147.742,-34.569]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[1.87,-15.397]],"o":[[0,0],[0,0]],"v":[[144.764,-71.805],[147.742,-34.569]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":29,"s":[{"i":[[0,0],[0.779,-15.766]],"o":[[0,0],[0,0]],"v":[[142.609,-72.371],[147.742,-34.569]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[-0.311,-16.136]],"o":[[0,0],[0,0]],"v":[[140.453,-72.938],[147.742,-34.569]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[0,0],[-1.815,-16.645]],"o":[[0,0],[0,0]],"v":[[137.482,-73.719],[147.742,-34.569]],"c":false}]},{"i":{"x":0.67,"y":1},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[0,0],[-3.083,-17.075]],"o":[[0,0],[0,0]],"v":[[134.976,-74.378],[147.742,-34.569]],"c":false}]},{"t":33,"s":[{"i":[[0,0],[-3.811,-17.322]],"o":[[0,0],[0,0]],"v":[[133.538,-74.755],[147.742,-34.569]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.580392181873,0.376470595598,0.215686276555,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.33,"y":0},"t":0,"s":[{"i":[[0,0],[-9.007,-30.14]],"o":[[0,0],[0,0]],"v":[[76.723,-110.438],[108.941,-50.159]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1,"s":[{"i":[[0,0],[-9.581,-27.559]],"o":[[0,0],[0,0]],"v":[[83.177,-99.786],[109.329,-50.153]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2,"s":[{"i":[[0,0],[-10.58,-23.06]],"o":[[0,0],[0,0]],"v":[[89.428,-88.452],[110.004,-50.144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3,"s":[{"i":[[0,0],[-10.46,-25.194]],"o":[[0,0],[0,0]],"v":[[107.766,-59.2],[110.804,-50.132]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[{"i":[[0,0],[-7.638,-19.523]],"o":[[0,0],[0,0]],"v":[[109.132,-57.128],[111.385,-50.124]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[0,0],[-4.817,-13.853]],"o":[[0,0],[0,0]],"v":[[110.497,-55.057],[111.965,-50.115]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[{"i":[[0,0],[-1.996,-8.182]],"o":[[0,0],[0,0]],"v":[[111.863,-52.985],[112.546,-50.107]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7,"s":[{"i":[[0,0],[-0.929,-6.037]],"o":[[0,0],[0,0]],"v":[[112.38,-52.201],[112.766,-50.104]],"c":false}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[0,0],[0.139,-3.892]],"o":[[0,0],[0,0]],"v":[[112.896,-51.418],[112.986,-50.101]],"c":false}]},{"i":{"x":0,"y":1},"o":{"x":0.33,"y":0},"t":13,"s":[{"i":[[0,0],[0.95,-2.261]],"o":[[0,0],[0,0]],"v":[[113.289,-50.822],[113.153,-50.098]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":20,"s":[{"i":[[0,0],[0.95,-2.261]],"o":[[0,0],[0,0]],"v":[[113.289,-50.822],[113.153,-50.098]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,0],[0.139,-3.892]],"o":[[0,0],[0,0]],"v":[[112.896,-51.418],[112.986,-50.101]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[-0.929,-6.037]],"o":[[0,0],[0,0]],"v":[[112.38,-52.201],[112.766,-50.104]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[0,0],[-1.996,-8.182]],"o":[[0,0],[0,0]],"v":[[111.863,-52.985],[112.546,-50.107]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[-4.817,-13.853]],"o":[[0,0],[0,0]],"v":[[110.497,-55.057],[111.965,-50.115]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":29,"s":[{"i":[[0,0],[-7.638,-19.523]],"o":[[0,0],[0,0]],"v":[[109.132,-57.128],[111.385,-50.124]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[-10.46,-25.194]],"o":[[0,0],[0,0]],"v":[[107.766,-59.2],[110.804,-50.132]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[0,0],[-10.58,-23.06]],"o":[[0,0],[0,0]],"v":[[87.059,-94.242],[110.004,-50.144]],"c":false}]},{"i":{"x":0.67,"y":1},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[0,0],[-9.581,-27.559]],"o":[[0,0],[0,0]],"v":[[83.177,-99.786],[109.329,-50.153]],"c":false}]},{"t":33,"s":[{"i":[[0,0],[-9.007,-30.14]],"o":[[0,0],[0,0]],"v":[[76.723,-110.438],[108.941,-50.159]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.580392181873,0.376470595598,0.215686276555,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.33,"y":0},"t":0,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[20.093,-1.386],[17.668,8.661],[0.693,-7.275],[12.125,-0.373],[-1.732,-12.125],[5.123,-13.539],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-13.289,-6.514],[0,0],[-12.125,0.373],[0,0],[-4.85,12.818],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[133.538,-74.755],[98.895,-119.792],[76.723,-110.438],[56.63,-121.551],[41.387,-96.927],[24.412,-87.574],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.979,-0.606],[19.227,7.816],[0.374,-7.939],[14.95,0.067],[-2.001,-12.052],[4.803,-13.617],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-15.155,-5.865],[0,0],[-12.124,0.281],[0,0],[-4.547,12.891],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[134.976,-74.378],[100.543,-119.858],[83.177,-99.786],[54.901,-120.017],[39.884,-95.793],[23.168,-86.082],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.779,0.754],[25.318,6.343],[-0.183,-9.096],[19.875,0.834],[-2.47,-11.924],[4.244,-13.752],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-21.237,-4.732],[0,0],[-12.122,0.12],[0,0],[-4.018,13.02],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[137.482,-73.719],[98.556,-119.974],[89.428,-88.452],[51.888,-117.344],[37.264,-93.817],[21,-83.483],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.543,2.365],[25.168,4.598],[-0.842,-10.468],[25.713,1.744],[-3.026,-11.773],[3.582,-13.912],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-22.266,-3.389],[0,0],[-12.12,-0.072],[0,0],[-3.391,13.171],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[140.453,-72.938],[106.821,-120.112],[107.766,-59.2],[48.316,-114.175],[34.158,-91.473],[18.43,-80.402],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.372,3.535],[23.426,3.331],[0.83,-11.06],[25.616,1.64],[-3.43,-11.663],[3.102,-14.028],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-21.454,-2.415],[0,0],[-12.119,-0.211],[0,0],[-2.937,13.281],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[142.609,-72.371],[113.017,-120.8],[109.132,-57.128],[45.724,-111.875],[31.904,-89.773],[16.565,-78.166],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.2,4.704],[21.683,2.064],[2.503,-11.652],[25.519,1.536],[-3.833,-11.553],[2.621,-14.145],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-20.643,-1.441],[0,0],[-12.117,-0.349],[0,0],[-2.482,13.392],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[144.764,-71.805],[119.213,-121.489],[110.497,-55.057],[43.132,-109.576],[29.651,-88.073],[14.7,-75.93],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.029,5.874],[23.492,0.797],[4.175,-12.244],[25.421,1.432],[-4.237,-11.443],[2.141,-14.261],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-23.363,-0.467],[0,0],[-12.116,-0.488],[0,0],[-2.027,13.502],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[146.92,-71.238],[120.638,-122.177],[111.863,-52.985],[40.54,-107.276],[27.397,-86.373],[12.835,-73.694],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[18.964,6.316],[24.491,0.318],[4.808,-12.468],[25.385,1.393],[-4.389,-11.401],[1.959,-14.305],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-24.799,-0.098],[0,0],[-12.115,-0.541],[0,0],[-1.855,13.543],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[147.736,-71.024],[120.628,-122.437],[112.38,-52.201],[39.559,-106.406],[26.545,-85.729],[12.129,-72.848],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[18.899,6.759],[24.122,-0.161],[5.44,-12.692],[25.348,1.353],[-4.542,-11.36],[1.778,-14.349],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-24.893,0.27],[0,0],[-12.115,-0.593],[0,0],[-1.683,13.585],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[148.551,-70.809],[122.431,-122.698],[112.896,-51.418],[38.578,-105.537],[25.692,-85.086],[11.424,-72.003],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.33,"y":0},"t":13,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[18.85,7.095],[23.358,-0.525],[5.921,-12.862],[25.32,1.323],[-4.658,-11.328],[1.639,-14.383],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-24.47,0.55],[0,0],[-12.114,-0.633],[0,0],[-1.552,13.617],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[149.171,-70.646],[124.471,-122.896],[113.289,-50.822],[37.833,-104.875],[25.044,-84.597],[10.887,-71.36],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":20,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[18.85,7.095],[23.358,-0.525],[5.921,-12.862],[25.32,1.323],[-4.658,-11.328],[1.639,-14.383],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-24.47,0.55],[0,0],[-12.114,-0.633],[0,0],[-1.552,13.617],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[149.171,-70.646],[124.471,-122.896],[113.289,-50.822],[37.833,-104.875],[25.044,-84.597],[10.887,-71.36],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[18.899,6.759],[24.122,-0.161],[5.44,-12.692],[25.348,1.353],[-4.542,-11.36],[1.778,-14.349],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-24.893,0.27],[0,0],[-12.115,-0.593],[0,0],[-1.683,13.585],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[148.551,-70.809],[122.431,-122.698],[112.896,-51.418],[38.578,-105.537],[25.692,-85.086],[11.424,-72.003],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[18.964,6.316],[24.491,0.318],[4.808,-12.468],[25.385,1.393],[-4.389,-11.401],[1.959,-14.305],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-24.799,-0.098],[0,0],[-12.115,-0.541],[0,0],[-1.855,13.543],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[147.736,-71.024],[120.628,-122.437],[112.38,-52.201],[39.559,-106.406],[26.545,-85.729],[12.129,-72.848],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.029,5.874],[23.492,0.797],[4.175,-12.244],[25.421,1.432],[-4.237,-11.443],[2.141,-14.261],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-23.363,-0.467],[0,0],[-12.116,-0.488],[0,0],[-2.027,13.502],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[146.92,-71.238],[120.638,-122.177],[111.863,-52.985],[40.54,-107.276],[27.397,-86.373],[12.835,-73.694],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.2,4.704],[21.683,2.064],[2.503,-11.652],[25.519,1.536],[-3.833,-11.553],[2.621,-14.145],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-20.643,-1.441],[0,0],[-12.117,-0.349],[0,0],[-2.482,13.392],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[144.764,-71.805],[119.213,-121.489],[110.497,-55.057],[43.132,-109.576],[29.651,-88.073],[14.7,-75.93],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":29,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.372,3.535],[23.426,3.331],[0.83,-11.06],[25.616,1.64],[-3.43,-11.663],[3.102,-14.028],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-21.454,-2.415],[0,0],[-12.119,-0.211],[0,0],[-2.937,13.281],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[142.609,-72.371],[113.017,-120.8],[109.132,-57.128],[45.724,-111.875],[31.904,-89.773],[16.565,-78.166],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.543,2.365],[26.99,4.598],[-0.842,-10.468],[25.713,1.744],[-3.026,-11.773],[3.582,-13.912],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-23.878,-3.389],[0,0],[-12.12,-0.072],[0,0],[-3.391,13.171],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[140.453,-72.938],[104.486,-120.112],[107.766,-59.2],[48.316,-114.175],[34.158,-91.473],[18.43,-80.402],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.779,0.754],[21.946,6.343],[-0.183,-9.096],[19.875,0.834],[-2.47,-11.924],[4.244,-13.752],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-18.409,-4.732],[0,0],[-12.122,0.12],[0,0],[-4.018,13.02],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[137.482,-73.719],[103.415,-119.974],[87.059,-94.242],[51.888,-117.344],[37.264,-93.817],[21,-83.483],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.67,"y":1},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.979,-0.606],[19.227,7.816],[0.374,-7.939],[14.95,0.067],[-2.001,-12.052],[4.803,-13.617],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-15.155,-5.865],[0,0],[-12.124,0.281],[0,0],[-4.547,12.891],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[134.976,-74.378],[100.543,-119.858],[83.177,-99.786],[54.901,-120.017],[39.884,-95.793],[23.168,-86.082],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"t":33,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[20.093,-1.386],[17.668,8.661],[0.693,-7.275],[12.125,-0.373],[-1.732,-12.125],[5.123,-13.539],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-13.289,-6.514],[0,0],[-12.125,0.373],[0,0],[-4.85,12.818],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[133.538,-74.755],[98.895,-119.792],[76.723,-110.438],[56.63,-121.551],[41.387,-96.927],[24.412,-87.574],[41.676,-22.528],[71.867,54.464]],"c":true}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.580392181873,0.376470595598,0.215686276555,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.33,"y":0},"t":0,"s":[{"i":[[25.645,70.013],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[2.001,5.679],[4.557,24.917],[23.028,21.078],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[37.09,-38.535],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1,"s":[{"i":[[27.154,69.236],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[2.123,5.617],[4.557,24.917],[23.028,21.078],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[36.918,-37.468],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2,"s":[{"i":[[29.786,67.882],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[2.337,5.511],[4.557,24.917],[23.028,21.078],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[36.619,-35.609],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3,"s":[{"i":[[32.905,66.276],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[2.591,5.384],[4.557,24.917],[23.028,21.078],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[36.265,-33.405],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[{"i":[[35.169,65.112],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[2.775,5.292],[4.557,24.917],[23.028,21.077],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[36.008,-31.806],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[37.433,63.947],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[2.958,5.201],[4.557,24.917],[23.028,21.077],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[35.751,-30.207],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[{"i":[[39.696,62.782],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[3.142,5.109],[4.557,24.917],[23.028,21.078],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[35.493,-28.608],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7,"s":[{"i":[[40.553,62.342],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[3.212,5.074],[4.557,24.917],[23.028,21.078],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[35.396,-28.003],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[41.409,61.901],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[3.282,5.039],[4.557,24.917],[23.028,21.078],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[35.299,-27.398],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.33,"y":0},"t":13,"s":[{"i":[[42.06,61.566],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[3.334,5.013],[4.557,24.917],[23.028,21.078],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[35.225,-26.939],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":20,"s":[{"i":[[42.06,61.566],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[3.334,5.013],[4.557,24.917],[23.028,21.078],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[35.225,-26.939],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[41.409,61.901],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[3.282,5.039],[4.557,24.917],[23.028,21.078],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[35.299,-27.398],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[40.553,62.342],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[3.212,5.074],[4.557,24.917],[23.028,21.078],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[35.396,-28.003],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[39.696,62.782],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[3.142,5.109],[4.557,24.917],[23.028,21.078],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[35.493,-28.608],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[37.433,63.947],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[2.958,5.201],[4.557,24.917],[23.028,21.077],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[35.751,-30.207],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":29,"s":[{"i":[[35.169,65.112],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[2.775,5.292],[4.557,24.917],[23.028,21.077],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[36.008,-31.806],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[32.905,66.276],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[2.591,5.384],[4.557,24.917],[23.028,21.078],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[36.265,-33.405],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[29.786,67.882],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[2.337,5.511],[4.557,24.917],[23.028,21.078],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[36.619,-35.609],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"i":{"x":0.67,"y":1},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[27.154,69.236],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[2.123,5.617],[4.557,24.917],[23.028,21.078],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[36.918,-37.468],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]},{"t":33,"s":[{"i":[[25.645,70.013],[-0.889,-4.86],[-23.038,-21.088],[-10.215,25.635],[3.941,28.747],[1.172,4.577],[42.671,-3.275]],"o":[[2.001,5.679],[4.557,24.917],[23.028,21.078],[0,0],[-0.617,-4.506],[0,0],[-33.501,2.571]],"v":[[37.09,-38.535],[41.677,-22.529],[71.869,54.465],[165.232,31.599],[172.376,-15.517],[169.688,-29.218],[125.987,33.186]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.86274510622,0.690196096897,0.498039215803,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.33,"y":0},"t":0,"s":[{"i":[[-2.11,-7.28],[0.08,1.65],[-12.857,-21.206],[-4.596,-2.59],[0,0],[7.09,11.6],[0,0],[-12.323,-15.225],[-4.52,-8.91],[-0.32,1.03],[0,0],[0,0],[-15.78,-21.096],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[10.24,-0.71],[17.66,8.66],[0.7,-7.28],[12.13,-0.37],[-1.73,-12.13],[5.13,-13.54]],"o":[[0.81,-1.63],[-0.54,-10.39],[13.69,22.58],[6.049,3.409],[-2.93,-11.65],[-7.1,-11.59],[5.15,-18],[11.13,13.751],[4.52,8.92],[0.33,-1.03],[-4.26,-15.14],[1.37,-11.32],[18.31,24.479],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-13.29,-6.51],[0,0],[-12.12,0.38],[0,0],[-1.61,4.25]],"v":[[26.173,-69.753],[27.343,-74.753],[48.083,-70.753],[68.653,-33.843],[74.463,-39.163],[54.034,-80.303],[44.824,-98.643],[74.463,-95.213],[98.713,-51.333],[109.264,-48.413],[108.614,-52.253],[84.773,-102.243],[111.373,-92.133],[140.114,-32.473],[147.793,-35.753],[142.653,-52.793],[159.744,-55.513],[133.864,-74.753],[99.224,-119.793],[77.043,-110.433],[56.954,-121.553],[41.713,-96.923],[24.733,-87.573]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1,"s":[{"i":[[-2.268,-7.212],[0.118,1.643],[-13.3,-20.855],[-4.633,-2.505],[0,0],[7.333,11.406],[0,0],[-12.632,-14.904],[-4.861,-8.611],[-0.456,1.076],[0,0],[0,0],[-18.576,-21.931],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[10.182,-0.313],[20.141,7.926],[0.512,-7.745],[14.833,0.024],[-1.999,-12.057],[4.81,-13.618]],"o":[[0.771,-1.644],[-0.773,-10.349],[14.162,22.207],[6.099,3.297],[-3.129,-11.579],[-7.342,-11.397],[4.729,-18.066],[11.409,13.461],[4.943,8.676],[0.464,-1.076],[-4.111,-13.372],[0.983,-11.635],[19.324,23.531],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-15.156,-5.959],[0,0],[-12.118,0.268],[0,0],[-1.509,4.274]],"v":[[25.327,-68.352],[26.381,-73.364],[47.153,-69.844],[68.713,-33.723],[74.42,-39.136],[52.871,-79.502],[43.272,-97.582],[73.172,-94.372],[99.197,-51.267],[109.687,-48.614],[109.297,-52.402],[89.727,-93.131],[112.312,-94.306],[140.114,-32.473],[147.793,-35.753],[143.355,-52.648],[160.639,-53.94],[135.298,-74.363],[100.909,-119.876],[83.489,-99.761],[55.223,-120.029],[40.21,-95.797],[23.489,-86.089]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2,"s":[{"i":[[-2.545,-7.093],[0.183,1.632],[-14.072,-20.245],[-4.699,-2.357],[0,0],[7.756,11.068],[0,0],[-13.171,-14.343],[-5.457,-8.09],[-0.691,1.157],[0,0],[0,0],[-27.054,-23.386],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[10.08,0.38],[28.226,6.643],[0.185,-8.555],[19.546,0.712],[-2.468,-11.929],[4.251,-13.753]],"o":[[0.703,-1.668],[-1.18,-10.276],[14.984,21.557],[6.185,3.103],[-3.476,-11.455],[-7.764,-11.06],[3.994,-18.18],[11.896,12.955],[5.679,8.251],[0.698,-1.157],[-3.85,-10.289],[0.308,-12.183],[24.332,21.879],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-21.239,-4.999],[0,0],[-12.114,0.074],[0,0],[-1.334,4.317]],"v":[[23.852,-65.91],[24.703,-70.944],[45.531,-68.26],[68.818,-33.513],[74.345,-39.087],[50.843,-78.105],[40.568,-95.732],[70.921,-92.905],[100.041,-51.15],[110.425,-48.965],[110.489,-52.662],[98.362,-77.246],[110.708,-98.093],[140.114,-32.473],[147.793,-35.753],[144.578,-52.395],[162.2,-51.198],[137.8,-73.682],[99.055,-120.021],[89.726,-88.393],[52.207,-117.372],[37.588,-93.833],[21.319,-83.503]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3,"s":[{"i":[[-2.872,-6.952],[0.261,1.618],[-14.987,-19.521],[-4.777,-2.182],[0,0],[8.259,10.668],[0,0],[-13.81,-13.679],[-6.162,-7.473],[-0.971,1.252],[0,0],[0,0],[-29.229,-25.111],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[9.96,1.202],[29.592,5.13],[-0.203,-9.516],[25.134,1.527],[-3.025,-11.778],[3.589,-13.914]],"o":[[0.622,-1.696],[-1.662,-10.19],[15.958,20.786],[6.287,2.872],[-3.888,-11.309],[-8.263,-10.661],[3.124,-18.316],[12.473,12.355],[6.553,7.747],[0.976,-1.253],[-3.541,-6.635],[-0.492,-12.833],[23.186,19.92],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-22.267,-3.86],[0,0],[-12.11,-0.157],[0,0],[-1.126,4.367]],"v":[[22.104,-63.014],[22.714,-68.074],[43.608,-66.382],[68.942,-33.264],[74.256,-39.03],[48.44,-76.449],[37.362,-93.539],[68.253,-91.165],[101.041,-51.013],[111.301,-49.381],[111.902,-52.971],[108.6,-58.414],[115.889,-102.583],[140.114,-32.473],[147.793,-35.753],[146.029,-52.095],[164.05,-47.947],[140.765,-72.876],[107.332,-120.192],[108.047,-59.1],[48.632,-114.222],[34.48,-91.505],[18.747,-80.436]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[{"i":[[-3.11,-6.85],[0.317,1.608],[-15.651,-18.996],[-4.833,-2.055],[0,0],[8.623,10.377],[0,0],[-14.274,-13.198],[-6.674,-7.024],[-1.173,1.321],[0,0],[0,0],[-26.603,-24.789],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[9.873,1.798],[28.514,4.033],[1.71,-10.398],[24.919,1.564],[-3.428,-11.668],[3.108,-14.031]],"o":[[0.563,-1.716],[-2.012,-10.128],[16.666,20.227],[6.361,2.704],[-4.186,-11.202],[-8.626,-10.372],[2.492,-18.414],[12.892,11.92],[7.187,7.381],[1.178,-1.322],[-3.317,-3.983],[2.201,-13.941],[22.108,20.95],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-21.455,-3.034],[0,0],[-12.107,-0.325],[0,0],[-0.975,4.404]],"v":[[20.835,-60.914],[21.271,-65.991],[42.213,-65.019],[69.031,-33.083],[74.192,-38.989],[46.696,-75.247],[35.035,-91.948],[66.316,-89.904],[101.767,-50.913],[111.936,-49.683],[112.927,-53.195],[109.628,-56.151],[119.945,-104.517],[140.114,-32.473],[147.793,-35.753],[147.081,-51.877],[165.393,-45.588],[142.917,-72.29],[113.502,-120.905],[109.401,-56.998],[46.037,-111.936],[32.226,-89.816],[16.88,-78.211]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[-3.348,-6.747],[0.373,1.598],[-16.316,-18.47],[-4.89,-1.927],[0,0],[8.987,10.087],[0,0],[-14.738,-12.716],[-7.186,-6.576],[-1.376,1.391],[0,0],[0,0],[-23.977,-24.466],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[9.786,2.394],[27.436,2.935],[3.622,-11.28],[24.703,1.6],[-3.832,-11.558],[2.628,-14.147]],"o":[[0.505,-1.737],[-2.361,-10.066],[17.373,19.667],[6.436,2.537],[-4.485,-11.096],[-8.989,-10.082],[1.861,-18.512],[13.311,11.485],[7.82,7.015],[1.38,-1.391],[-3.093,-1.332],[4.894,-15.05],[21.03,21.98],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-20.643,-2.208],[0,0],[-12.104,-0.492],[0,0],[-0.825,4.44]],"v":[[19.566,-58.813],[19.828,-63.909],[40.818,-63.656],[69.121,-32.903],[74.127,-38.948],[44.952,-74.046],[32.709,-90.357],[64.38,-88.642],[102.493,-50.813],[112.571,-49.985],[113.952,-53.418],[110.657,-53.889],[124.001,-106.451],[140.114,-32.473],[147.793,-35.753],[148.134,-51.659],[166.736,-43.23],[145.068,-71.705],[119.672,-121.618],[110.755,-54.897],[43.443,-109.651],[29.971,-88.126],[15.014,-75.986]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[{"i":[[-3.586,-6.645],[0.43,1.588],[-16.98,-17.945],[-4.946,-1.8],[0,0],[9.352,9.796],[0,0],[-15.201,-12.234],[-7.698,-6.128],[-1.579,1.46],[0,0],[0,0],[-25.153,-24.144],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[9.699,2.99],[31.052,1.837],[5.534,-12.162],[24.488,1.636],[-4.236,-11.448],[2.147,-14.264]],"o":[[0.446,-1.758],[-2.711,-10.004],[18.08,19.108],[6.51,2.369],[-4.783,-10.99],[-9.351,-9.793],[1.229,-18.611],[13.73,11.05],[8.454,6.649],[1.581,-1.461],[-2.869,1.32],[7.587,-16.158],[23.505,23.01],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-23.364,-1.382],[0,0],[-12.101,-0.66],[0,0],[-0.674,4.477]],"v":[[18.298,-56.712],[18.385,-61.827],[39.423,-62.294],[69.211,-32.722],[74.063,-38.906],[43.208,-72.844],[30.383,-88.766],[62.444,-87.38],[103.219,-50.714],[113.206,-50.287],[114.977,-53.642],[111.685,-51.626],[123.757,-108.385],[140.114,-32.473],[147.793,-35.753],[149.186,-51.441],[168.078,-40.871],[147.22,-71.12],[121.147,-122.331],[112.108,-52.796],[40.849,-107.365],[27.716,-86.437],[13.148,-73.761]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7,"s":[{"i":[[-3.676,-6.607],[0.451,1.585],[-17.231,-17.747],[-4.967,-1.752],[0,0],[9.49,9.686],[0,0],[-15.377,-12.052],[-7.892,-5.959],[-1.655,1.486],[0,0],[0,0],[-25.857,-24.022],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[9.666,3.215],[32.961,1.422],[6.257,-12.495],[24.407,1.65],[-4.388,-11.406],[1.965,-14.308]],"o":[[0.424,-1.765],[-2.843,-9.98],[18.347,18.896],[6.538,2.306],[-4.896,-10.95],[-9.489,-9.683],[0.99,-18.648],[13.888,10.885],[8.694,6.511],[1.657,-1.487],[-2.784,2.323],[8.606,-16.577],[24.824,23.399],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-24.8,-1.07],[0,0],[-12.099,-0.723],[0,0],[-0.617,4.491]],"v":[[17.818,-55.917],[17.84,-61.039],[38.895,-61.778],[69.245,-32.654],[74.038,-38.891],[42.549,-72.39],[29.503,-88.164],[61.712,-86.902],[103.493,-50.676],[113.446,-50.401],[115.364,-53.727],[112.074,-50.77],[122.963,-109.116],[140.114,-32.473],[147.793,-35.753],[149.584,-51.359],[168.586,-39.978],[148.034,-70.899],[121.165,-122.6],[112.621,-52.001],[39.867,-106.501],[26.863,-85.798],[12.442,-72.92]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[-3.765,-6.568],[0.472,1.581],[-17.482,-17.548],[-4.989,-1.704],[0,0],[9.627,9.576],[0,0],[-15.552,-11.869],[-8.086,-5.789],[-1.732,1.512],[0,0],[0,0],[-25.082,-23.9],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[9.633,3.441],[33.086,1.007],[6.981,-12.829],[24.325,1.663],[-4.541,-11.365],[1.783,-14.352]],"o":[[0.402,-1.773],[-2.976,-9.957],[18.615,18.685],[6.566,2.243],[-5.009,-10.909],[-9.626,-9.574],[0.751,-18.685],[14.047,10.72],[8.933,6.372],[1.734,-1.513],[-2.699,3.326],[9.625,-16.997],[24.788,23.789],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-24.894,-0.757],[0,0],[-12.098,-0.786],[0,0],[-0.56,4.505]],"v":[[17.338,-55.122],[17.294,-60.251],[38.367,-61.263],[69.279,-32.586],[74.014,-38.875],[41.889,-71.935],[28.623,-87.563],[60.979,-86.425],[103.768,-50.638],[113.686,-50.515],[115.752,-53.811],[112.463,-49.914],[123.764,-109.848],[140.114,-32.473],[147.793,-35.753],[149.982,-51.277],[169.094,-39.086],[148.847,-70.677],[122.966,-122.87],[113.133,-51.206],[38.886,-105.636],[26.01,-85.159],[11.736,-72.078]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.33,"y":0},"t":13,"s":[{"i":[[-3.834,-6.538],[0.488,1.578],[-17.673,-17.397],[-5.005,-1.667],[0,0],[9.732,9.493],[0,0],[-15.686,-11.731],[-8.233,-5.66],[-1.79,1.532],[0,0],[0,0],[-23.985,-23.807],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[9.608,3.612],[32.523,0.691],[7.531,-13.082],[24.263,1.674],[-4.657,-11.333],[1.645,-14.386]],"o":[[0.385,-1.779],[-3.076,-9.939],[18.818,18.524],[6.588,2.194],[-5.095,-10.879],[-9.73,-9.49],[0.57,-18.714],[14.167,10.595],[9.116,6.267],[1.792,-1.533],[-2.635,4.089],[10.399,-17.315],[24.266,24.085],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-24.47,-0.52],[0,0],[-12.097,-0.835],[0,0],[-0.516,4.515]],"v":[[16.973,-54.518],[16.879,-59.652],[37.966,-60.871],[69.305,-32.534],[73.995,-38.863],[41.387,-71.59],[27.954,-87.105],[60.423,-86.062],[103.976,-50.609],[113.869,-50.602],[116.047,-53.876],[112.759,-49.264],[125.003,-110.404],[140.114,-32.473],[147.793,-35.753],[150.285,-51.214],[169.48,-38.408],[149.466,-70.509],[124.993,-123.075],[113.522,-50.602],[38.14,-104.979],[25.361,-84.673],[11.199,-71.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":20,"s":[{"i":[[-3.834,-6.538],[0.488,1.578],[-17.673,-17.397],[-5.005,-1.667],[0,0],[9.732,9.493],[0,0],[-15.686,-11.731],[-8.233,-5.66],[-1.79,1.532],[0,0],[0,0],[-23.985,-23.807],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[9.608,3.612],[32.523,0.691],[7.531,-13.082],[24.263,1.674],[-4.657,-11.333],[1.645,-14.386]],"o":[[0.385,-1.779],[-3.076,-9.939],[18.818,18.524],[6.588,2.194],[-5.095,-10.879],[-9.73,-9.49],[0.57,-18.714],[14.167,10.595],[9.116,6.267],[1.792,-1.533],[-2.635,4.089],[10.399,-17.315],[24.266,24.085],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-24.47,-0.52],[0,0],[-12.097,-0.835],[0,0],[-0.516,4.515]],"v":[[16.973,-54.518],[16.879,-59.652],[37.966,-60.871],[69.305,-32.534],[73.995,-38.863],[41.387,-71.59],[27.954,-87.105],[60.423,-86.062],[103.976,-50.609],[113.869,-50.602],[116.047,-53.876],[112.759,-49.264],[125.003,-110.404],[140.114,-32.473],[147.793,-35.753],[150.285,-51.214],[169.48,-38.408],[149.466,-70.509],[124.993,-123.075],[113.522,-50.602],[38.14,-104.979],[25.361,-84.673],[11.199,-71.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[-3.765,-6.568],[0.472,1.581],[-17.482,-17.548],[-4.989,-1.704],[0,0],[9.627,9.576],[0,0],[-15.552,-11.869],[-8.086,-5.789],[-1.732,1.512],[0,0],[0,0],[-25.082,-23.9],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[9.633,3.441],[33.086,1.007],[6.981,-12.829],[24.325,1.663],[-4.541,-11.365],[1.783,-14.352]],"o":[[0.402,-1.773],[-2.976,-9.957],[18.615,18.685],[6.566,2.243],[-5.009,-10.909],[-9.626,-9.574],[0.751,-18.685],[14.047,10.72],[8.933,6.372],[1.734,-1.513],[-2.699,3.326],[9.625,-16.997],[24.788,23.789],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-24.894,-0.757],[0,0],[-12.098,-0.786],[0,0],[-0.56,4.505]],"v":[[17.338,-55.122],[17.294,-60.251],[38.367,-61.263],[69.279,-32.586],[74.014,-38.875],[41.889,-71.935],[28.623,-87.563],[60.979,-86.425],[103.768,-50.638],[113.686,-50.515],[115.752,-53.811],[112.463,-49.914],[123.764,-109.848],[140.114,-32.473],[147.793,-35.753],[149.982,-51.277],[169.094,-39.086],[148.847,-70.677],[122.966,-122.87],[113.133,-51.206],[38.886,-105.636],[26.01,-85.159],[11.736,-72.078]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[-3.676,-6.607],[0.451,1.585],[-17.231,-17.747],[-4.967,-1.752],[0,0],[9.49,9.686],[0,0],[-15.377,-12.052],[-7.892,-5.959],[-1.655,1.486],[0,0],[0,0],[-25.857,-24.022],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[9.666,3.215],[32.961,1.422],[6.257,-12.495],[24.407,1.65],[-4.388,-11.406],[1.965,-14.308]],"o":[[0.424,-1.765],[-2.843,-9.98],[18.347,18.896],[6.538,2.306],[-4.896,-10.95],[-9.489,-9.683],[0.99,-18.648],[13.888,10.885],[8.694,6.511],[1.657,-1.487],[-2.784,2.323],[8.606,-16.577],[24.824,23.399],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-24.8,-1.07],[0,0],[-12.099,-0.723],[0,0],[-0.617,4.491]],"v":[[17.818,-55.917],[17.84,-61.039],[38.895,-61.778],[69.245,-32.654],[74.038,-38.891],[42.549,-72.39],[29.503,-88.164],[61.712,-86.902],[103.493,-50.676],[113.446,-50.401],[115.364,-53.727],[112.074,-50.77],[122.963,-109.116],[140.114,-32.473],[147.793,-35.753],[149.584,-51.359],[168.586,-39.978],[148.034,-70.899],[121.165,-122.6],[112.621,-52.001],[39.867,-106.501],[26.863,-85.798],[12.442,-72.92]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[-3.586,-6.645],[0.43,1.588],[-16.98,-17.945],[-4.946,-1.8],[0,0],[9.352,9.796],[0,0],[-15.201,-12.234],[-7.698,-6.128],[-1.579,1.46],[0,0],[0,0],[-25.153,-24.144],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[9.699,2.99],[31.052,1.837],[5.534,-12.162],[24.488,1.636],[-4.236,-11.448],[2.147,-14.264]],"o":[[0.446,-1.758],[-2.711,-10.004],[18.08,19.108],[6.51,2.369],[-4.783,-10.99],[-9.351,-9.793],[1.229,-18.611],[13.73,11.05],[8.454,6.649],[1.581,-1.461],[-2.869,1.32],[7.587,-16.158],[23.505,23.01],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-23.364,-1.382],[0,0],[-12.101,-0.66],[0,0],[-0.674,4.477]],"v":[[18.298,-56.712],[18.385,-61.827],[39.423,-62.294],[69.211,-32.722],[74.063,-38.906],[43.208,-72.844],[30.383,-88.766],[62.444,-87.38],[103.219,-50.714],[113.206,-50.287],[114.977,-53.642],[111.685,-51.626],[123.757,-108.385],[140.114,-32.473],[147.793,-35.753],[149.186,-51.441],[168.078,-40.871],[147.22,-71.12],[121.147,-122.331],[112.108,-52.796],[40.849,-107.365],[27.716,-86.437],[13.148,-73.761]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[-3.348,-6.747],[0.373,1.598],[-16.316,-18.47],[-4.89,-1.927],[0,0],[8.987,10.087],[0,0],[-14.738,-12.716],[-7.186,-6.576],[-1.376,1.391],[0,0],[0,0],[-23.977,-24.466],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[9.786,2.394],[27.436,2.935],[3.622,-11.28],[24.703,1.6],[-3.832,-11.558],[2.628,-14.147]],"o":[[0.505,-1.737],[-2.361,-10.066],[17.373,19.667],[6.436,2.537],[-4.485,-11.096],[-8.989,-10.082],[1.861,-18.512],[13.311,11.485],[7.82,7.015],[1.38,-1.391],[-3.093,-1.332],[4.894,-15.05],[21.03,21.98],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-20.643,-2.208],[0,0],[-12.104,-0.492],[0,0],[-0.825,4.44]],"v":[[19.566,-58.813],[19.828,-63.909],[40.818,-63.656],[69.121,-32.903],[74.127,-38.948],[44.952,-74.046],[32.709,-90.357],[64.38,-88.642],[102.493,-50.813],[112.571,-49.985],[113.952,-53.418],[110.657,-53.889],[124.001,-106.451],[140.114,-32.473],[147.793,-35.753],[148.134,-51.659],[166.736,-43.23],[145.068,-71.705],[119.672,-121.618],[110.755,-54.897],[43.443,-109.651],[29.971,-88.126],[15.014,-75.986]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":29,"s":[{"i":[[-3.11,-6.85],[0.317,1.608],[-15.651,-18.996],[-4.833,-2.055],[0,0],[8.623,10.377],[0,0],[-14.274,-13.198],[-6.674,-7.024],[-1.173,1.321],[0,0],[0,0],[-26.603,-24.789],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[9.873,1.798],[28.514,4.033],[1.71,-10.398],[24.919,1.564],[-3.428,-11.668],[3.108,-14.031]],"o":[[0.563,-1.716],[-2.012,-10.128],[16.666,20.227],[6.361,2.704],[-4.186,-11.202],[-8.626,-10.372],[2.492,-18.414],[12.892,11.92],[7.187,7.381],[1.178,-1.322],[-3.317,-3.983],[2.201,-13.941],[22.108,20.95],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-21.455,-3.034],[0,0],[-12.107,-0.325],[0,0],[-0.975,4.404]],"v":[[20.835,-60.914],[21.271,-65.991],[42.213,-65.019],[69.031,-33.083],[74.192,-38.989],[46.696,-75.247],[35.035,-91.948],[66.316,-89.904],[101.767,-50.913],[111.936,-49.683],[112.927,-53.195],[109.628,-56.151],[119.945,-104.517],[140.114,-32.473],[147.793,-35.753],[147.081,-51.877],[165.393,-45.588],[142.917,-72.29],[113.502,-120.905],[109.401,-56.998],[46.037,-111.936],[32.226,-89.816],[16.88,-78.211]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-2.872,-6.952],[0.261,1.618],[-14.987,-19.521],[-4.777,-2.182],[0,0],[8.259,10.668],[0,0],[-13.81,-13.679],[-6.162,-7.473],[-0.971,1.252],[0,0],[0,0],[-31.345,-25.111],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[9.96,1.202],[31.735,5.13],[-0.203,-9.516],[25.134,1.527],[-3.025,-11.778],[3.589,-13.914]],"o":[[0.622,-1.696],[-1.662,-10.19],[15.958,20.786],[6.287,2.872],[-3.888,-11.309],[-8.263,-10.661],[3.124,-18.316],[12.473,12.355],[6.553,7.747],[0.976,-1.253],[-3.541,-6.635],[-0.492,-12.833],[24.865,19.92],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-23.879,-3.86],[0,0],[-12.11,-0.157],[0,0],[-1.126,4.367]],"v":[[22.104,-63.014],[22.714,-68.074],[43.608,-66.382],[68.942,-33.264],[74.256,-39.03],[48.44,-76.449],[37.362,-93.539],[68.253,-91.165],[101.041,-51.013],[111.301,-49.381],[111.902,-52.971],[108.6,-58.414],[114.211,-102.583],[140.114,-32.473],[147.793,-35.753],[146.029,-52.095],[164.05,-47.947],[140.765,-72.876],[105.034,-120.192],[108.047,-59.1],[48.632,-114.222],[34.48,-91.505],[18.747,-80.436]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[-2.545,-7.093],[0.183,1.632],[-14.072,-20.245],[-4.699,-2.357],[0,0],[7.756,11.068],[0,0],[-13.171,-14.343],[-5.457,-8.09],[-0.691,1.157],[0,0],[0,0],[-23.45,-23.386],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[10.08,0.38],[24.465,6.647],[0.185,-8.555],[19.546,0.712],[-2.468,-11.929],[4.251,-13.753]],"o":[[0.703,-1.668],[-1.18,-10.276],[14.984,21.557],[6.185,3.103],[-3.476,-11.455],[-7.764,-11.06],[3.994,-18.18],[11.896,12.955],[5.679,8.251],[0.698,-1.157],[-3.85,-10.289],[0.308,-12.183],[21.091,21.879],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-18.41,-4.999],[0,0],[-12.114,0.074],[0,0],[-1.334,4.317]],"v":[[23.852,-65.91],[24.703,-70.944],[45.531,-68.26],[68.818,-33.513],[74.345,-39.087],[50.843,-78.105],[40.568,-95.732],[70.921,-92.905],[100.041,-51.15],[110.425,-48.965],[110.489,-52.662],[98.362,-77.246],[113.949,-98.093],[140.114,-32.473],[147.793,-35.753],[144.578,-52.395],[162.2,-51.198],[137.8,-73.682],[103.848,-120.021],[87.357,-94.182],[52.207,-117.372],[37.588,-93.833],[21.319,-83.503]],"c":true}]},{"i":{"x":0.67,"y":1},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[-2.268,-7.212],[0.118,1.643],[-13.3,-20.855],[-4.633,-2.505],[0,0],[7.333,11.406],[0,0],[-12.632,-14.904],[-4.861,-8.611],[-0.456,1.076],[0,0],[0,0],[-18.576,-21.931],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[10.182,-0.313],[20.141,7.926],[0.512,-7.745],[14.833,0.024],[-1.999,-12.057],[4.81,-13.618]],"o":[[0.771,-1.644],[-0.773,-10.349],[14.162,22.207],[6.099,3.297],[-3.129,-11.579],[-7.342,-11.397],[4.729,-18.066],[11.409,13.461],[4.943,8.676],[0.464,-1.076],[-4.111,-13.372],[0.983,-11.635],[19.324,23.531],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-15.156,-5.959],[0,0],[-12.118,0.268],[0,0],[-1.509,4.274]],"v":[[25.327,-68.352],[26.381,-73.364],[47.153,-69.844],[68.713,-33.723],[74.42,-39.136],[52.871,-79.502],[43.272,-97.582],[73.172,-94.372],[99.197,-51.267],[109.687,-48.614],[109.297,-52.402],[89.727,-93.131],[112.312,-94.306],[140.114,-32.473],[147.793,-35.753],[143.355,-52.648],[160.639,-53.94],[135.298,-74.363],[100.909,-119.876],[83.489,-99.761],[55.223,-120.029],[40.21,-95.797],[23.489,-86.089]],"c":true}]},{"t":33,"s":[{"i":[[-2.11,-7.28],[0.08,1.65],[-12.857,-21.206],[-4.596,-2.59],[0,0],[7.09,11.6],[0,0],[-12.323,-15.225],[-4.52,-8.91],[-0.32,1.03],[0,0],[0,0],[-15.78,-21.096],[-6.251,-3.228],[0,0],[0,0],[-0.5,-0.5],[10.24,-0.71],[17.66,8.66],[0.7,-7.28],[12.13,-0.37],[-1.73,-12.13],[5.13,-13.54]],"o":[[0.81,-1.63],[-0.54,-10.39],[13.69,22.58],[6.049,3.409],[-2.93,-11.65],[-7.1,-11.59],[5.15,-18],[11.13,13.751],[4.52,8.92],[0.33,-1.03],[-4.26,-15.14],[1.37,-11.32],[18.31,24.479],[5.494,2.837],[0,0],[3.64,-15.88],[-6.75,-11.84],[0,0],[-13.29,-6.51],[0,0],[-12.12,0.38],[0,0],[-1.61,4.25]],"v":[[26.173,-69.753],[27.343,-74.753],[48.083,-70.753],[68.653,-33.843],[74.463,-39.163],[54.034,-80.303],[44.824,-98.643],[74.463,-95.213],[98.713,-51.333],[109.264,-48.413],[108.614,-52.253],[84.773,-102.243],[111.373,-92.133],[140.114,-32.473],[147.793,-35.753],[142.653,-52.793],[159.744,-55.513],[133.864,-74.753],[99.224,-119.793],[77.043,-110.433],[56.954,-121.553],[41.713,-96.923],[24.733,-87.573]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.988235294819,0.890196084976,0.780392169952,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.33,"y":0},"t":0,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[20.093,-1.386],[17.668,8.661],[0.693,-7.275],[12.125,-0.373],[-1.732,-12.125],[5.123,-13.539],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-13.289,-6.514],[0,0],[-12.125,0.373],[0,0],[-4.85,12.818],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[133.538,-74.755],[98.895,-119.792],[76.723,-110.438],[56.63,-121.551],[41.387,-96.927],[24.412,-87.574],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.979,-0.606],[20.15,7.929],[0.456,-7.72],[13.231,-0.157],[-2.001,-12.052],[4.803,-13.617],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-15.155,-5.963],[0,0],[-12.122,0.248],[0,0],[-4.547,12.891],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[134.976,-74.378],[100.543,-119.858],[83.177,-99.786],[54.901,-120.017],[39.884,-95.793],[23.168,-86.082],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.779,0.754],[28.236,6.652],[0.042,-8.496],[15.159,0.222],[-2.47,-11.924],[4.244,-13.752],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-21.238,-5.003],[0,0],[-12.116,0.029],[0,0],[-4.018,13.02],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[137.482,-73.719],[98.556,-119.974],[89.428,-88.452],[51.888,-117.344],[37.264,-93.817],[21,-83.483],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.543,2.365],[29.604,5.139],[-0.448,-9.416],[17.445,0.67],[-3.026,-11.773],[3.582,-13.912],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-22.266,-3.865],[0,0],[-12.11,-0.231],[0,0],[-3.391,13.171],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[140.453,-72.938],[106.821,-120.112],[107.766,-59.2],[48.316,-114.175],[34.158,-91.473],[18.43,-80.402],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.372,3.535],[28.525,4.041],[1.518,-9.943],[19.104,0.995],[-3.43,-11.663],[3.102,-14.028],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-21.455,-3.039],[0,0],[-12.105,-0.42],[0,0],[-2.937,13.281],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[142.609,-72.371],[113.017,-120.8],[109.132,-57.128],[45.724,-111.875],[31.904,-89.773],[16.565,-78.166],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.2,4.704],[27.446,2.943],[3.483,-10.469],[20.762,1.32],[-3.833,-11.553],[2.621,-14.145],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-20.643,-2.213],[0,0],[-12.1,-0.608],[0,0],[-2.482,13.392],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[144.764,-71.805],[119.213,-121.489],[110.497,-55.057],[43.132,-109.576],[29.651,-88.073],[14.7,-75.93],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.029,5.874],[31.063,1.845],[5.448,-10.996],[22.421,1.646],[-4.237,-11.443],[2.141,-14.261],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-23.364,-1.388],[0,0],[-12.095,-0.797],[0,0],[-2.027,13.502],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[146.92,-71.238],[120.638,-122.177],[111.863,-52.985],[40.54,-107.276],[27.397,-86.373],[12.835,-73.694],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[18.964,6.316],[32.973,1.43],[6.192,-11.196],[23.048,1.769],[-4.389,-11.401],[1.959,-14.305],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-24.8,-1.075],[0,0],[-12.093,-0.868],[0,0],[-1.855,13.543],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[147.736,-71.024],[120.628,-122.437],[112.38,-52.201],[39.559,-106.406],[26.545,-85.729],[12.129,-72.848],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[18.899,6.759],[33.097,1.014],[6.935,-11.395],[23.676,1.892],[-4.542,-11.36],[1.778,-14.349],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-24.894,-0.763],[0,0],[-12.091,-0.939],[0,0],[-1.683,13.585],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[148.551,-70.809],[122.431,-122.698],[112.896,-51.418],[38.578,-105.537],[25.692,-85.086],[11.424,-72.003],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.33,"y":0},"t":13,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[18.85,7.095],[32.534,0.698],[7.5,-11.546],[24.153,1.985],[-4.658,-11.328],[1.639,-14.383],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-24.471,-0.525],[0,0],[-12.09,-0.994],[0,0],[-1.552,13.617],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[149.171,-70.646],[124.471,-122.896],[113.289,-50.822],[37.833,-104.875],[25.044,-84.597],[10.887,-71.36],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":20,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[18.85,7.095],[32.534,0.698],[7.5,-11.546],[24.153,1.985],[-4.658,-11.328],[1.639,-14.383],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-24.471,-0.525],[0,0],[-12.09,-0.994],[0,0],[-1.552,13.617],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[149.171,-70.646],[124.471,-122.896],[113.289,-50.822],[37.833,-104.875],[25.044,-84.597],[10.887,-71.36],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[18.899,6.759],[33.097,1.014],[6.935,-11.395],[23.676,1.892],[-4.542,-11.36],[1.778,-14.349],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-24.894,-0.763],[0,0],[-12.091,-0.939],[0,0],[-1.683,13.585],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[148.551,-70.809],[122.431,-122.698],[112.896,-51.418],[38.578,-105.537],[25.692,-85.086],[11.424,-72.003],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[18.964,6.316],[32.973,1.43],[6.192,-11.196],[23.048,1.769],[-4.389,-11.401],[1.959,-14.305],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-24.8,-1.075],[0,0],[-12.093,-0.868],[0,0],[-1.855,13.543],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[147.736,-71.024],[120.628,-122.437],[112.38,-52.201],[39.559,-106.406],[26.545,-85.729],[12.129,-72.848],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.029,5.874],[31.063,1.845],[5.448,-10.996],[22.421,1.646],[-4.237,-11.443],[2.141,-14.261],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-23.364,-1.388],[0,0],[-12.095,-0.797],[0,0],[-2.027,13.502],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[146.92,-71.238],[120.638,-122.177],[111.863,-52.985],[40.54,-107.276],[27.397,-86.373],[12.835,-73.694],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.2,4.704],[27.446,2.943],[3.483,-10.469],[20.762,1.32],[-3.833,-11.553],[2.621,-14.145],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-20.643,-2.213],[0,0],[-12.1,-0.608],[0,0],[-2.482,13.392],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[144.764,-71.805],[119.213,-121.489],[110.497,-55.057],[43.132,-109.576],[29.651,-88.073],[14.7,-75.93],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":29,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.372,3.535],[28.525,4.041],[1.518,-9.943],[19.104,0.995],[-3.43,-11.663],[3.102,-14.028],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-21.455,-3.039],[0,0],[-12.105,-0.42],[0,0],[-2.937,13.281],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[142.609,-72.371],[113.017,-120.8],[109.132,-57.128],[45.724,-111.875],[31.904,-89.773],[16.565,-78.166],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.543,2.365],[31.747,5.139],[-0.448,-9.416],[17.445,0.67],[-3.026,-11.773],[3.582,-13.912],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-23.878,-3.865],[0,0],[-12.11,-0.231],[0,0],[-3.391,13.171],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[140.453,-72.938],[104.486,-120.112],[107.766,-59.2],[48.316,-114.175],[34.158,-91.473],[18.43,-80.402],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.779,0.754],[24.475,6.652],[0.042,-8.496],[15.159,0.222],[-2.47,-11.924],[4.244,-13.752],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-18.409,-5.003],[0,0],[-12.116,0.029],[0,0],[-4.018,13.02],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[137.482,-73.719],[103.415,-119.974],[87.059,-94.242],[51.888,-117.344],[37.264,-93.817],[21,-83.483],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"i":{"x":0.67,"y":1},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[19.979,-0.606],[20.15,7.929],[0.456,-7.72],[13.231,-0.157],[-2.001,-12.052],[4.803,-13.617],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-15.155,-5.963],[0,0],[-12.122,0.248],[0,0],[-4.547,12.891],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[134.976,-74.378],[100.543,-119.858],[83.177,-99.786],[54.901,-120.017],[39.884,-95.793],[23.168,-86.082],[41.676,-22.528],[71.867,54.464]],"c":true}]},{"t":33,"s":[{"i":[[-10.22,25.636],[3.943,28.75],[20.093,-1.386],[17.668,8.661],[0.693,-7.275],[12.125,-0.373],[-1.732,-12.125],[5.123,-13.539],[-3.788,-20.696],[-23.034,-21.084]],"o":[[0,0],[-3.849,-28.061],[0,0],[-13.289,-6.514],[0,0],[-12.125,0.373],[0,0],[-4.85,12.818],[4.56,24.912],[23.034,21.084]],"v":[[165.237,31.599],[172.377,-15.516],[133.538,-74.755],[98.895,-119.792],[76.723,-110.438],[56.63,-121.551],[41.387,-96.927],[24.412,-87.574],[41.676,-22.528],[71.867,54.464]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.913725495338,0.78823530674,0.647058844566,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":33,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"sr":1,"ks":{"o":{"a":0,"k":20},"p":{"a":0,"k":[341.929,268.75,0]},"a":{"a":0,"k":[87.294,20.789,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.33,"y":0},"t":0,"s":[{"i":[[-12.801,-44.719],[-3.605,-17.788],[-24.083,-15.726],[-2.877,-10.794],[30.317,-18.567],[-14.52,12.287],[0.825,6.413],[-2.342,5.994],[-0.65,2.073],[6.008,28.397],[19.934,-2.839],[18.256,7.361],[0.171,-7.306],[12.067,-1.247],[-2.597,-11.969]],"o":[[3.364,11.751],[6.529,32.214],[7.337,4.667],[2.085,7.822],[32.946,-6.739],[-5.103,-21.33],[-1.456,-11.312],[1.233,-2.004],[0,0],[-5.862,-27.709],[0,0],[-13.721,-5.533],[0,0],[-12.067,1.247],[0,0]],"v":[[12.775,-39.308],[27.656,6.086],[67.904,85.681],[85.931,109.29],[51.49,160.266],[147.472,120.625],[138.368,85.178],[141.966,58.001],[144.817,51.889],[148.546,4.38],[105.537,-51.897],[67.733,-94.328],[46.297,-83.398],[35.29,-89.718],[29.285,-75.875]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.33,"y":0},"t":13,"s":[{"i":[[-12.801,-44.719],[-7.19,-16.664],[-24.083,-15.726],[-2.877,-10.794],[30.317,-18.567],[-14.52,12.287],[0.825,6.413],[-2.342,5.994],[-0.65,2.073],[6.008,28.397],[19.934,-2.839],[-2.869,-83.633],[0.171,-7.306],[12.067,-1.247],[-2.597,-11.969]],"o":[[3.364,11.751],[12.709,29.454],[7.337,4.667],[2.085,7.822],[32.946,-6.739],[-5.103,-21.33],[-1.456,-11.312],[1.233,-2.004],[0,0],[-5.862,-27.709],[0,0],[0.507,14.786],[0,0],[-12.067,1.247],[0,0]],"v":[[-1.225,69.692],[17.656,113.086],[49.904,144.181],[68.931,145.79],[51.49,160.266],[147.472,120.625],[117.368,125.178],[120.966,98.001],[123.817,91.889],[134.546,113.38],[95.537,-17.397],[79.733,56.172],[68.297,62.602],[21.29,19.282],[15.285,33.125]],"c":true}]},{"i":{"x":0.67,"y":1},"o":{"x":1,"y":0},"t":20,"s":[{"i":[[-12.801,-44.719],[-7.19,-16.664],[-24.083,-15.726],[-2.877,-10.794],[30.317,-18.567],[-14.52,12.287],[0.825,6.413],[-2.342,5.994],[-0.65,2.073],[6.008,28.397],[19.934,-2.839],[-2.869,-83.633],[0.171,-7.306],[12.067,-1.247],[-2.597,-11.969]],"o":[[3.364,11.751],[12.709,29.454],[7.337,4.667],[2.085,7.822],[32.946,-6.739],[-5.103,-21.33],[-1.456,-11.312],[1.233,-2.004],[0,0],[-5.862,-27.709],[0,0],[0.507,14.786],[0,0],[-12.067,1.247],[0,0]],"v":[[-1.225,69.692],[17.656,113.086],[49.904,144.181],[68.931,145.79],[51.49,160.266],[147.472,120.625],[117.368,125.178],[120.966,98.001],[123.817,91.889],[134.546,113.38],[95.537,-17.397],[79.733,56.172],[68.297,62.602],[21.29,19.282],[15.285,33.125]],"c":true}]},{"t":33,"s":[{"i":[[-12.801,-44.719],[-3.605,-17.788],[-24.083,-15.726],[-2.877,-10.794],[30.317,-18.567],[-14.52,12.287],[0.825,6.413],[-2.342,5.994],[-0.65,2.073],[6.008,28.397],[19.934,-2.839],[18.256,7.361],[0.171,-7.306],[12.067,-1.247],[-2.597,-11.969]],"o":[[3.364,11.751],[6.529,32.214],[7.337,4.667],[2.085,7.822],[32.946,-6.739],[-5.103,-21.33],[-1.456,-11.312],[1.233,-2.004],[0,0],[-5.862,-27.709],[0,0],[-13.721,-5.533],[0,0],[-12.067,1.247],[0,0]],"v":[[12.775,-39.308],[27.656,6.086],[67.904,85.681],[85.931,109.29],[51.49,160.266],[147.472,120.625],[138.368,85.178],[141.966,58.001],[144.817,51.889],[148.546,4.38],[105.537,-51.897],[67.733,-94.328],[46.297,-83.398],[35.29,-89.718],[29.285,-75.875]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":33,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"sr":1,"ks":{"o":{"a":0,"k":20},"p":{"a":0,"k":[178.129,267.75,0]},"a":{"a":0,"k":[87.294,20.789,0]},"s":{"a":0,"k":[-100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-12.801,-44.719],[-3.605,-17.788],[-24.083,-15.726],[-2.877,-10.794],[30.317,-18.567],[-14.52,12.287],[0.825,6.413],[-2.342,5.994],[-0.65,2.073],[6.008,28.397],[19.934,-2.839],[18.256,7.361],[0.171,-7.306],[12.067,-1.247],[-2.597,-11.969]],"o":[[3.364,11.751],[6.529,32.214],[7.337,4.667],[2.085,7.822],[32.946,-6.739],[-5.103,-21.33],[-1.456,-11.312],[1.233,-2.004],[0,0],[-5.862,-27.709],[0,0],[-13.721,-5.533],[0,0],[-12.067,1.247],[0,0]],"v":[[12.775,-39.308],[27.656,6.086],[67.904,85.681],[85.931,109.29],[51.49,160.266],[147.472,120.625],[138.368,85.178],[141.966,58.001],[144.817,51.889],[148.546,4.38],[105.537,-51.897],[67.733,-94.328],[46.297,-83.398],[35.29,-89.718],[29.285,-75.875]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":33,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"parent":2,"sr":1,"ks":{"p":{"a":0,"k":[-63.783,7.296,0]},"a":{"a":0,"k":[-63.783,7.296,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-0.618],[4.754,0],[0,2.194],[-4.754,0]],"o":[[0,2.194],[-4.754,0],[0,-1.118],[4.754,0]],"v":[[-50.556,14.024],[-63.816,16.897],[-76.57,13.649],[-63.82,15.407]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.282352954149,0.286274522543,0.286274522543,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0.161],[7.358,0],[0,-0.258],[-7.358,0]],"o":[[0,-0.253],[-7.358,0],[0,0.161],[7.358,0]],"v":[[-50.31,11.585],[-63.766,14.468],[-77.067,11.366],[-63.766,14.441]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.960784316063,0.960784316063,0.960784316063,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-5.552],[13.393,0],[0,5.198],[-13.393,0]],"o":[[0,6.698],[-13.393,0],[0,-5.427],[13.393,0]],"v":[[-39.533,4.77],[-63.758,17.731],[-88.033,4.77],[-63.758,12.934]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.066666670144,0.066666670144,0.066666670144,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-10.354],[13.393,0],[0,4.146],[-13.393,0]],"o":[[0,6.771],[-13.393,0],[0,-11.604],[13.393,0]],"v":[[-38.545,7.822],[-63.816,19.658],[-89.088,8.322],[-63.816,13.986]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.749019622803,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":33,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"parent":2,"sr":1,"ks":{"p":{"a":0,"k":[73.842,7.296,0]},"a":{"a":0,"k":[-63.783,7.296,0]},"s":{"a":0,"k":[-100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,-0.618],[4.754,0],[0,2.194],[-4.754,0]],"o":[[0,2.194],[-4.754,0],[0,-1.118],[4.754,0]],"v":[[-50.556,14.024],[-63.816,16.897],[-76.57,13.649],[-63.82,15.407]],"c":true}]},{"i":{"x":0.67,"y":1},"o":{"x":0.66,"y":0},"t":6,"s":[{"i":[[0,-0.618],[4.754,0],[0,2.194],[-4.754,0]],"o":[[0,2.194],[-4.754,0],[0,-1.118],[4.754,0]],"v":[[-50.556,14.024],[-63.816,16.897],[-76.57,13.649],[-63.82,15.407]],"c":true}]},{"i":{"x":0.67,"y":1},"o":{"x":0.167,"y":0},"t":13,"s":[{"i":[[0,-11.871],[9.986,0],[0,7.079],[-9.986,0]],"o":[[0,7.079],[-9.986,0],[0,-11.357],[9.986,0]],"v":[[-46.701,12.524],[-63.783,33.272],[-80.865,12.524],[-63.783,11.875]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":20,"s":[{"i":[[0,-11.871],[9.986,0],[0,7.079],[-9.986,0]],"o":[[0,7.079],[-9.986,0],[0,-11.357],[9.986,0]],"v":[[-46.701,12.524],[-63.783,33.272],[-80.865,12.524],[-63.783,11.875]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.66,"y":0},"t":27,"s":[{"i":[[0,-0.618],[4.754,0],[0,2.194],[-4.754,0]],"o":[[0,2.194],[-4.754,0],[0,-1.118],[4.754,0]],"v":[[-50.556,14.024],[-63.816,16.897],[-76.57,13.649],[-63.82,15.407]],"c":true}]},{"t":33,"s":[{"i":[[0,-0.618],[4.754,0],[0,2.194],[-4.754,0]],"o":[[0,2.194],[-4.754,0],[0,-1.118],[4.754,0]],"v":[[-50.556,14.024],[-63.816,16.897],[-76.57,13.649],[-63.82,15.407]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.282352954149,0.286274522543,0.286274522543,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0.161],[7.358,0],[0,-0.258],[-7.358,0]],"o":[[0,-0.253],[-7.358,0],[0,0.161],[7.358,0]],"v":[[-50.31,11.585],[-63.766,14.468],[-77.067,11.366],[-63.766,14.441]],"c":true}]},{"i":{"x":0.67,"y":1},"o":{"x":0.66,"y":0},"t":6,"s":[{"i":[[0,0.161],[7.358,0],[0,-0.258],[-7.358,0]],"o":[[0,-0.253],[-7.358,0],[0,0.161],[7.358,0]],"v":[[-50.31,11.585],[-63.766,14.468],[-77.067,11.366],[-63.766,14.441]],"c":true}]},{"i":{"x":0.67,"y":1},"o":{"x":0.167,"y":0},"t":13,"s":[{"i":[[0,-3.629],[7.358,0],[0,5.828],[-7.358,0]],"o":[[0,5.701],[-7.358,0],[0,-3.63],[7.358,0]],"v":[[-50.461,-12.676],[-63.783,-11.535],[-77.106,-12.676],[-63.783,-23.45]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":20,"s":[{"i":[[0,-3.629],[7.358,0],[0,5.828],[-7.358,0]],"o":[[0,5.701],[-7.358,0],[0,-3.63],[7.358,0]],"v":[[-50.461,-12.676],[-63.783,-11.535],[-77.106,-12.676],[-63.783,-23.45]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.66,"y":0},"t":27,"s":[{"i":[[0,0.161],[7.358,0],[0,-0.258],[-7.358,0]],"o":[[0,-0.253],[-7.358,0],[0,0.161],[7.358,0]],"v":[[-50.31,11.585],[-63.766,14.468],[-77.067,11.366],[-63.766,14.441]],"c":true}]},{"t":33,"s":[{"i":[[0,0.161],[7.358,0],[0,-0.258],[-7.358,0]],"o":[[0,-0.253],[-7.358,0],[0,0.161],[7.358,0]],"v":[[-50.31,11.585],[-63.766,14.468],[-77.067,11.366],[-63.766,14.441]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.960784316063,0.960784316063,0.960784316063,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,-5.552],[13.393,0],[0,5.198],[-13.393,0]],"o":[[0,6.698],[-13.393,0],[0,-5.427],[13.393,0]],"v":[[-39.533,4.77],[-63.758,17.731],[-88.033,4.77],[-63.758,12.934]],"c":true}]},{"i":{"x":0.67,"y":1},"o":{"x":0.66,"y":0},"t":6,"s":[{"i":[[0,-5.552],[13.393,0],[0,5.198],[-13.393,0]],"o":[[0,6.698],[-13.393,0],[0,-5.427],[13.393,0]],"v":[[-39.533,4.77],[-63.758,17.731],[-88.033,4.77],[-63.758,12.934]],"c":true}]},{"i":{"x":0.67,"y":1},"o":{"x":0.167,"y":0},"t":13,"s":[{"i":[[0,-19.516],[13.393,0],[0,19.516],[-13.393,0]],"o":[[0,19.516],[-13.393,0],[0,-19.516],[13.393,0]],"v":[[-39.533,4.77],[-63.783,40.106],[-88.033,4.77],[-63.783,-30.566]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":20,"s":[{"i":[[0,-19.516],[13.393,0],[0,19.516],[-13.393,0]],"o":[[0,19.516],[-13.393,0],[0,-19.516],[13.393,0]],"v":[[-39.533,4.77],[-63.783,40.106],[-88.033,4.77],[-63.783,-30.566]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.66,"y":0},"t":27,"s":[{"i":[[0,-5.552],[13.393,0],[0,5.198],[-13.393,0]],"o":[[0,6.698],[-13.393,0],[0,-5.427],[13.393,0]],"v":[[-39.533,4.77],[-63.758,17.731],[-88.033,4.77],[-63.758,12.934]],"c":true}]},{"t":33,"s":[{"i":[[0,-5.552],[13.393,0],[0,5.198],[-13.393,0]],"o":[[0,6.698],[-13.393,0],[0,-5.427],[13.393,0]],"v":[[-39.533,4.77],[-63.758,17.731],[-88.033,4.77],[-63.758,12.934]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.066666670144,0.066666670144,0.066666670144,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,-10.354],[13.393,0],[0,4.146],[-13.393,0]],"o":[[0,6.771],[-13.393,0],[0,-11.604],[13.393,0]],"v":[[-38.545,7.822],[-63.816,19.658],[-89.088,8.322],[-63.816,13.986]],"c":true}]},{"i":{"x":0.67,"y":1},"o":{"x":0.66,"y":0},"t":6,"s":[{"i":[[0,-10.354],[13.393,0],[0,4.146],[-13.393,0]],"o":[[0,6.771],[-13.393,0],[0,-11.604],[13.393,0]],"v":[[-38.545,7.822],[-63.816,19.658],[-89.088,8.322],[-63.816,13.986]],"c":true}]},{"i":{"x":0.67,"y":1},"o":{"x":0.167,"y":0},"t":13,"s":[{"i":[[0,-19.516],[13.393,0],[0,19.516],[-13.393,0]],"o":[[0,19.516],[-13.393,0],[0,-19.516],[13.393,0]],"v":[[-38.523,9.822],[-63.783,45.158],[-89.044,9.822],[-63.783,-25.514]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":20,"s":[{"i":[[0,-19.516],[13.393,0],[0,19.516],[-13.393,0]],"o":[[0,19.516],[-13.393,0],[0,-19.516],[13.393,0]],"v":[[-38.523,9.822],[-63.783,45.158],[-89.044,9.822],[-63.783,-25.514]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.66,"y":0},"t":27,"s":[{"i":[[0,-10.354],[13.393,0],[0,4.146],[-13.393,0]],"o":[[0,6.771],[-13.393,0],[0,-11.604],[13.393,0]],"v":[[-38.545,7.822],[-63.816,19.658],[-89.088,8.322],[-63.816,13.986]],"c":true}]},{"t":33,"s":[{"i":[[0,-10.354],[13.393,0],[0,4.146],[-13.393,0]],"o":[[0,6.771],[-13.393,0],[0,-11.604],[13.393,0]],"v":[[-38.545,7.822],[-63.816,19.658],[-89.088,8.322],[-63.816,13.986]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.749019622803,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":33,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"parent":2,"sr":1,"ks":{"p":{"a":0,"k":[5.883,50.25,0]},"a":{"a":0,"k":[5.883,50.25,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[2.511,-4.918],[0.213,-0.942],[-3.744,-1.911],[2.476,-4.893],[-0.478,0.936],[3.948,2.016]],"o":[[-0.469,0.919],[2.519,-4.85],[3.744,1.911],[0.643,-0.734],[2.511,-4.918],[-3.948,-2.016]],"v":[[13.327,44.758],[12.3,47.57],[24.125,43.208],[25.922,54.567],[27.623,52.056],[25.019,39.507]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.211764708161,0.086274512112,0.035294119269,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[2.509,-4.914],[-3.948,-2.015],[-2.509,4.914],[3.948,2.015]],"o":[[-2.509,4.914],[3.948,2.015],[2.509,-4.914],[-3.948,-2.015]],"v":[[13.326,44.758],[15.931,57.305],[27.621,52.056],[25.016,39.509]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.403921574354,0.266666680574,0.188235297799,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[3.93,-7.699],[-3.948,-2.015],[-2.812,4.747],[3.948,2.015]],"o":[[-2.509,4.914],[3.948,2.015],[4.225,-7.134],[-3.948,-2.015]],"v":[[12.111,46.986],[15.567,59.968],[27.169,55.043],[25.661,40.199]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.941176474094,0.847058832645,0.705882370472,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.511,-4.918],[-0.213,-0.942],[3.744,-1.911],[-2.476,-4.893],[0.478,0.936],[-3.948,2.016]],"o":[[0.469,0.919],[-2.519,-4.85],[-3.744,1.911],[-0.643,-0.734],[-2.511,-4.918],[3.948,-2.016]],"v":[[-1.485,44.758],[-0.457,47.57],[-12.282,43.208],[-14.08,54.567],[-15.78,52.056],[-13.177,39.507]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.211764708161,0.086274512112,0.035294119269,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.509,-4.914],[3.948,-2.015],[2.509,4.914],[-3.948,2.015]],"o":[[2.509,4.914],[-3.948,2.015],[-2.509,-4.914],[3.948,-2.015]],"v":[[-1.484,44.758],[-4.089,57.305],[-15.779,52.056],[-13.174,39.509]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.403921574354,0.266666680574,0.188235297799,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-3.93,-7.699],[3.948,-2.015],[2.812,4.747],[-3.948,2.015]],"o":[[2.509,4.914],[-3.948,2.015],[-4.225,-7.134],[3.948,-2.015]],"v":[[-0.269,46.986],[-3.725,59.968],[-15.327,55.043],[-13.818,40.199]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.941176474094,0.847058832645,0.705882370472,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[11.287,0.292],[3.048,-1.351],[3.153,1.398],[3.628,-0.094],[-0.105,-10.467],[-29.829,0],[-0.445,8.16]],"o":[[-3.628,-0.094],[-3.153,1.398],[-3.048,-1.351],[-11.287,0.292],[0.079,7.902],[29.532,0],[0.569,-10.452]],"v":[[23.934,29.849],[11.849,32.814],[-0.121,32.814],[-12.206,29.849],[-28.625,47.042],[5.864,70.656],[40.353,47.042]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.749019622803,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":33,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"parent":2,"sr":1,"ks":{"p":{"a":0,"k":[5.864,107.189,0]},"a":{"a":0,"k":[5.864,107.189,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":3,"s":[{"i":[[1.188,-2.439],[0.921,0.417],[6.452,0.59],[6.878,0],[2.613,-0.213],[1.434,-0.652],[-0.372,-1.404],[-1.391,0.611],[-6.645,0.566],[-7.086,0],[-2.685,-0.256],[-1.475,-0.645]],"o":[[0.378,-1.404],[-1.435,-0.65],[-2.605,-0.238],[-6.884,0],[-6.452,0.525],[-0.92,0.418],[-1.188,-2.439],[1.479,-0.65],[2.688,-0.229],[7.086,0],[6.639,0.632],[1.396,0.611]],"v":[[34.087,94.056],[33.413,91.171],[21.553,89.807],[5.926,89.257],[-9.991,89.703],[-21.919,91.171],[-22.598,94.051],[-22.751,89.003],[-10.911,87.679],[5.926,87.083],[22.498,87.794],[34.24,89.003]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":13,"s":[{"i":[[0.653,-2.439],[0.333,1.551],[3.373,3.05],[6.071,0],[1.346,-1.29],[0.618,-2.064],[-0.205,-1.404],[-0.338,1.997],[-3.418,3.305],[-6.254,0],[-1.401,-1.279],[-0.54,-2.447]],"o":[[0.208,-1.404],[-0.519,-2.417],[-1.362,-1.231],[-6.075,0],[-3.325,3.187],[-0.266,0.888],[-0.653,-2.439],[0.358,-2.116],[1.382,-1.337],[6.254,0],[3.465,3.161],[0.511,2.317]],"v":[[23.396,98.676],[22.79,94.926],[17.364,87.313],[7.718,82.815],[-2.169,86.808],[-7.041,95.879],[-7.395,99.164],[-7.644,94.323],[-3.163,85.358],[7.718,80.641],[17.981,85.383],[23.361,92.486]],"c":true}]},{"i":{"x":0.67,"y":1},"o":{"x":0.66,"y":0},"t":20,"s":[{"i":[[0.653,-2.439],[0.333,1.551],[3.373,3.05],[6.071,0],[1.346,-1.29],[0.618,-2.064],[-0.205,-1.404],[-0.338,1.997],[-3.418,3.305],[-6.254,0],[-1.401,-1.279],[-0.54,-2.447]],"o":[[0.208,-1.404],[-0.519,-2.417],[-1.362,-1.231],[-6.075,0],[-3.325,3.187],[-0.266,0.888],[-0.653,-2.439],[0.358,-2.116],[1.382,-1.337],[6.254,0],[3.465,3.161],[0.511,2.317]],"v":[[23.396,98.676],[22.79,94.926],[17.364,87.313],[7.718,82.815],[-2.169,86.808],[-7.041,95.879],[-7.395,99.164],[-7.644,94.323],[-3.163,85.358],[7.718,80.641],[17.981,85.383],[23.361,92.486]],"c":true}]},{"t":30,"s":[{"i":[[1.188,-2.439],[0.921,0.417],[6.452,0.59],[6.878,0],[2.613,-0.213],[1.434,-0.652],[-0.372,-1.404],[-1.391,0.611],[-6.645,0.566],[-7.086,0],[-2.685,-0.256],[-1.475,-0.645]],"o":[[0.378,-1.404],[-1.435,-0.65],[-2.605,-0.238],[-6.884,0],[-6.452,0.525],[-0.92,0.418],[-1.188,-2.439],[1.479,-0.65],[2.688,-0.229],[7.086,0],[6.639,0.632],[1.396,0.611]],"v":[[34.087,94.056],[33.413,91.171],[21.553,89.807],[5.926,89.257],[-9.991,89.703],[-21.919,91.171],[-22.598,94.051],[-22.751,89.003],[-10.911,87.679],[5.926,87.083],[22.498,87.794],[34.24,89.003]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.015686275437,0,0.003921568859,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":3,"s":[{"i":[[0.676,0],[6.173,0],[4.992,3.171],[-1.401,0],[0,0],[-6.229,-1.128]],"o":[[-4.927,3.051],[-6.347,0],[-0.236,0],[6.404,0],[0,0],[1.339,0.243]],"v":[[23.022,105.559],[5.744,111.007],[-11.941,105.116],[-8.151,106.691],[5.555,107.59],[19.484,106.941]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":13,"s":[{"i":[[0.372,0],[3.395,0],[2.745,3.171],[-0.77,0],[0,0],[-3.425,-1.128]],"o":[[-2.709,3.051],[-3.49,0],[-0.13,0],[3.521,0],[0,0],[0.736,0.243]],"v":[[17.833,108.59],[7.798,113.377],[-1.599,109.066],[0.157,109.061],[7.764,109.456],[16.695,109.214]],"c":true}]},{"i":{"x":0.67,"y":1},"o":{"x":0.66,"y":0},"t":20,"s":[{"i":[[0.372,0],[3.395,0],[2.745,3.171],[-0.77,0],[0,0],[-3.425,-1.128]],"o":[[-2.709,3.051],[-3.49,0],[-0.13,0],[3.521,0],[0,0],[0.736,0.243]],"v":[[17.833,108.59],[7.798,113.377],[-1.599,109.066],[0.157,109.061],[7.764,109.456],[16.695,109.214]],"c":true}]},{"t":30,"s":[{"i":[[0.676,0],[6.173,0],[4.992,3.171],[-1.401,0],[0,0],[-6.229,-1.128]],"o":[[-4.927,3.051],[-6.347,0],[-0.236,0],[6.404,0],[0,0],[1.339,0.243]],"v":[[23.022,105.559],[5.744,111.007],[-11.941,105.116],[-8.151,106.691],[5.555,107.59],[19.484,106.941]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.698039233685,0.274509817362,0.376470595598,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":3,"s":[{"i":[[2,0.88],[6.637,0.633],[7.087,0],[2.687,-0.229],[1.475,-0.649],[-2.5,-3.795],[-11.418,0],[-3.544,5.379]],"o":[[-1.475,-0.649],[-2.684,-0.256],[-7.087,0],[-6.643,0.567],[-2,0.88],[3.544,5.379],[11.418,0],[2.5,-3.795]],"v":[[34.242,89.001],[22.499,87.793],[5.925,87.084],[-10.913,87.679],[-22.749,89.001],[-20.634,97.431],[5.746,111.004],[32.127,97.431]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":13,"s":[{"i":[[0.731,3.326],[3.463,3.161],[6.255,0],[1.382,-1.336],[0.511,-1.952],[-1.375,-3.795],[-6.279,0],[-1.949,5.379]],"o":[[-0.539,-2.454],[-1.401,-1.279],[-6.255,0],[-3.416,3.304],[-0.692,2.646],[1.949,5.379],[6.279,0],[1.375,-3.795]],"v":[[23.362,92.486],[17.981,85.382],[7.718,80.642],[-3.164,85.358],[-7.643,94.319],[-6.315,102.544],[7.8,113.374],[22.318,102.05]],"c":true}]},{"i":{"x":0.67,"y":1},"o":{"x":0.66,"y":0},"t":20,"s":[{"i":[[0.731,3.326],[3.463,3.161],[6.255,0],[1.382,-1.336],[0.511,-1.952],[-1.375,-3.795],[-6.279,0],[-1.949,5.379]],"o":[[-0.539,-2.454],[-1.401,-1.279],[-6.255,0],[-3.416,3.304],[-0.692,2.646],[1.949,5.379],[6.279,0],[1.375,-3.795]],"v":[[23.362,92.486],[17.981,85.382],[7.718,80.642],[-3.164,85.358],[-7.643,94.319],[-6.315,102.544],[7.8,113.374],[22.318,102.05]],"c":true}]},{"t":30,"s":[{"i":[[2,0.88],[6.637,0.633],[7.087,0],[2.687,-0.229],[1.475,-0.649],[-2.5,-3.795],[-11.418,0],[-3.544,5.379]],"o":[[-1.475,-0.649],[-2.684,-0.256],[-7.087,0],[-6.643,0.567],[-2,0.88],[3.544,5.379],[11.418,0],[2.5,-3.795]],"v":[[34.242,89.001],[22.499,87.793],[5.925,87.084],[-10.913,87.679],[-22.749,89.001],[-20.634,97.431],[5.746,111.004],[32.127,97.431]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.247058823705,0.039215687662,0.141176477075,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":3,"s":[{"i":[[3.188,0.413],[6.882,0.687],[7.357,0],[2.786,-0.25],[1.597,-0.464],[-2.595,-3.795],[-11.852,0],[-3.679,5.379]],"o":[[-1.648,-0.214],[-2.783,-0.278],[-7.357,0],[-6.889,0.618],[-3.048,0.885],[3.678,5.379],[11.852,0],[2.595,-3.795]],"v":[[34.242,89.001],[22.653,90.081],[5.925,89.286],[-11.089,89.965],[-22.749,89.001],[-21.823,100.948],[5.733,115.682],[33.554,101.21]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":13,"s":[{"i":[[1.427,3.64],[3.584,3.306],[6.493,0],[1.43,-1.397],[0.622,-1.853],[-1.427,-3.795],[-6.517,0],[-2.023,5.379]],"o":[[-0.738,-1.882],[-1.45,-1.337],[-6.493,0],[-3.535,3.454],[-1.188,3.538],[2.023,5.379],[6.517,0],[1.427,-3.795]],"v":[[23.362,92.486],[17.962,87.849],[7.718,82.844],[-2.692,87.507],[-7.643,94.319],[-7.255,103.879],[7.792,118.052],[23.092,103.579]],"c":true}]},{"i":{"x":0.67,"y":1},"o":{"x":0.66,"y":0},"t":20,"s":[{"i":[[1.427,3.64],[3.584,3.306],[6.493,0],[1.43,-1.397],[0.622,-1.853],[-1.427,-3.795],[-6.517,0],[-2.023,5.379]],"o":[[-0.738,-1.882],[-1.45,-1.337],[-6.493,0],[-3.535,3.454],[-1.188,3.538],[2.023,5.379],[6.517,0],[1.427,-3.795]],"v":[[23.362,92.486],[17.962,87.849],[7.718,82.844],[-2.692,87.507],[-7.643,94.319],[-7.255,103.879],[7.792,118.052],[23.092,103.579]],"c":true}]},{"t":30,"s":[{"i":[[3.188,0.413],[6.882,0.687],[7.357,0],[2.786,-0.25],[1.597,-0.464],[-2.595,-3.795],[-11.852,0],[-3.679,5.379]],"o":[[-1.648,-0.214],[-2.783,-0.278],[-7.357,0],[-6.889,0.618],[-3.048,0.885],[3.678,5.379],[11.852,0],[2.595,-3.795]],"v":[[34.242,89.001],[22.653,90.081],[5.925,89.286],[-11.089,89.965],[-22.749,89.001],[-21.823,100.948],[5.733,115.682],[33.554,101.21]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.956862747669,0.913725495338,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":3,"s":[{"i":[[2,0.88],[6.637,0.633],[7.087,0],[2.687,-0.229],[1.475,-0.649],[-2.5,-3.795],[-11.418,0],[-3.544,5.379]],"o":[[-1.475,-0.649],[-2.684,-0.256],[-7.087,0],[-6.643,0.567],[-2,0.88],[3.544,5.379],[11.418,0],[2.5,-3.795]],"v":[[35.881,85.862],[23.167,84.726],[5.922,83.945],[-11.558,84.606],[-24.395,85.862],[-22.277,95.229],[5.746,108.802],[33.769,95.229]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":13,"s":[{"i":[[0.642,1.938],[3.047,3.546],[6.255,0],[2.025,-2.773],[0.19,-1.347],[-1.375,-3.795],[-6.279,0],[-1.949,5.379]],"o":[[-0.54,-1.629],[-1.226,-1.426],[-6.255,0],[-2.393,3.277],[-0.244,1.731],[1.949,5.379],[6.279,0],[1.375,-3.795]],"v":[[22.949,90.878],[18.446,83.779],[7.715,77.503],[-5.317,85.475],[-8.088,94.686],[-7.219,100.342],[7.8,111.172],[23.221,99.848]],"c":true}]},{"i":{"x":0.67,"y":1},"o":{"x":0.66,"y":0},"t":20,"s":[{"i":[[0.642,1.938],[3.047,3.546],[6.255,0],[2.025,-2.773],[0.19,-1.347],[-1.375,-3.795],[-6.279,0],[-1.949,5.379]],"o":[[-0.54,-1.629],[-1.226,-1.426],[-6.255,0],[-2.393,3.277],[-0.244,1.731],[1.949,5.379],[6.279,0],[1.375,-3.795]],"v":[[22.949,90.878],[18.446,83.779],[7.715,77.503],[-5.317,85.475],[-8.088,94.686],[-7.219,100.342],[7.8,111.172],[23.221,99.848]],"c":true}]},{"t":30,"s":[{"i":[[2,0.88],[6.637,0.633],[7.087,0],[2.687,-0.229],[1.475,-0.649],[-2.5,-3.795],[-11.418,0],[-3.544,5.379]],"o":[[-1.475,-0.649],[-2.684,-0.256],[-7.087,0],[-6.643,0.567],[-2,0.88],[3.544,5.379],[11.418,0],[2.5,-3.795]],"v":[[35.881,85.862],[23.167,84.726],[5.922,83.945],[-11.558,84.606],[-24.395,85.862],[-22.277,95.229],[5.746,108.802],[33.769,95.229]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.749019622803,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":33,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"parent":1,"sr":1,"ks":{"p":{"a":0,"k":[5.303,144.067,0]},"a":{"a":0,"k":[5.303,144.067,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-10.992,-6.96],[0,0],[-16.976,11.779],[-18.657,4.78]],"o":[[17.211,5.126],[18.61,11.782],[0,0],[10.182,-7.065],[0,0]],"v":[[-70.986,150.908],[-27.847,165.744],[5.303,176.601],[37.654,165.544],[81.313,150.908]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.698039233685,0.584313750267,0.447058826685,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-24.85,4.01],[2.81,-4.07],[4.9,-0.67],[10.74,-7.45],[0,0],[16.98,11.78],[7.38,1.01],[3.407,3.585],[1.57,5.1],[-14.42,-8.27],[-8.4,5.66]],"o":[[-1.671,6.6],[-2.81,4.07],[-7.38,1.01],[-16.97,11.78],[0,0],[-10.73,-7.45],[-4.9,-0.67],[-3.841,-4.041],[12.31,3.41],[17.93,10.29],[7.89,-5.32]],"v":[[91.856,131.627],[83.799,149.584],[68.549,154.317],[37.649,165.547],[5.299,176.597],[-27.051,165.547],[-57.941,154.317],[-72.457,150.111],[-81.201,131.67],[-17.101,154.037],[28.949,154.037]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":11},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[51.445,12.472],[11.245,-13.381],[2.922,3.477],[38.8,-9.406],[-5.196,-23.384],[-28.607,-10.289],[0.785,-3.583],[-16.2,-23.457],[-4.902,-0.674],[-10.738,-7.451],[0,0],[-16.975,11.779],[-7.382,1.015],[-2.812,4.072],[3.47,15.845],[-3.452,1.242],[-4.853,21.841]],"o":[[-38.801,-9.406],[-2.922,3.477],[-11.245,-13.381],[-51.445,12.472],[4.854,21.841],[3.452,1.242],[-3.47,15.845],[2.812,4.072],[7.382,1.015],[16.975,11.779],[0,0],[10.737,-7.451],[4.902,-0.674],[16.2,-23.457],[-0.785,-3.583],[28.607,-10.289],[5.197,-23.384]],"v":[[88.579,-75.949],[10.891,-45.909],[-0.285,-45.909],[-77.973,-75.949],[-132.017,4.597],[-80.556,57.662],[-75.875,66.071],[-70.075,146.877],[-57.943,154.316],[-27.048,165.544],[5.303,176.601],[37.654,165.544],[68.548,153.316],[80.68,146.877],[86.481,66.071],[91.162,57.662],[142.623,4.597]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.941176474094,0.847058832645,0.701960802078,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-6.695,-15.921],[5.747,-3.178],[22.493,4.591],[6.631,-1.555],[16.983,8.766],[-3.144,6.284],[-28.696,7.38],[-11.25,-13.38],[-2.92,3.48],[-38.8,-9.4]],"o":[[2.546,6.053],[-39.7,21.954],[-6.674,-1.362],[-56.127,13.163],[-6.244,-3.223],[5.486,-10.965],[38.664,-9.944],[2.92,3.48],[11.25,-13.38],[26.786,6.499]],"v":[[134.093,-35.971],[128.458,-19.704],[14.574,-11.647],[-5.621,-11.396],[-116.496,-21.256],[-122.192,-38.41],[-76.315,-72.759],[-0.282,-45.913],[10.887,-45.913],[87.791,-72.245]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.749019622803,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[51.445,12.472],[11.245,-13.381],[2.922,3.477],[38.8,-9.406],[-5.196,-23.384],[-28.607,-10.289],[0.785,-3.583],[-16.2,-23.457],[-4.902,-0.674],[-10.738,-7.451],[0,0],[-16.975,11.779],[-7.382,1.015],[-2.812,4.072],[3.47,15.845],[-3.452,1.242],[-4.853,21.841]],"o":[[-38.801,-9.406],[-2.922,3.477],[-11.245,-13.381],[-51.445,12.472],[4.854,21.841],[3.452,1.242],[-3.47,15.845],[2.812,4.072],[7.382,1.015],[16.975,11.779],[0,0],[10.737,-7.451],[4.902,-0.674],[16.2,-23.457],[-0.785,-3.583],[28.607,-10.289],[5.197,-23.384]],"v":[[88.579,-75.949],[10.891,-45.909],[-0.285,-45.909],[-77.973,-75.949],[-132.017,4.597],[-80.556,57.662],[-75.875,66.071],[-70.075,146.877],[-57.943,154.316],[-27.048,165.544],[5.303,176.601],[37.654,165.544],[68.548,154.316],[80.68,146.877],[86.481,66.071],[91.162,57.662],[142.623,4.597]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.941176474094,0.847058832645,0.701960802078,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[24.154,48.305],[13.203,43.885],[77.248,0],[15.205,-50.539],[21.999,-43.995],[-198.638,0]],"o":[[-21.999,-43.995],[-15.205,-50.539],[-78.08,0],[-13.203,43.885],[-24.154,48.305],[198.638,0]],"v":[[169.587,-20.913],[146.026,-110.813],[5.303,-207.093],[-135.42,-110.813],[-158.981,-20.913],[5.303,159.087]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-7.633,-2.073]],"o":[[0,0],[0,0]],"v":[[41.579,-186.44],[54.078,-183.608]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-1.612,-0.576]],"o":[[1.511,0.494],[0,0]],"v":[[62.717,-181.024],[67.407,-179.42]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-23.536],[50.223,0],[0,23.536],[-50.223,0]],"o":[[0,23.536],[-50.223,0],[0,-23.536],[50.223,0]],"v":[[96.859,-148.606],[5.921,-105.99],[-85.016,-148.606],[5.921,-191.222]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.780392169952,0.623529434204,0.419607847929,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[22.173,44.342],[12.12,40.285],[70.911,0],[13.958,-46.393],[20.194,-40.385],[-182.343,0]],"o":[[-20.194,-40.385],[-13.957,-46.393],[-71.675,0],[-12.12,40.285],[-22.173,44.342],[182.343,0]],"v":[[156.11,-21.166],[134.482,-103.692],[5.303,-192.073],[-123.876,-103.692],[-145.504,-21.166],[5.303,144.067]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.737254917622,0.572549045086,0.349019616842,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[24.154,48.305],[13.203,43.885],[77.248,0],[15.205,-50.539],[21.999,-43.995],[-198.638,0]],"o":[[-21.999,-43.995],[-15.205,-50.539],[-78.08,0],[-13.203,43.885],[-24.154,48.305],[198.638,0]],"v":[[169.587,-20.913],[146.026,-110.813],[5.303,-207.093],[-135.42,-110.813],[-158.981,-20.913],[5.303,159.087]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":33,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"parent":11,"sr":1,"ks":{"p":{"a":0,"k":[-148.03,-63.49,0]},"a":{"a":0,"k":[-148.03,-63.49,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[1.081,-15.591],[0,0],[0.01,0],[-5.699,9.64],[0,0]],"o":[[-42.636,-22.157],[-0.01,0],[-1.283,-12.428],[16.864,-28.514],[5.547,-0.606]],"v":[[-120.56,-89.291],[-178.963,-61.424],[-178.983,-61.434],[-172.678,-95.859],[-126.714,-115.865]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.596078455448,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[17.728,-1.949],[16.87,-28.514],[-21.623,-17.626]],"o":[[0,0],[-13.747,23.235],[25.716,20.962]],"v":[[-126.711,-115.866],[-172.682,-95.857],[-156.36,-15.922]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.929411768913,0.674509823322,0.666666686535,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[55.083,3.638],[22.172,-27.368],[-47.288,-39.234]],"o":[[-19.765,-1.305],[-24.472,30.208],[49.528,41.092]],"v":[[-115.798,-143.021],[-186.99,-118.078],[-164.645,10.795]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-36.319,10.182]],"o":[[0,0],[0,0]],"v":[[-194.126,-81.406],[-152.972,-131.334]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.737254917622,0.572549045086,0.349019616842,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":10},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[55.083,3.638],[22.172,-27.368],[-47.288,-39.234]],"o":[[-19.765,-1.305],[-24.472,30.208],[49.528,41.092]],"v":[[-115.798,-143.021],[-186.99,-118.078],[-164.645,10.795]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":33,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"parent":11,"sr":1,"ks":{"p":{"a":0,"k":[157.962,-63.49,0]},"a":{"a":0,"k":[157.962,-63.49,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.081,-15.591],[0,0],[-0.01,0],[5.699,9.64],[0,0]],"o":[[42.636,-22.157],[0.01,0],[1.283,-12.428],[-16.864,-28.514],[-5.547,-0.606]],"v":[[130.917,-89.291],[189.319,-61.424],[189.34,-61.434],[183.034,-95.859],[137.07,-115.865]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.596078455448,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-55.083,3.638],[-22.172,-27.368],[47.288,-39.234]],"o":[[19.765,-1.305],[24.472,30.208],[-49.528,41.092]],"v":[[125.73,-143.021],[196.922,-118.078],[174.577,10.795]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[36.319,10.182]],"o":[[0,0],[0,0]],"v":[[203.905,-80.406],[162.752,-130.334]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.737254917622,0.572549045086,0.349019616842,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":10},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-17.728,-1.949],[-16.87,-28.514],[21.623,-17.626]],"o":[[0,0],[13.747,23.235],[-25.716,20.962]],"v":[[136.643,-115.866],[182.613,-95.857],[166.291,-15.922]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.929411768913,0.674509823322,0.666666686535,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-55.083,3.638],[-22.172,-27.368],[47.288,-39.234]],"o":[[19.765,-1.305],[24.472,30.208],[-49.528,41.092]],"v":[[125.73,-143.021],[196.922,-118.078],[174.577,10.795]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":33,"st":0,"bm":0}]} \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/tsv_setup_monkey_tracking.tgs b/TMessagesProj/src/main/res/raw/tsv_setup_monkey_tracking.tgs new file mode 100644 index 000000000..c170bac4c --- /dev/null +++ b/TMessagesProj/src/main/res/raw/tsv_setup_monkey_tracking.tgs @@ -0,0 +1 @@ +{"tgs":1,"v":"5.5.2","fr":60,"ip":0,"op":180,"w":512,"h":512,"nm":"password_track","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":5,"ty":3,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":0,"k":[256,256,0]},"s":{"a":0,"k":[95,95,100]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":3,"parent":11,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[0,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[-31.579,28.421,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":1},"o":{"x":0.66,"y":0},"t":160,"s":[28.421,28.421,0],"to":[0,0,0],"ti":[0,0,0]},{"t":180,"s":[0,0,0]}]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"parent":6,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":20,"s":[0]},{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.66],"y":[0]},"t":160,"s":[0]},{"t":180,"s":[0]}]},"p":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[-63.783,7.296,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0.167},"t":20,"s":[-52.204,7.296,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.66,"y":0},"t":90,"s":[-57.995,8.348,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":1},"o":{"x":0.66,"y":0},"t":160,"s":[-53.257,9.401,0],"to":[0,0,0],"ti":[0,0,0]},{"t":180,"s":[-63.783,7.296,0]}]},"a":{"a":0,"k":[-63.783,7.296,0]},"s":{"a":1,"k":[{"i":{"x":[0.34,0.34,0.34],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":0,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":20,"s":[87,85,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":90,"s":[100,90,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0.167,0]},"t":160,"s":[100,90,100]},{"t":180,"s":[100,100,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-11.871],[9.986,0],[0,7.079],[-9.986,0]],"o":[[0,7.079],[-9.986,0],[0,-11.357],[9.986,0]],"v":[[-46.701,12.524],[-63.783,33.272],[-80.865,12.524],[-63.783,11.875]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.282352954149,0.286274522543,0.286274522543,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-3.629],[7.358,0],[0,5.828],[-7.358,0]],"o":[[0,5.701],[-7.358,0],[0,-3.63],[7.358,0]],"v":[[-50.461,-12.676],[-63.783,-11.535],[-77.106,-12.676],[-63.783,-23.45]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.960784316063,0.960784316063,0.960784316063,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-19.516],[13.393,0],[0,19.516],[-13.393,0]],"o":[[0,19.516],[-13.393,0],[0,-19.516],[13.393,0]],"v":[[-39.533,4.77],[-63.783,40.106],[-88.033,4.77],[-63.783,-30.566]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.066666670144,0.066666670144,0.066666670144,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-19.516],[13.393,0],[0,19.516],[-13.393,0]],"o":[[0,19.516],[-13.393,0],[0,-19.516],[13.393,0]],"v":[[-38.523,9.822],[-63.783,45.158],[-89.044,9.822],[-63.783,-25.514]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.749019622803,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"parent":6,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":20,"s":[0]},{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.66],"y":[0]},"t":160,"s":[0]},{"t":180,"s":[0]}]},"p":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[73.842,7.296,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":20,"s":[73.842,10.454,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":90,"s":[74.896,8.877,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":1},"o":{"x":0.66,"y":0},"t":160,"s":[66.473,7.296,0],"to":[0,0,0],"ti":[0,0,0]},{"t":180,"s":[73.842,7.296,0]}]},"a":{"a":0,"k":[-63.783,7.296,0]},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":0,"s":[-100,100,100]},{"i":{"x":[0.34,0.34,0.34],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":20,"s":[-100,90,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,1]},"o":{"x":[0.66,0.66,0.66],"y":[0,0,0]},"t":90,"s":[-100,90,100]},{"i":{"x":[0.34,0.34,0.34],"y":[1,1,1]},"o":{"x":[0.66,0.66,0.66],"y":[0,0,0]},"t":160,"s":[-80,85,100]},{"t":180,"s":[-100,100,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-11.871],[9.986,0],[0,7.079],[-9.986,0]],"o":[[0,7.079],[-9.986,0],[0,-11.357],[9.986,0]],"v":[[-46.701,12.524],[-63.783,33.272],[-80.865,12.524],[-63.783,11.875]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.282352954149,0.286274522543,0.286274522543,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-3.629],[7.358,0],[0,5.828],[-7.358,0]],"o":[[0,5.701],[-7.358,0],[0,-3.63],[7.358,0]],"v":[[-50.461,-12.676],[-63.783,-11.535],[-77.106,-12.676],[-63.783,-23.45]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.960784316063,0.960784316063,0.960784316063,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-19.516],[13.393,0],[0,19.516],[-13.393,0]],"o":[[0,19.516],[-13.393,0],[0,-19.516],[13.393,0]],"v":[[-39.533,4.77],[-63.783,40.106],[-88.033,4.77],[-63.783,-30.566]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.066666670144,0.066666670144,0.066666670144,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-19.516],[13.393,0],[0,19.516],[-13.393,0]],"o":[[0,19.516],[-13.393,0],[0,-19.516],[13.393,0]],"v":[[-38.523,9.822],[-63.783,45.158],[-89.044,9.822],[-63.783,-25.514]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.749019622803,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"parent":6,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":20,"s":[5]},{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.66],"y":[0]},"t":160,"s":[-5]},{"t":180,"s":[0]}]},"p":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[5.883,50.25,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[-1.486,70.25,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[9.567,66.566,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":1},"o":{"x":0.66,"y":0},"t":160,"s":[20.62,64.987,0],"to":[0,0,0],"ti":[0,0,0]},{"t":180,"s":[5.883,50.25,0]}]},"a":{"a":0,"k":[5.883,50.25,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[2.511,-4.918],[0.213,-0.942],[-3.744,-1.911],[2.476,-4.893],[-0.478,0.936],[3.948,2.016]],"o":[[-0.469,0.919],[2.519,-4.85],[3.744,1.911],[0.643,-0.734],[2.511,-4.918],[-3.948,-2.016]],"v":[[13.327,44.758],[12.3,47.57],[24.125,43.208],[25.922,54.567],[27.623,52.056],[25.019,39.507]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[2.606,-4.247],[0.221,-0.814],[-3.885,-1.651],[2.57,-4.225],[-0.496,0.808],[4.097,1.741]],"o":[[-0.487,0.794],[2.614,-4.188],[3.885,1.65],[0.667,-0.634],[2.606,-4.247],[-4.097,-1.741]],"v":[[13.502,45.502],[12.436,47.929],[24.707,44.163],[26.572,53.972],[28.337,51.804],[25.635,40.967]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[{"i":[[2.511,-4.382],[0.213,-0.84],[-3.744,-1.703],[2.476,-4.36],[-0.478,0.834],[3.948,1.796]],"o":[[-0.469,0.819],[2.519,-4.321],[3.744,1.703],[0.643,-0.654],[2.511,-4.382],[-3.948,-1.796]],"v":[[13.327,47.581],[12.3,50.086],[24.125,46.199],[25.922,56.321],[27.623,54.083],[25.019,42.902]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":160,"s":[{"i":[[2.07,-4.382],[0.176,-0.84],[-3.087,-1.703],[2.042,-4.36],[-0.394,0.834],[3.255,1.796]],"o":[[-0.387,0.819],[2.077,-4.321],[3.087,1.703],[0.53,-0.654],[2.07,-4.382],[-3.255,-1.796]],"v":[[15.491,47.581],[14.644,50.086],[24.392,46.199],[25.874,56.321],[27.276,54.083],[25.13,42.902]],"c":true}]},{"t":180,"s":[{"i":[[2.511,-4.918],[0.213,-0.942],[-3.744,-1.911],[2.476,-4.893],[-0.478,0.936],[3.948,2.016]],"o":[[-0.469,0.919],[2.519,-4.85],[3.744,1.911],[0.643,-0.734],[2.511,-4.918],[-3.948,-2.016]],"v":[[13.327,44.758],[12.3,47.57],[24.125,43.208],[25.922,54.567],[27.623,52.056],[25.019,39.507]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.211764708161,0.086274512112,0.035294119269,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[2.509,-4.914],[-3.948,-2.015],[-2.509,4.914],[3.948,2.015]],"o":[[-2.509,4.914],[3.948,2.015],[2.509,-4.914],[-3.948,-2.015]],"v":[[13.326,44.758],[15.931,57.305],[27.621,52.056],[25.016,39.509]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[2.604,-4.244],[-4.096,-1.74],[-2.604,4.244],[4.096,1.74]],"o":[[-2.604,4.244],[4.096,1.74],[2.604,-4.244],[-4.096,-1.74]],"v":[[13.501,45.501],[16.204,56.336],[28.336,51.803],[25.632,40.968]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[{"i":[[2.509,-4.379],[-3.948,-1.796],[-2.509,4.379],[3.948,1.796]],"o":[[-2.509,4.379],[3.948,1.796],[2.509,-4.379],[-3.948,-1.796]],"v":[[13.326,47.58],[15.931,58.76],[27.621,54.083],[25.016,42.903]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":160,"s":[{"i":[[2.068,-4.379],[-3.254,-1.796],[-2.068,4.379],[3.254,1.796]],"o":[[-2.068,4.379],[3.254,1.796],[2.068,-4.379],[-3.254,-1.796]],"v":[[15.49,47.58],[17.637,58.76],[27.275,54.083],[25.127,42.903]],"c":true}]},{"t":180,"s":[{"i":[[2.509,-4.914],[-3.948,-2.015],[-2.509,4.914],[3.948,2.015]],"o":[[-2.509,4.914],[3.948,2.015],[2.509,-4.914],[-3.948,-2.015]],"v":[[13.326,44.758],[15.931,57.305],[27.621,52.056],[25.016,39.509]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.403921574354,0.266666680574,0.188235297799,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[3.93,-7.699],[-3.948,-2.015],[-2.812,4.747],[3.948,2.015]],"o":[[-2.509,4.914],[3.948,2.015],[4.225,-7.134],[-3.948,-2.015]],"v":[[12.111,46.986],[15.567,59.968],[27.169,55.043],[25.661,40.199]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[4.079,-6.648],[-4.096,-1.74],[-2.918,4.1],[4.096,1.74]],"o":[[-2.604,4.244],[4.096,1.74],[4.385,-6.161],[-4.096,-1.74]],"v":[[12.24,47.426],[15.826,58.636],[27.866,54.383],[26.301,41.565]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[{"i":[[3.93,-6.86],[-3.948,-1.796],[-2.812,4.23],[3.948,1.796]],"o":[[-2.509,4.379],[3.948,1.796],[4.225,-6.357],[-3.948,-1.796]],"v":[[12.111,49.566],[15.567,61.133],[27.169,56.744],[25.661,43.518]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":160,"s":[{"i":[[3.24,-6.86],[-3.254,-1.796],[-2.318,4.23],[3.254,1.796]],"o":[[-2.068,4.379],[3.254,1.796],[3.483,-6.357],[-3.254,-1.796]],"v":[[14.488,49.566],[17.337,61.133],[26.902,56.744],[25.659,43.518]],"c":true}]},{"t":180,"s":[{"i":[[3.93,-7.699],[-3.948,-2.015],[-2.812,4.747],[3.948,2.015]],"o":[[-2.509,4.914],[3.948,2.015],[4.225,-7.134],[-3.948,-2.015]],"v":[[12.111,46.986],[15.567,59.968],[27.169,55.043],[25.661,40.199]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.941176474094,0.847058832645,0.705882370472,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[-2.511,-4.918],[-0.213,-0.942],[3.744,-1.911],[-2.476,-4.893],[0.478,0.936],[-3.948,2.016]],"o":[[0.469,0.919],[-2.519,-4.85],[-3.744,1.911],[-0.643,-0.734],[-2.511,-4.918],[3.948,-2.016]],"v":[[-1.485,44.758],[-0.457,47.57],[-12.282,43.208],[-14.08,54.567],[-15.78,52.056],[-13.177,39.507]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[-2.067,-4.247],[-0.175,-0.814],[3.081,-1.651],[-2.038,-4.225],[0.393,0.808],[-3.25,1.741]],"o":[[0.386,0.794],[-2.073,-4.188],[-3.081,1.65],[-0.529,-0.634],[-2.067,-4.247],[3.25,-1.741]],"v":[[-4.486,46.436],[-3.64,48.863],[-13.373,45.097],[-14.852,54.906],[-16.251,52.738],[-14.108,41.901]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[{"i":[[-2.511,-4.382],[-0.213,-0.84],[3.744,-1.703],[-2.476,-4.36],[0.478,0.834],[-3.948,1.796]],"o":[[0.469,0.819],[-2.519,-4.321],[-3.744,1.703],[-0.643,-0.654],[-2.511,-4.382],[3.948,-1.796]],"v":[[-1.485,47.581],[-0.457,50.086],[-12.282,46.199],[-14.08,56.321],[-15.78,54.083],[-13.177,42.902]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":160,"s":[{"i":[[-2.511,-4.382],[-0.213,-0.84],[3.744,-1.703],[-2.476,-4.36],[0.478,0.834],[-3.948,1.796]],"o":[[0.469,0.819],[-2.519,-4.321],[-3.744,1.703],[-0.643,-0.654],[-2.511,-4.382],[3.948,-1.796]],"v":[[-1.485,47.581],[-0.457,50.086],[-12.282,46.199],[-14.08,56.321],[-15.78,54.083],[-13.177,42.902]],"c":true}]},{"t":180,"s":[{"i":[[-2.511,-4.918],[-0.213,-0.942],[3.744,-1.911],[-2.476,-4.893],[0.478,0.936],[-3.948,2.016]],"o":[[0.469,0.919],[-2.519,-4.85],[-3.744,1.911],[-0.643,-0.734],[-2.511,-4.918],[3.948,-2.016]],"v":[[-1.485,44.758],[-0.457,47.57],[-12.282,43.208],[-14.08,54.567],[-15.78,52.056],[-13.177,39.507]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.211764708161,0.086274512112,0.035294119269,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[-2.509,-4.914],[3.948,-2.015],[2.509,4.914],[-3.948,2.015]],"o":[[2.509,4.914],[-3.948,2.015],[-2.509,-4.914],[3.948,-2.015]],"v":[[-1.484,44.758],[-4.089,57.305],[-15.779,52.056],[-13.174,39.509]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[-2.065,-4.244],[3.249,-1.74],[2.065,4.244],[-3.249,1.74]],"o":[[2.065,4.244],[-3.249,1.74],[-2.065,-4.244],[3.249,-1.74]],"v":[[-4.485,46.435],[-6.629,57.27],[-16.25,52.737],[-14.106,41.902]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[{"i":[[-2.509,-4.379],[3.948,-1.796],[2.509,4.379],[-3.948,1.796]],"o":[[2.509,4.379],[-3.948,1.796],[-2.509,-4.379],[3.948,-1.796]],"v":[[-1.484,47.58],[-4.089,58.76],[-15.779,54.083],[-13.174,42.903]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":160,"s":[{"i":[[-2.509,-4.379],[3.948,-1.796],[2.509,4.379],[-3.948,1.796]],"o":[[2.509,4.379],[-3.948,1.796],[-2.509,-4.379],[3.948,-1.796]],"v":[[-1.484,47.58],[-4.089,58.76],[-15.779,54.083],[-13.174,42.903]],"c":true}]},{"t":180,"s":[{"i":[[-2.509,-4.914],[3.948,-2.015],[2.509,4.914],[-3.948,2.015]],"o":[[2.509,4.914],[-3.948,2.015],[-2.509,-4.914],[3.948,-2.015]],"v":[[-1.484,44.758],[-4.089,57.305],[-15.779,52.056],[-13.174,39.509]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.403921574354,0.266666680574,0.188235297799,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[-3.93,-7.699],[3.948,-2.015],[2.812,4.747],[-3.948,2.015]],"o":[[2.509,4.914],[-3.948,2.015],[-4.225,-7.134],[3.948,-2.015]],"v":[[-0.269,46.986],[-3.725,59.968],[-15.327,55.043],[-13.818,40.199]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[-3.235,-6.648],[3.249,-1.74],[2.314,4.1],[-3.249,1.74]],"o":[[2.065,4.244],[-3.249,1.74],[-3.478,-6.161],[3.249,-1.74]],"v":[[-3.485,48.36],[-6.329,59.569],[-15.878,55.317],[-14.637,42.499]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[{"i":[[-3.93,-6.86],[3.948,-1.796],[2.812,4.23],[-3.948,1.796]],"o":[[2.509,4.379],[-3.948,1.796],[-4.225,-6.357],[3.948,-1.796]],"v":[[-0.269,49.566],[-3.725,61.133],[-15.327,56.744],[-13.818,43.518]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":160,"s":[{"i":[[-3.93,-6.86],[3.948,-1.796],[2.812,4.23],[-3.948,1.796]],"o":[[2.509,4.379],[-3.948,1.796],[-4.225,-6.357],[3.948,-1.796]],"v":[[-0.269,49.566],[-3.725,61.133],[-15.327,56.744],[-13.818,43.518]],"c":true}]},{"t":180,"s":[{"i":[[-3.93,-7.699],[3.948,-2.015],[2.812,4.747],[-3.948,2.015]],"o":[[2.509,4.914],[-3.948,2.015],[-4.225,-7.134],[3.948,-2.015]],"v":[[-0.269,46.986],[-3.725,59.968],[-15.327,55.043],[-13.818,40.199]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.941176474094,0.847058832645,0.705882370472,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[11.287,0.292],[3.048,-1.351],[3.153,1.398],[3.628,-0.094],[-0.105,-10.467],[-29.829,0],[-0.445,8.16]],"o":[[-3.628,-0.094],[-3.153,1.398],[-3.048,-1.351],[-11.287,0.292],[0.079,7.902],[29.532,0],[0.569,-10.452]],"v":[[23.934,29.849],[11.849,32.814],[-0.121,32.814],[-12.206,29.849],[-28.625,47.042],[5.864,70.656],[40.353,47.042]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[11.712,0.252],[3.163,-1.167],[2.595,1.207],[2.986,-0.081],[-0.086,-9.038],[-29.829,0],[-0.461,7.046]],"o":[[-3.765,-0.081],[-3.271,1.207],[-2.509,-1.167],[-9.29,0.252],[0.065,6.824],[29.532,0],[0.591,-9.025]],"v":[[24.509,32.627],[11.968,35.188],[-3.302,35.551],[-13.249,32.991],[-26.763,47.838],[5.864,67.865],[41.548,47.474]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[{"i":[[11.287,0.26],[3.048,-1.204],[3.153,1.245],[3.628,-0.084],[-0.105,-9.326],[-29.829,0],[-0.445,7.27]],"o":[[-3.628,-0.084],[-3.153,1.245],[-3.048,-1.204],[-11.287,0.26],[0.079,7.041],[29.532,0],[0.569,-9.313]],"v":[[23.934,34.296],[11.849,36.938],[-0.121,36.938],[-12.206,34.296],[-28.625,49.616],[5.864,70.656],[40.353,49.616]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":160,"s":[{"i":[[10.052,0.26],[2.715,-1.204],[3.153,1.245],[3.628,-0.084],[-0.105,-9.326],[-29.824,-0.55],[-0.396,7.27]],"o":[[-3.231,-0.084],[-2.808,1.245],[-3.048,-1.204],[-11.287,0.26],[0.079,7.041],[23.725,0.437],[0.507,-9.313]],"v":[[22.268,34.296],[11.505,36.938],[-0.121,36.938],[-12.206,34.296],[-28.625,49.616],[5.864,70.656],[36.891,49.616]],"c":true}]},{"t":180,"s":[{"i":[[11.287,0.292],[3.048,-1.351],[3.153,1.398],[3.628,-0.094],[-0.105,-10.467],[-29.829,0],[-0.445,8.16]],"o":[[-3.628,-0.094],[-3.153,1.398],[-3.048,-1.351],[-11.287,0.292],[0.079,7.902],[29.532,0],[0.569,-10.452]],"v":[[23.934,29.849],[11.849,32.814],[-0.121,32.814],[-12.206,29.849],[-28.625,47.042],[5.864,70.656],[40.353,47.042]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.749019622803,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"parent":6,"sr":1,"ks":{"p":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[5.864,107.189,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[5.864,118.768,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[12.709,118.768,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":121,"s":[17.152,118.768,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.66,"y":0},"t":160,"s":[16.39,118.768,0],"to":[0,0,0],"ti":[0,0,0]},{"t":180,"s":[5.864,107.189,0]}]},"a":{"a":0,"k":[5.864,107.189,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[1.188,-2.439],[0.921,0.417],[6.452,0.59],[6.878,0],[2.613,-0.213],[1.434,-0.652],[-0.372,-1.404],[-1.391,0.611],[-6.645,0.566],[-7.086,0],[-2.685,-0.256],[-1.475,-0.645]],"o":[[0.378,-1.404],[-1.435,-0.65],[-2.605,-0.238],[-6.884,0],[-6.452,0.525],[-0.92,0.418],[-1.188,-2.439],[1.479,-0.65],[2.688,-0.229],[7.086,0],[6.639,0.632],[1.396,0.611]],"v":[[34.087,94.056],[33.413,91.171],[21.553,89.807],[5.926,89.257],[-9.991,89.703],[-21.919,91.171],[-22.598,94.051],[-22.751,89.003],[-10.911,87.679],[5.926,87.083],[22.498,87.794],[34.24,89.003]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[1.017,-0.984],[0.74,0.137],[5.016,-1.003],[5.593,0.145],[2.029,0.395],[1.204,-0.161],[-0.212,-0.564],[-1.167,0.148],[-5.167,-0.995],[-5.762,-0.149],[-2.091,0.414],[-1.186,-0.211]],"o":[[0.337,-0.558],[-1.153,-0.214],[-2.025,0.405],[-5.598,-0.145],[-5.01,-0.975],[-0.773,0.104],[-0.808,-1.014],[1.241,-0.158],[2.09,0.403],[5.762,0.149],[5.17,-1.023],[1.122,0.2]],"v":[[28.803,92.74],[28.316,91.634],[19.599,92.311],[6.09,93.951],[-7.27,92.32],[-16.157,90.934],[-16.891,92.001],[-16.693,90.047],[-7.328,91.453],[6.186,93.108],[19.666,91.443],[29.034,90.766]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[{"i":[[1.256,-2.534],[1.014,0.402],[6.927,-1.686],[8.899,0.328],[3.31,0.598],[1.887,-0.603],[-0.414,-1.463],[-1.829,0.563],[-8.426,-1.496],[-9.169,-0.338],[-2.887,0.692],[-1.624,-0.62]],"o":[[0.388,-1.45],[-1.58,-0.626],[-2.797,0.681],[-8.906,-0.328],[-8.173,-1.477],[-1.211,0.387],[-1.42,-2.568],[1.944,-0.599],[3.408,0.605],[9.169,0.338],[7.137,-1.711],[1.538,0.587]],"v":[[37.651,91.831],[36.864,88.893],[24.871,90.643],[5.114,92.575],[-16.163,90.365],[-30.599,88.025],[-31.617,90.958],[-31.571,85.752],[-16.566,88.1],[5.219,90.335],[25.141,88.354],[37.729,86.646]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.66,"y":0},"t":160,"s":[{"i":[[0.95,-2.81],[1.167,0.24],[7.456,-2.218],[10.941,-0.562],[4.156,0.133],[2.245,-0.811],[-0.67,-1.462],[-2.179,0.764],[-10.576,-0.313],[-11.273,0.579],[-3.108,0.914],[-1.865,-0.361]],"o":[[0.184,-1.552],[-1.819,-0.374],[-3.01,0.896],[-10.95,0.563],[-10.263,-0.329],[-1.44,0.52],[-2.025,-2.496],[2.316,-0.812],[4.278,0.126],[11.273,-0.58],[7.683,-2.259],[1.766,0.342]],"v":[[42.841,84.703],[41.504,81.824],[28.447,86.054],[6.063,90.174],[-20.024,90.406],[-38.1,89.492],[-39.02,92.61],[-39.544,87.254],[-20.919,88.139],[5.943,87.862],[28.625,83.676],[42.077,79.374]],"c":true}]},{"t":180,"s":[{"i":[[2.193,-4.476],[1.697,0.768],[11.863,-1.475],[12.691,0],[4.8,0.596],[2.647,-1.192],[-0.687,-2.577],[-2.567,1.122],[-12.216,-1.475],[-13.075,0],[-4.941,0.596],[-2.718,-1.192]],"o":[[0.697,-2.577],[-2.647,-1.192],[-4.789,0.596],[-12.701,0],[-11.852,-1.475],[-1.697,0.768],[-2.193,-4.476],[2.728,-1.192],[4.941,0.596],[13.075,0],[12.216,-1.475],[2.576,1.122]],"v":[[58.155,95.404],[56.912,90.109],[36.046,93.282],[5.865,95.192],[-24.327,93.282],[-45.182,90.109],[-46.435,95.394],[-46.718,86.128],[-25.226,89.301],[5.865,91.201],[36.956,89.301],[58.437,86.128]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.015686275437,0,0.003921568859,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0.676,0],[6.173,0],[4.992,3.171],[-1.401,0],[0,0],[-6.229,-1.128]],"o":[[-4.927,3.051],[-6.347,0],[-0.236,0],[6.404,0],[0,0],[1.339,0.243]],"v":[[23.022,105.559],[5.744,111.007],[-11.941,105.116],[-8.151,106.691],[5.555,107.59],[19.484,106.941]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[1.451,-0.113],[5.02,0.13],[3.846,1.534],[-1.083,-0.29],[-3.642,0.125],[-3.577,1.294]],"o":[[-4.069,1.325],[-5.161,-0.134],[-0.191,-0.015],[5.789,1.549],[5.19,-0.178],[-0.502,0.234]],"v":[[20.57,96.753],[5.352,99.132],[-8.187,96.863],[-4.341,97.826],[7.524,99.085],[25.156,95.088]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[{"i":[[1.436,-1.581],[7.987,0.294],[6.305,3.503],[-3.242,0.796],[-6.061,0.252],[-5.656,-2.505]],"o":[[-7.476,4.197],[-8.211,-0.302],[-6.499,-3.529],[9.718,-2.101],[9.706,-0.35],[2.272,0.633]],"v":[[27.076,102.043],[1.752,108.056],[-18.578,102.846],[-19.762,98.709],[-1.653,95.626],[23.04,97.634]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.66,"y":0},"t":160,"s":[{"i":[[0.932,-3.228],[9.82,-0.505],[8.116,2.964],[-5.032,1.599],[-6.076,0.443],[-9.806,-0.981]],"o":[[-9.452,6.314],[-10.096,0.519],[-13.083,-6.421],[9.354,-2.973],[12.987,-0.946],[5.231,0.523]],"v":[[33.069,97.061],[1.721,108.089],[-22.824,103.774],[-30.308,95.764],[-12.589,91.995],[18.845,92.212]],"c":true}]},{"t":180,"s":[{"i":[[1.87,-5.25],[11.39,0],[9.21,5.82],[-5.92,2.3],[0,0],[-10.91,-4.15]],"o":[[-9.09,5.6],[-11.71,0],[-1.77,-5.25],[11,-4.29],[0,0],[5.82,2.21]],"v":[[37.739,116.517],[5.859,126.517],[-26.771,116.047],[-19.781,101.617],[5.509,103.267],[31.209,102.077]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.698039233685,0.274509817362,0.376470595598,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[2,0.88],[6.637,0.633],[7.087,0],[2.687,-0.229],[1.475,-0.649],[-2.5,-3.795],[-11.418,0],[-3.544,5.379]],"o":[[-1.475,-0.649],[-2.684,-0.256],[-7.087,0],[-6.643,0.567],[-2,0.88],[3.544,5.379],[11.418,0],[2.5,-3.795]],"v":[[34.242,89.001],[22.499,87.793],[5.925,87.084],[-10.913,87.679],[-22.749,89.001],[-20.634,97.431],[5.746,111.004],[32.127,97.431]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[1.607,0.288],[5.168,-1.022],[5.763,0.149],[2.089,0.402],[1.238,-0.158],[-1.785,-1.619],[-9.285,-0.241],[-2.994,2.195]],"o":[[-1.186,-0.213],[-2.09,0.414],[-5.763,-0.149],[-5.166,-0.995],[-1.678,0.214],[2.53,2.294],[9.285,0.241],[2.112,-1.548]],"v":[[29.035,90.765],[19.666,91.443],[6.185,93.108],[-7.329,91.453],[-16.691,90.046],[-15.514,93.426],[5.354,99.131],[27.139,94.11]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[{"i":[[2.202,0.846],[7.134,-1.709],[9.17,0.338],[3.407,0.605],[1.94,-0.598],[-3.052,-4.028],[-14.773,-0.544],[-3.779,5.615]],"o":[[-1.625,-0.624],[-2.885,0.691],[-9.17,-0.338],[-8.424,-1.495],[-2.63,0.811],[4.325,5.708],[14.773,0.544],[2.666,-3.961]],"v":[[37.731,86.644],[25.142,88.353],[5.218,90.337],[-16.568,88.099],[-31.567,85.751],[-29.238,94.533],[1.755,108.053],[35.568,95.346]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.66,"y":0},"t":160,"s":[{"i":[[2.531,0.494],[7.681,-2.256],[11.274,-0.58],[4.276,0.126],[2.311,-0.811],[-4.187,-3.831],[-18.163,0.934],[-3.187,6.396]],"o":[[-1.867,-0.365],[-3.106,0.913],[-11.274,0.58],[-10.573,-0.312],[-3.133,1.099],[5.935,5.43],[18.163,-0.934],[2.249,-4.513]],"v":[[42.079,79.372],[28.625,83.675],[5.942,87.864],[-20.922,88.139],[-39.54,87.252],[-35.708,96.043],[1.725,108.086],[41.153,88.66]],"c":true}]},{"t":180,"s":[{"i":[[3.69,1.615],[12.212,-1.472],[13.077,0],[4.939,0.595],[2.722,-1.191],[-4.613,-6.966],[-21.068,0],[-6.539,9.873]],"o":[[-2.722,-1.191],[-4.939,0.595],[-13.077,0],[-12.212,-1.472],[-3.69,1.615],[6.539,9.873],[21.068,0],[4.614,-6.966]],"v":[[58.441,86.126],[36.956,89.3],[5.864,91.203],[-25.229,89.3],[-46.713,86.126],[-42.811,101.598],[5.863,126.512],[54.538,101.598]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.247058823705,0.039215687662,0.141176477075,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[3.188,0.413],[6.882,0.687],[7.357,0],[2.786,-0.25],[1.597,-0.464],[-2.595,-3.795],[-11.852,0],[-3.679,5.379]],"o":[[-1.648,-0.214],[-2.783,-0.278],[-7.357,0],[-6.889,0.618],[-3.048,0.885],[3.678,5.379],[11.852,0],[2.595,-3.795]],"v":[[34.242,89.001],[22.653,90.081],[5.925,89.286],[-11.089,89.965],[-22.749,89.001],[-21.823,100.948],[5.733,115.682],[33.554,101.21]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[2.583,0.074],[5.369,-1.05],[5.982,0.155],[2.17,0.413],[1.325,-0.079],[-2.386,-3.93],[-7.235,-0.257],[-3.03,3.731]],"o":[[-1.336,-0.038],[-2.171,0.425],[-5.982,-0.155],[-5.367,-1.021],[-2.529,0.15],[3.381,5.571],[7.377,0.262],[2.898,-3.569]],"v":[[29.035,90.765],[20.509,92.2],[6.088,93.963],[-8.177,92.214],[-16.691,90.046],[-17.383,94.585],[6.044,102.764],[28.688,96.663]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[{"i":[[3.494,0.335],[7.409,-1.743],[9.518,0.351],[3.538,0.615],[2.088,-0.401],[-3.174,-4.032],[-15.334,-0.565],[-3.927,5.618]],"o":[[-1.806,-0.173],[-2.996,0.705],[-9.518,-0.351],[-8.747,-1.521],[-3.987,0.766],[4.499,5.715],[15.334,0.565],[2.77,-3.964]],"v":[[37.731,86.644],[26.114,90.524],[5.112,92.605],[-17.617,90.283],[-31.567,85.751],[-30.51,99.394],[1.222,115.316],[36.399,100.422]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.66,"y":0},"t":160,"s":[{"i":[[3.85,-0.249],[7.978,-2.31],[11.702,-0.602],[4.438,0.118],[2.514,-0.624],[-4.338,-3.824],[-18.853,0.969],[-3.346,6.425]],"o":[[-1.99,0.129],[-3.227,0.934],[-11.702,0.602],[-10.973,-0.291],[-4.8,1.191],[6.149,5.419],[18.853,-0.969],[2.361,-4.533]],"v":[[42.079,79.372],[29.794,85.846],[6.064,90.205],[-21.818,90.533],[-39.54,87.252],[-36.41,102.429],[1.776,115.02],[42.073,94.869]],"c":true}]},{"t":180,"s":[{"i":[[5.883,0.759],[12.676,-1.472],[13.573,0],[5.127,0.595],[2.946,-0.851],[-4.788,-6.966],[-21.868,0],[-6.787,9.873]],"o":[[-3.042,-0.392],[-5.126,0.595],[-13.574,0],[-12.676,-1.472],[-5.624,1.625],[6.787,9.873],[21.868,0],[4.789,-6.966]],"v":[[58.441,86.126],[38.137,93.341],[5.864,95.245],[-26.41,93.341],[-46.713,86.126],[-43.649,106.65],[5.863,132.575],[55.376,106.65]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.956862747669,0.913725495338,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[2,0.88],[6.637,0.633],[7.087,0],[2.687,-0.229],[1.475,-0.649],[-2.5,-3.795],[-11.418,0],[-3.544,5.379]],"o":[[-1.475,-0.649],[-2.684,-0.256],[-7.087,0],[-6.643,0.567],[-2,0.88],[3.544,5.379],[11.418,0],[2.5,-3.795]],"v":[[35.881,85.862],[23.167,84.726],[5.922,83.945],[-11.558,84.606],[-24.395,85.862],[-22.277,95.229],[5.746,108.802],[33.769,95.229]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[1.949,0.987],[6.41,-1.835],[7.077,0.384],[2.587,0.759],[1.508,-0.568],[-1.785,-1.619],[-9.285,-0.241],[-2.994,2.195]],"o":[[-1.438,-0.728],[-2.592,0.742],[-7.077,-0.384],[-6.398,-1.876],[-2.045,0.77],[2.53,2.294],[9.285,0.241],[2.112,-1.548]],"v":[[30.955,88.569],[19.615,89.611],[6.244,91.503],[-4.363,90.244],[-17.917,88.065],[-16.706,92.475],[5.451,98.277],[28.521,93.206]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[{"i":[[2.202,0.846],[7.134,-1.709],[9.17,0.338],[3.407,0.605],[1.94,-0.598],[-3.052,-4.028],[-14.773,-0.544],[-3.779,5.615]],"o":[[-1.625,-0.624],[-2.885,0.691],[-9.17,-0.338],[-8.424,-1.495],[-2.63,0.811],[4.325,5.708],[14.773,0.544],[2.666,-3.961]],"v":[[39.534,83.874],[24.815,85.631],[5.37,87.603],[-16.245,85.392],[-33.541,82.938],[-31.257,92.187],[1.861,105.786],[37.325,93.043]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.66,"y":0},"t":160,"s":[{"i":[[2.531,0.494],[7.681,-2.256],[11.274,-0.58],[4.276,0.126],[2.311,-0.811],[-4.187,-3.831],[-18.163,0.934],[-3.187,6.396]],"o":[[-1.867,-0.365],[-3.106,0.913],[-11.274,0.58],[-10.573,-0.312],[-3.133,1.099],[5.935,5.43],[18.163,-0.934],[2.249,-4.513]],"v":[[43.611,76.712],[28.213,81.367],[5.82,85.522],[-21.044,85.797],[-42.275,85.045],[-38.444,93.836],[1.603,105.744],[42.685,86]],"c":true}]},{"t":180,"s":[{"i":[[3.69,1.615],[12.212,-1.472],[13.077,0],[4.939,0.595],[2.722,-1.191],[-4.613,-6.966],[-21.068,0],[-6.539,9.873]],"o":[[-2.722,-1.191],[-4.939,0.595],[-13.077,0],[-12.212,-1.472],[-3.69,1.615],[6.539,9.873],[21.068,0],[4.614,-6.966]],"v":[[61.472,82.084],[36.956,85.258],[5.864,87.162],[-25.229,85.258],[-49.744,82.084],[-45.842,97.556],[5.863,122.47],[57.569,97.556]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.749019622803,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"parent":5,"sr":1,"ks":{"p":{"a":0,"k":[5.303,144.067,0]},"a":{"a":0,"k":[5.303,144.067,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-10.992,-6.96],[0,0],[-16.976,11.779],[-18.657,4.78]],"o":[[17.211,5.126],[18.61,11.782],[0,0],[10.182,-7.065],[0,0]],"v":[[-70.986,150.908],[-27.847,165.744],[5.303,176.601],[37.654,165.544],[81.313,150.908]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[-11.59,-7.414],[0,0],[-14.698,7.139],[-18.287,2.781]],"o":[[11.917,5.276],[19.623,12.552],[0,0],[7.38,-3.585],[0,0]],"v":[[-89.369,144.471],[-53.673,162.62],[-18.121,174.858],[16.833,167.523],[52.16,156.423]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[{"i":[[0,0],[-11.217,-6.89],[-6.694,0.755],[-13.943,10.142],[-18.221,7.812]],"o":[[14.564,5.201],[18.99,11.665],[4.881,-0.55],[7.645,-5.735],[0,0]],"v":[[-58.434,154.392],[-25.997,166.584],[11.457,177.72],[43.851,165.709],[81.342,150.935]],"c":false}]},{"i":{"x":0.34,"y":1},"o":{"x":0.66,"y":0},"t":160,"s":[{"i":[[0,0],[-11.922,-2.112],[-12.765,1.265],[-13.733,9.717],[-18.156,12.771]],"o":[[17.174,5.127],[20.184,3.575],[9.308,-0.922],[8.229,-5.822],[0,0]],"v":[[-39.353,157.947],[-4.021,162.991],[35.085,170.353],[69.022,158.414],[107.404,133.141]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[-10.992,-6.96],[0,0],[-16.976,11.779],[-18.657,4.78]],"o":[[17.211,5.126],[18.61,11.782],[0,0],[10.182,-7.065],[0,0]],"v":[[-70.986,150.908],[-27.847,165.744],[5.303,176.601],[37.654,165.544],[81.313,150.908]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.698039233685,0.584313750267,0.447058826685,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[-24.85,4.01],[2.81,-4.07],[4.9,-0.67],[10.74,-7.45],[0,0],[16.98,11.78],[7.38,1.01],[3.407,3.585],[1.57,5.1],[-14.42,-8.27],[-8.4,5.66]],"o":[[-1.671,6.6],[-2.81,4.07],[-7.38,1.01],[-16.97,11.78],[0,0],[-10.73,-7.45],[-4.9,-0.67],[-3.841,-4.041],[12.31,3.41],[17.93,10.29],[7.89,-5.32]],"v":[[91.856,131.627],[83.799,149.584],[68.549,154.317],[37.649,165.547],[5.299,176.597],[-27.051,165.547],[-57.941,154.317],[-72.457,150.111],[-81.201,131.67],[-17.101,154.037],[28.949,154.037]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[-24.85,4.01],[2.81,-4.07],[4.9,-0.67],[7.289,-3.787],[0,0],[17.838,12.486],[4.657,1.734],[3.407,3.585],[1.57,5.1],[-17.85,-8.275],[-8.4,5.66]],"o":[[-1.671,6.6],[-2.81,4.07],[-7.38,1.01],[-14.468,7.517],[0,0],[-11.275,-7.893],[-4.634,-1.727],[-3.841,-4.041],[11.925,5.234],[22.198,10.29],[7.89,-5.32]],"v":[[61.653,139.769],[52.808,154.837],[50.165,158.256],[16.829,167.525],[-18.125,174.854],[-52.792,162.456],[-83.678,147.618],[-87.426,144.856],[-98.469,124.185],[-47.396,153.643],[4.814,154.431]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[{"i":[[-21.116,6.554],[2.81,-4.07],[4.354,-1.912],[7.815,-6.052],[0,0],[17.273,11.577],[6.018,1.372],[3.407,3.585],[1.57,5.1],[-16.234,-6.813],[-10.473,7.85]],"o":[[-1.671,6.6],[-2.81,4.07],[-7.812,3.919],[-13.825,10.331],[0,0],[-10.918,-7.318],[-4.767,-1.198],[-3.841,-4.041],[11.925,5.236],[26.755,10.877],[8.681,-6.45]],"v":[[87.149,133.888],[81.988,149.348],[77.23,153.675],[43.847,165.712],[11.453,177.717],[-25.152,166.45],[-51.171,156.947],[-56.487,154.779],[-65.723,137.499],[-13.565,157.023],[45.039,152.058]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.66,"y":0},"t":160,"s":[{"i":[[-17.436,9.061],[2.81,-4.07],[3.816,-3.137],[8.675,-6.139],[0,0],[18.575,3.951],[7.36,1.015],[3.407,3.585],[1.57,5.1],[-14.642,-4.542],[-12.516,8.448]],"o":[[-1.671,6.6],[-2.81,4.07],[-8.237,6.787],[-13.729,9.716],[0,0],[-11.741,-2.497],[-4.898,-0.678],[-3.841,-4.041],[11.925,5.238],[31.247,9.675],[9.461,-6.386]],"v":[[113.319,112.787],[106.6,132.525],[99.759,137.291],[69.018,158.417],[35.082,170.351],[-3.268,162.678],[-17.572,159.917],[-37.403,158.334],[-46.934,141.285],[14.784,153.302],[72.427,142.515]],"c":true}]},{"t":180,"s":[{"i":[[-24.85,4.01],[2.81,-4.07],[4.9,-0.67],[10.74,-7.45],[0,0],[16.98,11.78],[7.38,1.01],[3.407,3.585],[1.57,5.1],[-14.42,-8.27],[-8.4,5.66]],"o":[[-1.671,6.6],[-2.81,4.07],[-7.38,1.01],[-16.97,11.78],[0,0],[-10.73,-7.45],[-4.9,-0.67],[-3.841,-4.041],[12.31,3.41],[17.93,10.29],[7.89,-5.32]],"v":[[91.856,131.627],[83.799,149.584],[68.549,154.317],[37.649,165.547],[5.299,176.597],[-27.051,165.547],[-57.941,154.317],[-72.457,150.111],[-81.201,131.67],[-17.101,154.037],[28.949,154.037]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":11},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[51.445,12.472],[11.245,-13.381],[2.922,3.477],[38.8,-9.406],[-5.196,-23.384],[-28.607,-10.289],[0.785,-3.583],[-16.2,-23.457],[-4.902,-0.674],[-10.738,-7.451],[0,0],[-16.975,11.779],[-7.382,1.015],[-2.812,4.072],[3.47,15.845],[-3.452,1.242],[-4.853,21.841]],"o":[[-38.801,-9.406],[-2.922,3.477],[-11.245,-13.381],[-51.445,12.472],[4.854,21.841],[3.452,1.242],[-3.47,15.845],[2.812,4.072],[7.382,1.015],[16.975,11.779],[0,0],[10.737,-7.451],[4.902,-0.674],[16.2,-23.457],[-0.785,-3.583],[28.607,-10.289],[5.197,-23.384]],"v":[[88.579,-75.949],[10.891,-45.909],[-0.285,-45.909],[-77.973,-75.949],[-132.017,4.597],[-80.556,57.662],[-75.875,66.071],[-70.075,146.877],[-57.943,154.316],[-27.048,165.544],[5.303,176.601],[37.654,165.544],[68.548,153.316],[80.68,146.877],[86.481,66.071],[91.162,57.662],[142.623,4.597]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[56.478,10.772],[11.245,-11.558],[2.922,3.003],[29.193,-5.044],[-1.651,-23.642],[-28.607,-10.289],[0.785,-3.583],[-11.514,-17.678],[-4.902,-0.674],[-11.284,-7.894],[0,0],[-14.528,7.426],[-7.382,1.015],[-2.119,4.472],[-9.613,26.277],[-3.578,0.809],[-7.366,31.728]],"o":[[-42.596,-8.125],[-2.922,3.003],[-11.245,-11.558],[-27.428,4.739],[1.542,22.083],[3.452,1.241],[-3.47,15.845],[2.701,4.147],[7.382,1.015],[17.838,12.479],[0,0],[6.521,-3.333],[4.902,-0.674],[10.121,-21.355],[1.258,-3.445],[30.413,-6.879],[7.887,-33.97]],"v":[[68.29,-21.352],[-24.303,10.893],[-35.478,10.893],[-102.046,-23.16],[-135.705,34.244],[-100.516,88.128],[-95.835,96.537],[-85.044,141.622],[-82.498,147.092],[-52.788,162.453],[-18.121,174.858],[16.833,167.523],[50.164,157.256],[49.689,152.129],[53.914,97.85],[58.595,89.441],[122.669,44.587]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[{"i":[[42.499,7.368],[11.245,-11.798],[2.922,3.066],[36.255,-6.612],[-3.555,-21.167],[-28.607,-10.289],[0.785,-3.583],[-11.509,-17.672],[-4.902,-0.674],[-10.926,-7.319],[0,0],[-13.858,10.286],[-7.848,3.264],[-1.715,4.622],[-3.071,21.061],[-3.515,1.025],[-4.608,26.082]],"o":[[-32.053,-5.557],[-2.922,3.066],[-11.245,-11.798],[-46.231,8.456],[3.321,19.771],[3.452,1.242],[-3.47,15.845],[2.7,4.147],[7.382,1.015],[17.273,11.571],[0,0],[7.431,-5.824],[4.513,-1.704],[7.352,-19.017],[0.237,-3.514],[29.51,-8.584],[4.606,-23.978]],"v":[[92.829,-22],[16.978,7.294],[5.803,7.294],[-79.789,-24.136],[-125.22,36.758],[-71.063,91.068],[-66.381,99.477],[-54.105,151.545],[-50.582,156.684],[-25.148,166.447],[11.457,177.72],[43.851,165.709],[77.265,153.766],[78.869,146.641],[84.013,94.607],[88.694,86.198],[138.553,41.26]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.66,"y":0},"t":160,"s":[{"i":[[25.701,4.013],[11.245,-12.034],[2.922,3.127],[38.764,-7.506],[-5.173,-23.076],[-28.607,-10.289],[0.785,-3.583],[-11.505,-17.666],[-4.902,-0.674],[-11.748,-2.496],[0,0],[-13.73,9.721],[-8.307,5.481],[-2.076,4.491],[1.869,16.855],[-3.09,1.238],[-1.706,22.317]],"o":[[-19.384,-3.026],[-2.922,3.127],[-11.245,-12.034],[-51.371,9.948],[4.832,21.554],[3.452,1.241],[-3.47,15.845],[2.7,4.147],[7.382,1.015],[18.573,3.946],[0,0],[8.668,-6.137],[4.13,-2.72],[7.275,-15.74],[-0.412,-3.642],[25.612,-10.265],[1.228,-16.058]],"v":[[112.756,-22.639],[57.669,3.748],[46.494,3.748],[-55.172,-25.099],[-103.905,43.585],[-36.842,96.56],[-32.16,104.969],[-35.021,155.1],[-17.565,159.913],[-3.265,162.675],[35.085,170.353],[69.022,158.414],[99.829,138.459],[105.036,129.47],[113.682,91.411],[113.961,83.002],[143.72,34.722]],"c":true}]},{"t":180,"s":[{"i":[[51.445,12.472],[11.245,-13.381],[2.922,3.477],[38.8,-9.406],[-5.196,-23.384],[-28.607,-10.289],[0.785,-3.583],[-16.2,-23.457],[-4.902,-0.674],[-10.738,-7.451],[0,0],[-16.975,11.779],[-7.382,1.015],[-2.812,4.072],[3.47,15.845],[-3.452,1.242],[-4.853,21.841]],"o":[[-38.801,-9.406],[-2.922,3.477],[-11.245,-13.381],[-51.445,12.472],[4.854,21.841],[3.452,1.242],[-3.47,15.845],[2.812,4.072],[7.382,1.015],[16.975,11.779],[0,0],[10.737,-7.451],[4.902,-0.674],[16.2,-23.457],[-0.785,-3.583],[28.607,-10.289],[5.197,-23.384]],"v":[[88.579,-75.949],[10.891,-45.909],[-0.285,-45.909],[-77.973,-75.949],[-132.017,4.597],[-80.556,57.662],[-75.875,66.071],[-70.075,146.877],[-57.943,154.316],[-27.048,165.544],[5.303,176.601],[37.654,165.544],[68.548,153.316],[80.68,146.877],[86.481,66.071],[91.162,57.662],[142.623,4.597]],"c":true}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.941176474094,0.847058832645,0.701960802078,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[-6.695,-15.921],[5.747,-3.178],[22.493,4.591],[6.631,-1.555],[16.983,8.766],[-3.144,6.284],[-28.696,7.38],[-11.25,-13.38],[-2.92,3.48],[-38.8,-9.4]],"o":[[2.546,6.053],[-39.7,21.954],[-6.674,-1.362],[-56.127,13.163],[-6.244,-3.223],[5.486,-10.965],[38.664,-9.944],[2.92,3.48],[11.25,-13.38],[26.786,6.499]],"v":[[134.093,-35.971],[128.458,-19.704],[14.574,-11.647],[-5.621,-11.396],[-116.496,-21.256],[-122.192,-38.41],[-76.315,-72.759],[-0.282,-45.913],[10.887,-45.913],[87.791,-72.245]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[-5.004,-8.325],[6.396,-2.745],[22.493,3.965],[6.796,0.395],[14.379,1.024],[-8.034,6.68],[-17.189,-1.254],[-11.238,-11.569],[-2.923,3.003],[-42.6,-8.13]],"o":[[3.08,5.124],[-44.184,18.963],[-6.674,-1.176],[-25.168,-1.463],[-16.883,-1.202],[9.541,-7.933],[20.785,1.516],[2.92,3.006],[11.25,-11.557],[29.412,5.613]],"v":[[108.161,5.372],[101.89,19.422],[-18.584,31.862],[-38.779,32.078],[-94.428,5.977],[-124.5,-11.613],[-92.396,-20.793],[-35.546,10.96],[-24.376,10.96],[67.383,-18.075]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[{"i":[[-7.251,-6.149],[5.872,-2.326],[22.493,4.047],[6.714,-0.502],[16.307,4.015],[-6.23,5.852],[-23.691,2.323],[-11.238,-11.808],[-2.923,3.065],[-32.058,-5.562]],"o":[[5.992,4.424],[-40.293,15.973],[-6.674,-1.201],[-40.648,5.189],[-12.298,-1.889],[8.274,-8.349],[30.629,-3.216],[2.92,3.068],[11.25,-11.797],[22.134,3.84]],"v":[[118.226,-5.669],[107.38,10.454],[22.425,27.39],[2.23,27.611],[-89.895,12.313],[-109.951,-3.463],[-72.523,-21.702],[5.733,7.287],[16.903,7.287],[92.058,-20.411]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.66,"y":0},"t":160,"s":[{"i":[[-8.5,-3.973],[4.787,-1.908],[22.493,4.13],[6.631,-1.399],[16.983,7.007],[-3.144,5.023],[-28.696,5.9],[-11.238,-12.048],[-2.923,3.127],[-19.255,-2.993]],"o":[[7.97,3.725],[-32.576,12.984],[-6.674,-1.225],[-56.127,11.841],[-6.244,-2.576],[5.486,-8.765],[38.664,-7.949],[2.92,3.13],[11.25,-12.036],[13.295,2.066]],"v":[[122.845,-16.709],[109.044,1.486],[63.433,22.918],[43.238,23.143],[-82.88,18.648],[-89.102,4.687],[-53.204,-22.612],[47.011,3.613],[58.181,3.613],[112.501,-22.747]],"c":true}]},{"t":180,"s":[{"i":[[-6.695,-15.921],[5.747,-3.178],[22.493,4.591],[6.631,-1.555],[16.983,8.766],[-3.144,6.284],[-28.696,7.38],[-11.25,-13.38],[-2.92,3.48],[-38.8,-9.4]],"o":[[2.546,6.053],[-39.7,21.954],[-6.674,-1.362],[-56.127,13.163],[-6.244,-3.223],[5.486,-10.965],[38.664,-9.944],[2.92,3.48],[11.25,-13.38],[26.786,6.499]],"v":[[134.093,-35.971],[128.458,-19.704],[14.574,-11.647],[-5.621,-11.396],[-116.496,-21.256],[-122.192,-38.41],[-76.315,-72.759],[-0.282,-45.913],[10.887,-45.913],[87.791,-72.245]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.749019622803,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[51.445,12.472],[11.245,-13.381],[2.922,3.477],[38.8,-9.406],[-5.196,-23.384],[-28.607,-10.289],[0.785,-3.583],[-16.2,-23.457],[-4.902,-0.674],[-10.738,-7.451],[0,0],[-16.975,11.779],[-7.382,1.015],[-2.812,4.072],[3.47,15.845],[-3.452,1.242],[-4.853,21.841]],"o":[[-38.801,-9.406],[-2.922,3.477],[-11.245,-13.381],[-51.445,12.472],[4.854,21.841],[3.452,1.242],[-3.47,15.845],[2.812,4.072],[7.382,1.015],[16.975,11.779],[0,0],[10.737,-7.451],[4.902,-0.674],[16.2,-23.457],[-0.785,-3.583],[28.607,-10.289],[5.197,-23.384]],"v":[[88.579,-75.949],[10.891,-45.909],[-0.285,-45.909],[-77.973,-75.949],[-132.017,4.597],[-80.556,57.662],[-75.875,66.071],[-70.075,146.877],[-57.943,154.316],[-27.048,165.544],[5.303,176.601],[37.654,165.544],[68.548,154.316],[80.68,146.877],[86.481,66.071],[91.162,57.662],[142.623,4.597]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[56.478,10.772],[11.245,-11.558],[2.922,3.003],[33.966,-5.652],[-1.651,-23.642],[-28.607,-10.289],[0.785,-3.583],[-16.2,-23.457],[-4.902,-0.674],[-11.284,-7.894],[0,0],[-14.094,8.101],[-7.382,1.015],[-1.927,4.558],[-10.401,26.277],[-3.581,0.796],[-7.366,31.728]],"o":[[-42.596,-8.125],[-2.922,3.003],[-11.245,-11.558],[-28.481,4.739],[1.542,22.083],[3.452,1.241],[-3.47,15.845],[2.812,4.072],[7.382,1.015],[17.839,12.479],[0,0],[8.915,-5.124],[4.902,-0.674],[8.808,-20.829],[1.348,-3.41],[30.939,-6.879],[7.887,-33.97]],"v":[[68.289,-21.352],[-24.303,10.893],[-35.478,10.893],[-102.046,-23.16],[-135.705,34.244],[-100.516,88.128],[-95.835,96.537],[-85.044,141.622],[-82.498,147.092],[-52.788,162.453],[-18.121,174.858],[16.833,167.523],[50.164,158.256],[49.689,152.129],[53.914,97.85],[58.595,89.441],[122.669,44.587]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[{"i":[[42.499,7.368],[11.245,-11.798],[2.922,3.066],[38.832,-7.706],[-3.555,-21.167],[-28.607,-10.289],[0.785,-3.583],[-16.2,-23.457],[-4.902,-0.674],[-10.926,-7.319],[0,0],[-13.641,10.623],[-7.549,4.053],[-1.575,4.676],[-3.465,21.061],[-3.516,1.019],[-5.708,25.871]],"o":[[-32.053,-5.557],[-2.922,3.066],[-11.245,-11.798],[-46.22,9.147],[3.321,19.771],[3.452,1.242],[-3.47,15.845],[2.812,4.072],[7.382,1.015],[17.273,11.571],[0,0],[8.628,-6.72],[4.273,-2.011],[6.432,-18.359],[0.282,-3.497],[29.773,-8.584],[6.111,-27.698]],"v":[[92.829,-22],[16.978,7.294],[5.803,7.294],[-79.789,-24.136],[-125.22,36.758],[-71.063,91.068],[-66.381,99.477],[-54.105,151.545],[-50.582,156.684],[-25.148,166.447],[11.457,177.72],[43.851,165.709],[77.229,153.675],[78.869,146.641],[84.013,94.607],[88.694,86.198],[138.114,42.313]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.66,"y":0},"t":160,"s":[{"i":[[25.701,4.013],[11.245,-12.034],[2.922,3.127],[38.801,-7.522],[-5.173,-23.076],[-28.607,-10.289],[0.785,-3.583],[-11.295,-18.521],[-4.902,-0.674],[-11.748,-2.496],[0,0],[-13.732,9.72],[-7.713,7.048],[-1.993,4.529],[3.371,15.919],[-3.09,1.238],[-3.645,21.899]],"o":[[-19.384,-3.026],[-2.922,3.127],[-11.245,-12.034],[-51.37,9.958],[4.832,21.554],[3.452,1.241],[-3.47,15.845],[2.576,4.225],[7.382,1.015],[18.573,3.946],[0,0],[8.686,-6.148],[3.653,-3.329],[6.622,-15.049],[-0.77,-3.582],[25.616,-10.265],[3.903,-23.446]],"v":[[112.756,-22.639],[57.669,3.748],[46.494,3.748],[-55.172,-25.099],[-103.905,43.585],[-36.842,96.56],[-32.16,104.969],[-35.021,155.1],[-17.565,159.913],[-3.265,162.675],[35.085,170.353],[69.022,158.414],[99.758,137.291],[105.036,129.47],[113.682,91.411],[113.961,83.002],[142.939,36.812]],"c":true}]},{"t":180,"s":[{"i":[[51.445,12.472],[11.245,-13.381],[2.922,3.477],[38.8,-9.406],[-5.196,-23.384],[-28.607,-10.289],[0.785,-3.583],[-16.2,-23.457],[-4.902,-0.674],[-10.738,-7.451],[0,0],[-16.975,11.779],[-7.382,1.015],[-2.812,4.072],[3.47,15.845],[-3.452,1.242],[-4.853,21.841]],"o":[[-38.801,-9.406],[-2.922,3.477],[-11.245,-13.381],[-51.445,12.472],[4.854,21.841],[3.452,1.242],[-3.47,15.845],[2.812,4.072],[7.382,1.015],[16.975,11.779],[0,0],[10.737,-7.451],[4.902,-0.674],[16.2,-23.457],[-0.785,-3.583],[28.607,-10.289],[5.197,-23.384]],"v":[[88.579,-75.949],[10.891,-45.909],[-0.285,-45.909],[-77.973,-75.949],[-132.017,4.597],[-80.556,57.662],[-75.875,66.071],[-70.075,146.877],[-57.943,154.316],[-27.048,165.544],[5.303,176.601],[37.654,165.544],[68.548,154.316],[80.68,146.877],[86.481,66.071],[91.162,57.662],[142.623,4.597]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.941176474094,0.847058832645,0.701960802078,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[24.154,48.305],[13.203,43.885],[77.248,0],[15.205,-50.539],[21.999,-43.995],[-198.638,0]],"o":[[-21.999,-43.995],[-15.205,-50.539],[-78.08,0],[-13.203,43.885],[-24.154,48.305],[198.638,0]],"v":[[169.587,-20.913],[146.026,-110.813],[5.303,-207.093],[-135.42,-110.813],[-158.981,-20.913],[5.303,159.087]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[24.154,48.305],[13.203,43.885],[77.248,0],[15.205,-50.539],[16.359,-45.579],[-188.023,0]],"o":[[-21.999,-43.995],[-15.205,-50.539],[-78.08,0],[-13.203,43.885],[-17.961,50.045],[188.023,0]],"v":[[169.587,-20.913],[146.026,-110.813],[5.303,-207.093],[-135.42,-110.813],[-149.542,-17.661],[5.418,159.087]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[{"i":[[24.154,48.305],[13.203,43.885],[77.248,0],[15.205,-50.539],[21.999,-43.995],[-194.826,0]],"o":[[-21.999,-43.995],[-15.205,-50.539],[-78.08,0],[-13.203,43.885],[-24.154,48.305],[194.826,0]],"v":[[167.219,-19.07],[146.026,-110.813],[5.303,-207.093],[-135.42,-110.813],[-158.981,-20.913],[6.753,160.139]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.66,"y":0},"t":160,"s":[{"i":[[24.154,48.305],[13.203,43.885],[77.248,0],[15.205,-50.539],[21.999,-43.995],[-182.194,0]],"o":[[-21.999,-43.995],[-15.205,-50.539],[-78.08,0],[-13.203,43.885],[-24.154,48.305],[182.194,0]],"v":[[161.166,-14.465],[146.026,-110.813],[5.303,-207.093],[-135.42,-110.813],[-158.981,-20.913],[-11.141,159.218]],"c":true}]},{"t":180,"s":[{"i":[[24.154,48.305],[13.203,43.885],[77.248,0],[15.205,-50.539],[21.999,-43.995],[-198.638,0]],"o":[[-21.999,-43.995],[-15.205,-50.539],[-78.08,0],[-13.203,43.885],[-24.154,48.305],[198.638,0]],"v":[[169.587,-20.913],[146.026,-110.813],[5.303,-207.093],[-135.42,-110.813],[-158.981,-20.913],[5.303,159.087]],"c":true}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-7.633,-2.073]],"o":[[0,0],[0,0]],"v":[[41.579,-186.44],[54.078,-183.608]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[-6.911,-3.848]],"o":[[0,0],[0,0]],"v":[[41.475,-186.389],[52.926,-180.634]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[{"i":[[0,0],[-7.279,-3.094]],"o":[[0,0],[0,0]],"v":[[41.41,-186.344],[53.406,-181.835]],"c":false}]},{"i":{"x":0.34,"y":1},"o":{"x":0.66,"y":0},"t":160,"s":[{"i":[[0,0],[-7.633,-2.073]],"o":[[0,0],[0,0]],"v":[[41.579,-186.44],[54.078,-183.608]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[-7.633,-2.073]],"o":[[0,0],[0,0]],"v":[[41.579,-186.44],[54.078,-183.608]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-1.612,-0.576]],"o":[[1.511,0.494],[0,0]],"v":[[62.717,-181.024],[67.407,-179.42]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[-1.426,-0.947]],"o":[[1.348,0.843],[0,0]],"v":[[60.69,-176.048],[64.856,-173.363]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[{"i":[[0,0],[-1.518,-0.791]],"o":[[1.43,0.695],[0,0]],"v":[[61.612,-178.097],[66.039,-175.869]],"c":false}]},{"i":{"x":0.34,"y":1},"o":{"x":0.66,"y":0},"t":160,"s":[{"i":[[0,0],[-1.612,-0.576]],"o":[[1.511,0.494],[0,0]],"v":[[62.717,-181.024],[67.407,-179.42]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[-1.612,-0.576]],"o":[[1.511,0.494],[0,0]],"v":[[62.717,-181.024],[67.407,-179.42]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,-23.536],[50.223,0],[0,23.536],[-50.223,0]],"o":[[0,23.536],[-50.223,0],[0,-23.536],[50.223,0]],"v":[[96.859,-148.606],[5.921,-105.99],[-85.016,-148.606],[5.921,-191.222]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[4.194,-31.921],[66.685,2.228],[1.486,23.489],[-50.223,0]],"o":[[-3.066,23.336],[-72.763,-2.431],[-2.352,-37.184],[50.223,0]],"v":[[87.385,-129.658],[-13.553,-72.832],[-100.806,-126.5],[5.921,-191.222]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[{"i":[[-3.087,-30.801],[58.454,1.114],[0.743,27.464],[-50.223,0]],"o":[[3.722,26.71],[-61.493,-1.216],[-1.176,-34.312],[50.223,0]],"v":[[102.385,-131.187],[10.395,-72.732],[-91.595,-129.345],[5.921,-191.222]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.66,"y":0},"t":160,"s":[{"i":[[-10.369,-29.681],[50.223,0],[0,31.44],[-50.223,0]],"o":[[10.51,30.085],[-50.223,0],[0,-31.44],[50.223,0]],"v":[[117.385,-132.716],[34.342,-72.632],[-82.385,-132.19],[5.921,-191.222]],"c":true}]},{"t":180,"s":[{"i":[[0,-23.536],[50.223,0],[0,23.536],[-50.223,0]],"o":[[0,23.536],[-50.223,0],[0,-23.536],[50.223,0]],"v":[[96.859,-148.606],[5.921,-105.99],[-85.016,-148.606],[5.921,-191.222]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.780392169952,0.623529434204,0.419607847929,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[22.173,44.342],[12.12,40.285],[70.911,0],[13.958,-46.393],[20.194,-40.385],[-182.343,0]],"o":[[-20.194,-40.385],[-13.957,-46.393],[-71.675,0],[-12.12,40.285],[-22.173,44.342],[182.343,0]],"v":[[156.11,-21.166],[134.482,-103.692],[5.303,-192.073],[-123.876,-103.692],[-145.504,-21.166],[5.303,144.067]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[22.173,44.342],[12.12,40.285],[70.911,0],[13.958,-46.393],[14.077,-41.84],[-172.599,0]],"o":[[-20.194,-40.385],[-13.957,-46.393],[-71.675,0],[-12.12,40.285],[-15.457,45.939],[172.599,0]],"v":[[141.9,-16.956],[134.482,-103.692],[5.303,-192.073],[-123.876,-103.692],[-138.754,-17.347],[5.418,144.067]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[{"i":[[23.821,48.017],[12.12,40.285],[70.911,0],[13.958,-46.393],[20.194,-38.136],[-178.843,0]],"o":[[-20.075,-40.444],[-13.957,-46.393],[-71.675,0],[-12.12,40.285],[-22.173,41.872],[178.843,0]],"v":[[149.794,-17.745],[134.482,-103.692],[5.303,-192.073],[-123.876,-103.692],[-133.399,-16.85],[6.753,145.12]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.66,"y":0},"t":160,"s":[{"i":[[25.469,51.692],[12.12,40.285],[70.911,0],[13.958,-46.393],[20.194,-35.886],[-167.248,0]],"o":[[-19.956,-40.503],[-13.957,-46.393],[-71.675,0],[-12.12,40.285],[-22.173,39.402],[167.248,0]],"v":[[154.005,-15.903],[134.482,-103.692],[5.303,-192.073],[-123.876,-103.692],[-113.925,-12.535],[-11.141,144.067]],"c":true}]},{"t":180,"s":[{"i":[[22.173,44.342],[12.12,40.285],[70.911,0],[13.958,-46.393],[20.194,-40.385],[-182.343,0]],"o":[[-20.194,-40.385],[-13.957,-46.393],[-71.675,0],[-12.12,40.285],[-22.173,44.342],[182.343,0]],"v":[[156.11,-21.166],[134.482,-103.692],[5.303,-192.073],[-123.876,-103.692],[-145.504,-21.166],[5.303,144.067]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.737254917622,0.572549045086,0.349019616842,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[24.154,48.305],[13.203,43.885],[77.248,0],[15.205,-50.539],[21.999,-43.995],[-198.638,0]],"o":[[-21.999,-43.995],[-15.205,-50.539],[-78.08,0],[-13.203,43.885],[-24.154,48.305],[198.638,0]],"v":[[169.587,-20.913],[146.026,-110.813],[5.303,-207.093],[-135.42,-110.813],[-158.981,-20.913],[5.303,159.087]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[24.154,48.305],[13.203,43.885],[77.248,0],[15.205,-50.539],[16.359,-45.579],[-198.638,0]],"o":[[-21.999,-43.995],[-15.205,-50.539],[-78.08,0],[-13.203,43.885],[-17.961,50.045],[198.638,0]],"v":[[169.587,-20.913],[146.026,-110.813],[5.303,-207.093],[-135.42,-110.813],[-149.542,-17.661],[5.303,159.087]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[{"i":[[24.154,48.305],[13.203,43.885],[77.248,0],[15.205,-50.539],[21.999,-43.995],[-194.826,0]],"o":[[-21.999,-43.995],[-15.205,-50.539],[-78.08,0],[-13.203,43.885],[-24.154,48.305],[194.826,0]],"v":[[167.219,-19.07],[146.026,-110.813],[5.303,-207.093],[-135.42,-110.813],[-158.981,-20.913],[6.753,160.139]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.66,"y":0},"t":160,"s":[{"i":[[24.154,48.305],[13.203,43.885],[77.248,0],[15.205,-50.539],[21.999,-43.995],[-182.194,0]],"o":[[-21.999,-43.995],[-15.205,-50.539],[-78.08,0],[-13.203,43.885],[-24.154,48.305],[182.194,0]],"v":[[161.166,-14.597],[146.026,-110.813],[5.303,-207.093],[-135.42,-110.813],[-158.981,-20.913],[-11.141,159.087]],"c":true}]},{"t":180,"s":[{"i":[[24.154,48.305],[13.203,43.885],[77.248,0],[15.205,-50.539],[21.999,-43.995],[-198.638,0]],"o":[[-21.999,-43.995],[-15.205,-50.539],[-78.08,0],[-13.203,43.885],[-24.154,48.305],[198.638,0]],"v":[[169.587,-20.913],[146.026,-110.813],[5.303,-207.093],[-135.42,-110.813],[-158.981,-20.913],[5.303,159.087]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"parent":11,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":20,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.66],"y":[0]},"t":160,"s":[8]},{"t":180,"s":[0]}]},"p":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[-94.41,-63.49,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[-71.252,-81.385,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":1},"o":{"x":0.66,"y":0},"t":160,"s":[-109.147,-81.385,0],"to":[0,0,0],"ti":[0,0,0]},{"t":180,"s":[-94.41,-63.49,0]}]},"a":{"a":0,"k":[-92.696,-63.49,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[1.081,-15.591],[0,0],[0.01,0],[-5.699,9.64],[0,0]],"o":[[-42.636,-22.157],[-0.01,0],[-1.283,-12.428],[16.864,-28.514],[5.547,-0.606]],"v":[[-120.56,-89.291],[-178.963,-61.424],[-178.983,-61.434],[-172.678,-95.859],[-126.714,-115.865]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[1.081,-15.591],[0,0],[0.01,0],[-5.699,9.64],[0,0]],"o":[[-42.636,-22.157],[-0.01,0],[-1.283,-12.428],[16.864,-28.514],[5.547,-0.606]],"v":[[-120.56,-89.291],[-178.963,-61.424],[-178.983,-61.434],[-172.678,-95.859],[-126.714,-115.865]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.66,"y":0},"t":160,"s":[{"i":[[1.081,-15.591],[0,0],[0.01,0],[-5.699,9.64],[0,0]],"o":[[-42.636,-22.157],[-0.01,0],[-1.283,-12.428],[16.864,-28.514],[5.547,-0.606]],"v":[[-102.402,-87.712],[-178.963,-61.424],[-178.983,-61.434],[-172.678,-95.859],[-108.556,-114.286]],"c":true}]},{"t":180,"s":[{"i":[[1.081,-15.591],[0,0],[0.01,0],[-5.699,9.64],[0,0]],"o":[[-42.636,-22.157],[-0.01,0],[-1.283,-12.428],[16.864,-28.514],[5.547,-0.606]],"v":[[-120.56,-89.291],[-178.963,-61.424],[-178.983,-61.434],[-172.678,-95.859],[-126.714,-115.865]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.596078455448,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[17.728,-1.949],[16.87,-28.514],[-21.623,-17.626]],"o":[[0,0],[-13.747,23.235],[25.716,20.962]],"v":[[-126.711,-115.866],[-172.682,-95.857],[-156.36,-15.922]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[17.728,-1.949],[16.87,-28.514],[-21.623,-17.626]],"o":[[0,0],[-13.747,23.235],[25.716,20.962]],"v":[[-126.711,-115.866],[-172.682,-95.857],[-156.36,-15.922]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.66,"y":0},"t":160,"s":[{"i":[[17.728,-1.949],[16.87,-28.514],[-20.475,-18.948]],"o":[[0,0],[-13.747,23.235],[65.834,60.922]],"v":[[-108.553,-114.287],[-172.682,-95.857],[-156.36,-15.922]],"c":true}]},{"t":180,"s":[{"i":[[17.728,-1.949],[16.87,-28.514],[-21.623,-17.626]],"o":[[0,0],[-13.747,23.235],[25.716,20.962]],"v":[[-126.711,-115.866],[-172.682,-95.857],[-156.36,-15.922]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.929411768913,0.674509823322,0.666666686535,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[55.083,3.638],[22.172,-27.368],[-47.288,-39.234]],"o":[[-19.765,-1.305],[-24.472,30.208],[49.528,41.092]],"v":[[-115.798,-143.021],[-186.99,-118.078],[-164.645,10.795]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[55.083,3.638],[22.172,-27.368],[-47.288,-39.234]],"o":[[-19.765,-1.305],[-24.472,30.208],[49.528,41.092]],"v":[[-115.798,-143.021],[-186.99,-118.078],[-164.645,10.795]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.66,"y":0},"t":160,"s":[{"i":[[55.139,2.655],[22.172,-27.368],[-69.039,-60.795]],"o":[[-46.57,-2.242],[-24.472,30.208],[48.298,42.531]],"v":[[-93.167,-143.811],[-186.99,-118.078],[-148.33,26.058]],"c":true}]},{"t":180,"s":[{"i":[[55.083,3.638],[22.172,-27.368],[-47.288,-39.234]],"o":[[-19.765,-1.305],[-24.472,30.208],[49.528,41.092]],"v":[[-115.798,-143.021],[-186.99,-118.078],[-164.645,10.795]],"c":true}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-36.319,10.182]],"o":[[0,0],[0,0]],"v":[[-194.126,-81.406],[-152.972,-131.334]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[-36.319,10.182]],"o":[[0,0],[0,0]],"v":[[-194.126,-81.406],[-152.972,-131.334]],"c":false}]},{"i":{"x":0.34,"y":1},"o":{"x":0.66,"y":0},"t":160,"s":[{"i":[[0,0],[-36.319,10.182]],"o":[[0,0],[0,0]],"v":[[-194.126,-81.406],[-152.972,-131.334]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[-36.319,10.182]],"o":[[0,0],[0,0]],"v":[[-194.126,-81.406],[-152.972,-131.334]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.737254917622,0.572549045086,0.349019616842,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":10},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[55.083,3.638],[22.172,-27.368],[-47.288,-39.234]],"o":[[-19.765,-1.305],[-24.472,30.208],[49.528,41.092]],"v":[[-115.798,-143.021],[-186.99,-118.078],[-164.645,10.795]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[55.083,3.638],[22.172,-27.368],[-47.288,-39.234]],"o":[[-19.765,-1.305],[-24.472,30.208],[49.528,41.092]],"v":[[-115.798,-143.021],[-186.99,-118.078],[-164.645,10.795]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.66,"y":0},"t":160,"s":[{"i":[[55.123,2.965],[22.172,-27.368],[-69.039,-59.216]],"o":[[-46.57,-2.505],[-24.472,30.208],[48.848,41.898]],"v":[[-93.167,-143.811],[-186.99,-118.078],[-148.33,26.058]],"c":true}]},{"t":180,"s":[{"i":[[55.083,3.638],[22.172,-27.368],[-47.288,-39.234]],"o":[[-19.765,-1.305],[-24.472,30.208],[49.528,41.092]],"v":[[-115.798,-143.021],[-186.99,-118.078],[-164.645,10.795]],"c":true}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"parent":11,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":20,"s":[-8]},{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.66],"y":[0]},"t":160,"s":[0]},{"t":180,"s":[0]}]},"p":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[104.342,-63.49,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[118.026,-81.385,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":1},"o":{"x":0.66,"y":0},"t":160,"s":[83.289,-81.385,0],"to":[0,0,0],"ti":[0,0,0]},{"t":180,"s":[104.342,-63.49,0]}]},"a":{"a":0,"k":[102.628,-63.49,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[-1.081,-15.591],[0,0],[-0.01,0],[5.699,9.64],[0,0]],"o":[[42.636,-22.157],[0.01,0],[1.283,-12.428],[-16.864,-28.514],[-5.547,-0.606]],"v":[[130.917,-89.291],[189.319,-61.424],[189.34,-61.434],[183.034,-95.859],[137.07,-115.865]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[-1.081,-15.591],[0,0],[-0.01,0],[5.699,9.64],[0,0]],"o":[[42.636,-22.157],[0.01,0],[1.283,-12.428],[-16.864,-28.514],[-5.547,-0.606]],"v":[[116.969,-89.818],[189.319,-61.424],[189.34,-61.434],[183.034,-95.859],[123.123,-116.392]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.66,"y":0},"t":160,"s":[{"i":[[-1.081,-15.591],[0,0],[-0.01,0],[5.699,9.64],[0,0]],"o":[[42.636,-22.157],[0.01,0],[1.283,-12.428],[-16.864,-28.514],[-5.547,-0.606]],"v":[[130.917,-89.291],[189.319,-61.424],[189.34,-61.434],[183.034,-95.859],[137.07,-115.865]],"c":true}]},{"t":180,"s":[{"i":[[-1.081,-15.591],[0,0],[-0.01,0],[5.699,9.64],[0,0]],"o":[[42.636,-22.157],[0.01,0],[1.283,-12.428],[-16.864,-28.514],[-5.547,-0.606]],"v":[[130.917,-89.291],[189.319,-61.424],[189.34,-61.434],[183.034,-95.859],[137.07,-115.865]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823537827,0.596078455448,0.592156887054,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[-55.083,3.638],[-22.172,-27.368],[47.288,-39.234]],"o":[[19.765,-1.305],[24.472,30.208],[-49.528,41.092]],"v":[[125.73,-143.021],[196.922,-118.078],[174.577,10.795]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[-55.083,3.638],[-22.172,-27.368],[63.844,-42.374]],"o":[[19.765,-1.305],[24.472,30.208],[-53.619,35.588]],"v":[[100.993,-144.6],[196.922,-118.078],[162.472,20.269]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.66,"y":0},"t":160,"s":[{"i":[[-55.083,3.638],[-22.172,-27.368],[47.288,-39.234]],"o":[[19.765,-1.305],[24.472,30.208],[-49.528,41.092]],"v":[[125.73,-143.021],[196.922,-118.078],[174.577,10.795]],"c":true}]},{"t":180,"s":[{"i":[[-55.083,3.638],[-22.172,-27.368],[47.288,-39.234]],"o":[[19.765,-1.305],[24.472,30.208],[-49.528,41.092]],"v":[[125.73,-143.021],[196.922,-118.078],[174.577,10.795]],"c":true}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.368627458811,0.258823543787,0.121568627656,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[36.319,10.182]],"o":[[0,0],[0,0]],"v":[[203.905,-80.406],[162.752,-130.334]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[36.319,10.182]],"o":[[0,0],[0,0]],"v":[[203.905,-80.406],[162.752,-130.334]],"c":false}]},{"i":{"x":0.34,"y":1},"o":{"x":0.66,"y":0},"t":160,"s":[{"i":[[0,0],[36.319,10.182]],"o":[[0,0],[0,0]],"v":[[203.905,-80.406],[162.752,-130.334]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[36.319,10.182]],"o":[[0,0],[0,0]],"v":[[203.905,-80.406],[162.752,-130.334]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.737254917622,0.572549045086,0.349019616842,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":10},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[-17.728,-1.949],[-16.87,-28.514],[21.623,-17.626]],"o":[[0,0],[13.747,23.235],[-25.716,20.962]],"v":[[136.643,-115.866],[182.613,-95.857],[166.291,-15.922]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[-17.728,-1.949],[-16.87,-28.514],[23.187,-15.511]],"o":[[0,0],[13.747,23.235],[-64.713,43.291]],"v":[[122.695,-116.393],[182.613,-95.857],[166.291,-15.922]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.66,"y":0},"t":160,"s":[{"i":[[-17.728,-1.949],[-16.87,-28.514],[21.623,-17.626]],"o":[[0,0],[13.747,23.235],[-25.716,20.962]],"v":[[136.643,-115.866],[182.613,-95.857],[166.291,-15.922]],"c":true}]},{"t":180,"s":[{"i":[[-17.728,-1.949],[-16.87,-28.514],[21.623,-17.626]],"o":[[0,0],[13.747,23.235],[-25.716,20.962]],"v":[[136.643,-115.866],[182.613,-95.857],[166.291,-15.922]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.929411768913,0.674509823322,0.666666686535,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[-55.083,3.638],[-22.172,-27.368],[47.288,-39.234]],"o":[[19.765,-1.305],[24.472,30.208],[-49.528,41.092]],"v":[[125.73,-143.021],[196.922,-118.078],[174.577,10.795]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[-55.083,3.638],[-22.172,-27.368],[65.423,-44.479]],"o":[[19.765,-1.305],[24.472,30.208],[-53.22,36.183]],"v":[[100.993,-144.6],[196.922,-118.078],[162.472,20.269]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.66,"y":0},"t":160,"s":[{"i":[[-55.083,3.638],[-22.172,-27.368],[47.288,-39.234]],"o":[[19.765,-1.305],[24.472,30.208],[-49.528,41.092]],"v":[[125.73,-143.021],[196.922,-118.078],[174.577,10.795]],"c":true}]},{"t":180,"s":[{"i":[[-55.083,3.638],[-22.172,-27.368],[47.288,-39.234]],"o":[[19.765,-1.305],[24.472,30.208],[-49.528,41.092]],"v":[[125.73,-143.021],[196.922,-118.078],[174.577,10.795]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.61960786581,0.46274510026,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0}]} \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/wallet_crystal.tgs b/TMessagesProj/src/main/res/raw/wallet_crystal.tgs deleted file mode 100644 index dd392e664..000000000 --- a/TMessagesProj/src/main/res/raw/wallet_crystal.tgs +++ /dev/null @@ -1 +0,0 @@ -{"tgs":1,"v":"5.5.2","fr":60,"ip":0,"op":180,"w":512,"h":512,"nm":"crystall--slower final bake 48 - Revison 1","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"sr":1,"ks":{"p":{"a":0,"k":[185,336,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[0,0],[0,0],[0,0],[0,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[-44.459,0],[0,-44.459],[44.459,0],[0,44.459]],"o":[[44.459,0],[0,44.459],[-44.459,0],[0,-44.459]],"v":[[0,-80.5],[80.5,0],[0,80.5],[-80.5,0]],"c":true}]},{"t":29,"s":[{"i":[[-68.759,0],[0,-51.915],[68.759,0],[0,51.915]],"o":[[68.759,0],[0,51.915],[-68.759,0],[0,-51.915]],"v":[[0,-94],[124.5,0],[0,94],[-124.5,0]],"c":true}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":7,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":16,"s":[3]},{"t":26,"s":[0]}]},"lc":1,"lj":1,"ml":4,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[85,-96]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":7,"op":35,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"sr":1,"ks":{"p":{"a":0,"k":[185,336,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[52,-92.5],[-35,-91]],"c":false}},"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[87,-64],[87,-7]],"c":false}},"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[117,-95.5],[208.5,-95.5]],"c":false}},"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[84.5,-127],[84.5,-184]],"c":false}},"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"st","c":{"a":0,"k":[0.760784373564,0.909803981407,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":6,"s":[0]},{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":13,"s":[4]},{"t":34,"s":[0]}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":7,"s":[0]},{"t":22,"s":[100]}]},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":16,"s":[0]},{"t":33,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"hd":false},{"ty":"tr","p":{"a":0,"k":[84.5,-95.25]},"a":{"a":0,"k":[84.5,-95.25]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":35,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"sr":1,"ks":{"p":{"a":0,"k":[218.077,299.023,0]},"a":{"a":0,"k":[289.077,219.023,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0.975],[0.808,0.006],[0.01,-0.827],[-0.78,0.017]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-0.018,-0.79],[-0.716,0.08],[0.027,0.79],[0.716,0.023]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7,"s":[{"i":[[0,73.226],[60.682,0.436],[0.778,-62.125],[-58.629,1.3]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-1.37,-59.334],[-53.771,6.047],[2.02,59.334],[53.771,1.695]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[2.086,115.5],[87.931,-2.472],[-1.804,-94.293],[-98,1.5]],"o":[[1.586,99],[87.431,-0.972],[5.196,-94.793],[-72.25,0.25]],"v":[[-1.37,-101.646],[-80.216,6.326],[2.02,101.646],[80.216,1.354]],"c":true}]},{"t":26,"s":[{"i":[[0,0.975],[0.808,0.006],[0.01,-0.827],[-0.78,0.017]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-0.018,-0.79],[-0.716,0.08],[0.027,0.79],[0.716,0.023]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[340.784,159.146]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":27,"st":0,"bm":0}]},{"id":"comp_1","layers":[{"ddd":0,"ind":1,"ty":4,"sr":1,"ks":{"o":{"a":0,"k":60},"p":{"a":0,"k":[256.226,243.689,0]},"a":{"a":0,"k":[0.226,-19.811,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-149,-31.5],[-82,-2.237],[89.028,-1.869],[149.452,-28.903],[87.915,-9.21],[-80.255,-9.099],[-149,-31.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-139.25,-24.75],[-124.5,-14.487],[39.778,2.631],[132.202,-21.653],[38.665,-4.71],[-124.63,-15.849],[-139.25,-24.75]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-143.583,-26.667],[-127.167,-14.779],[38.194,2.631],[131.118,-21.153],[37.082,-4.71],[-127.088,-15.682],[-143.583,-26.667]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-129.417,-16.458],[-52.208,-6.258],[36.611,2.631],[130.035,-20.653],[35.498,-4.71],[-51.297,-10.141],[-129.417,-16.458]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-132.75,-17],[22.75,2.263],[35.028,2.631],[128.952,-20.153],[33.915,-4.71],[24.495,-4.599],[-132.75,-17]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-123.75,-18.25],[1.5,4.388],[2.778,4.131],[132.327,-19.903],[1.915,-4.835],[0.87,-4.849],[-123.75,-18.25]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-124.621,-18.707],[-1.438,4.154],[103.519,-14.128],[133.388,-19.396],[103.277,-16.877],[-2.007,-4.909],[-124.621,-18.707]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-132.457,-22.819],[-27.877,2.051],[130.311,-13.958],[136.037,-15.927],[129.944,-15.969],[-27.9,-7.64],[-132.457,-22.819]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":41,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-133.328,-23.276],[-30.814,1.817],[133.76,-13.508],[137.776,-17.764],[133.213,-16.104],[-30.777,-7.804],[-133.328,-23.276]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-135.069,-24.19],[-36.69,1.349],[129.408,-12.234],[141.253,-21.437],[128.5,-16],[-36.531,-8.133],[-135.069,-24.19]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-141.164,-27.388],[-56.513,-0.22],[111.742,-7.699],[145.84,-27.203],[110.744,-13.03],[-55.66,-8.556],[-141.164,-27.388]],"c":false}]},{"t":59,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-149,-31.5],[-82,-2.237],[89.028,-1.869],[149.452,-28.903],[87.915,-9.21],[-80.255,-9.099],[-149,-31.5]],"c":false}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":60,"st":-54,"bm":0}]},{"id":"comp_2","layers":[{"ddd":0,"ind":1,"ty":4,"sr":1,"ks":{"p":{"a":0,"k":[263.818,273.48,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[187.438,-58.125],[159.438,-109.75],[135.5,-153.813],[100.563,-167.125],[57.938,-183.875],[-6.313,-183.875],[-68,-183.875],[-107.563,-168.313],[-145.688,-153.188],[-169.688,-106.688],[-195.063,-57.25],[-167,-22.438],[-5,177.875],[161.688,-27.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[186.688,-57.25],[158.978,-109.499],[135.788,-153.168],[102.059,-166.405],[59.777,-183.52],[-4.351,-183.78],[-65.842,-184.071],[-106.006,-168.7],[-144.958,-153.817],[-169.262,-107.77],[-195.533,-58.118],[-166.908,-22.664],[-5,177.875],[161.688,-27.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[185.935,-56.372],[158.519,-109.249],[136.07,-152.536],[103.566,-165.679],[61.613,-183.165],[-2.393,-183.685],[-63.694,-184.265],[-104.446,-169.088],[-144.239,-154.439],[-168.837,-108.854],[-196.004,-58.987],[-166.818,-22.887],[-5,177.875],[161.688,-27.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[185.19,-55.502],[158.064,-109.001],[136.355,-151.898],[105.056,-164.962],[63.451,-182.81],[-0.433,-183.589],[-61.54,-184.46],[-102.892,-169.474],[-143.516,-155.063],[-168.412,-109.934],[-196.473,-59.854],[-166.727,-23.112],[-5,177.875],[161.687,-27.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[184.443,-54.631],[157.607,-108.752],[136.643,-151.255],[106.544,-164.246],[65.292,-182.454],[1.53,-183.494],[-59.385,-184.656],[-101.337,-169.861],[-142.793,-155.688],[-167.991,-111.007],[-196.939,-60.714],[-166.637,-23.334],[-5,177.875],[161.688,-27.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[183.688,-53.75],[157.146,-108.5],[136.93,-150.612],[108.045,-163.524],[67.128,-182.1],[3.487,-183.399],[-57.232,-184.851],[-99.78,-170.248],[-142.065,-156.316],[-167.566,-112.09],[-197.41,-61.583],[-166.546,-23.559],[-5,177.875],[161.688,-27.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[182.937,-52.875],[156.687,-108.25],[137.216,-149.973],[109.542,-162.803],[68.965,-181.745],[5.446,-183.304],[-55.081,-185.046],[-98.224,-170.635],[-141.336,-156.946],[-167.139,-113.178],[-197.883,-62.456],[-166.455,-23.784],[-5,177.875],[161.687,-27.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[181.896,-52.083],[158.438,-107.042],[137.499,-149.34],[111.038,-161.944],[70.803,-181.39],[7.406,-183.209],[-52.928,-185.241],[-96.664,-171.023],[-140.609,-157.573],[-166.714,-114.26],[-198.353,-63.323],[-166.364,-24.01],[-5,177.875],[160.603,-26.157]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[180.851,-51.289],[160.2,-105.825],[137.781,-148.708],[112.535,-161.085],[72.641,-181.035],[9.365,-183.114],[-50.775,-185.436],[-95.106,-171.411],[-139.886,-158.198],[-166.229,-115.292],[-198.483,-64.275],[-166.098,-24.296],[-5,177.875],[159.514,-24.873]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[179.815,-50.502],[161.942,-104.622],[138.064,-148.075],[114.032,-160.226],[74.478,-180.68],[11.325,-183.019],[-48.621,-185.631],[-93.55,-171.798],[-139.165,-158.821],[-165.751,-116.311],[-198.612,-65.221],[-165.843,-24.572],[-5,177.875],[158.436,-23.601]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[178.778,-49.714],[163.682,-103.42],[138.349,-147.438],[115.525,-159.369],[76.315,-180.325],[13.283,-182.923],[-46.469,-185.827],[-91.996,-172.184],[-138.446,-159.442],[-165.267,-117.341],[-198.742,-66.172],[-165.582,-24.854],[-5,177.875],[157.355,-22.326]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[177.729,-48.917],[165.437,-102.208],[138.635,-146.798],[117.013,-158.514],[78.152,-179.97],[15.242,-182.828],[-44.318,-186.021],[-90.441,-172.571],[-137.725,-160.064],[-164.782,-118.375],[-198.872,-67.125],[-165.319,-25.137],[-5,177.875],[156.263,-21.037]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[176.688,-48.125],[167.188,-101],[138.921,-146.157],[118.51,-157.655],[79.992,-179.614],[17.204,-182.733],[-42.162,-186.217],[-88.885,-172.958],[-137.003,-160.688],[-164.3,-119.4],[-199.002,-68.071],[-165.059,-25.417],[-5,177.875],[155.178,-19.757]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[175.275,-47.249],[168.351,-100.105],[139.206,-145.519],[120.017,-156.79],[81.83,-179.259],[19.164,-182.638],[-40.008,-186.412],[-87.328,-173.345],[-136.28,-161.312],[-163.823,-120.417],[-199.13,-69.011],[-164.801,-25.695],[-5,177.875],[154.836,-20.236]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[173.866,-46.375],[169.509,-99.214],[139.49,-144.885],[121.513,-155.931],[83.664,-178.905],[21.119,-182.543],[-37.857,-186.607],[-85.771,-173.732],[-135.557,-161.936],[-163.346,-121.433],[-199.259,-69.953],[-164.543,-25.974],[-5,177.875],[154.503,-20.701]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[172.455,-45.5],[170.67,-98.321],[139.776,-144.243],[123.01,-155.071],[85.506,-178.549],[23.083,-182.448],[-35.702,-186.802],[-84.215,-174.119],[-134.833,-162.562],[-162.866,-122.455],[-199.389,-70.901],[-164.284,-26.253],[-5,177.875],[154.166,-21.172]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[171.043,-44.624],[171.832,-97.427],[139.554,-143.599],[124.277,-153.626],[87.034,-178.085],[25.045,-182.255],[-33.546,-186.901],[-82.659,-174.506],[-134.109,-163.187],[-162.382,-123.485],[-199.519,-71.858],[-164.023,-26.535],[-5,177.875],[153.827,-21.646]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[169.633,-43.75],[172.991,-96.536],[139.335,-142.963],[125.551,-152.172],[88.56,-177.621],[27.003,-182.063],[-31.395,-186.999],[-81.103,-174.893],[-133.385,-163.812],[-161.9,-124.512],[-199.65,-72.812],[-163.764,-26.815],[-5,177.875],[153.489,-22.119]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[168.223,-42.875],[174.152,-95.643],[139.112,-142.32],[126.82,-150.724],[90.087,-177.157],[28.962,-181.871],[-29.242,-187.097],[-79.547,-175.28],[-132.664,-164.435],[-161.42,-125.534],[-199.779,-73.754],[-163.509,-27.089],[-5,177.875],[153.154,-22.588]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[166.813,-42],[175.313,-94.75],[138.89,-141.674],[128.076,-149.291],[91.616,-176.692],[30.925,-181.679],[-27.086,-187.196],[-77.99,-175.667],[-131.938,-165.063],[-160.938,-126.563],[-199.909,-74.71],[-163.242,-27.378],[-5,177.875],[152.819,-23.055]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[165.402,-41.125],[176.473,-93.857],[138.669,-141.034],[129.342,-147.847],[93.142,-176.229],[32.884,-181.487],[-24.933,-187.294],[-76.435,-176.054],[-130.715,-165.616],[-159.884,-127.397],[-199.482,-75.583],[-162.869,-27.883],[-5,177.875],[152.485,-23.523]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[163.991,-40.25],[177.633,-92.965],[138.45,-140.399],[130.612,-146.398],[94.668,-175.765],[34.841,-181.295],[-22.782,-187.392],[-74.881,-176.441],[-129.5,-166.167],[-158.833,-128.229],[-199.06,-76.445],[-162.504,-28.377],[-5,177.875],[152.149,-23.994]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[162.582,-39.376],[178.793,-92.073],[138.23,-139.765],[131.879,-144.952],[96.195,-175.301],[36.801,-181.103],[-20.629,-187.49],[-73.325,-176.827],[-128.278,-166.72],[-157.78,-129.063],[-198.633,-77.318],[-162.134,-28.878],[-5,177.875],[151.81,-24.468]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[161.17,-38.5],[179.955,-91.179],[138.01,-139.127],[132.932,-143.293],[97.722,-174.837],[38.761,-180.911],[-18.476,-187.589],[-71.768,-177.215],[-127.051,-167.276],[-156.729,-129.896],[-198.204,-78.193],[-161.763,-29.38],[-5,177.875],[151.469,-24.944]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[159.759,-37.625],[181.116,-90.286],[137.788,-138.484],[133.987,-141.63],[99.248,-174.373],[40.72,-180.719],[-16.323,-187.687],[-70.209,-177.603],[-125.831,-167.829],[-155.678,-130.728],[-197.78,-79.061],[-161.395,-29.878],[-5,177.875],[151.131,-25.416]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[158.35,-36.751],[182.271,-89.397],[137.567,-137.843],[135.031,-139.983],[100.775,-173.909],[42.68,-180.527],[-14.17,-187.785],[-68.651,-177.99],[-124.617,-168.378],[-154.632,-131.557],[-197.359,-79.922],[-161.029,-30.374],[-5,177.875],[150.797,-25.884]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[156.938,-35.875],[183.438,-88.5],[137.348,-137.21],[136.09,-138.313],[102.3,-173.446],[44.637,-180.335],[-12.019,-187.883],[-67.095,-178.377],[-123.405,-168.928],[-153.584,-132.387],[-196.938,-80.782],[-160.663,-30.869],[-5,177.875],[150.457,-26.36]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[155.45,-35.212],[183.908,-87.638],[137.125,-136.563],[137.143,-136.653],[103.828,-172.981],[46.597,-180.143],[-9.865,-187.982],[-65.538,-178.764],[-122.188,-169.479],[-152.531,-133.221],[-196.514,-81.648],[-160.294,-31.369],[-5,177.875],[150.257,-27.61]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[153.954,-34.546],[184.375,-86.781],[138.078,-135.721],[138.092,-135.808],[105.356,-172.517],[48.559,-179.951],[-7.71,-188.08],[-63.982,-179.151],[-120.97,-170.031],[-151.471,-134.061],[-196.088,-82.519],[-159.922,-31.873],[-5,177.875],[150.056,-28.862]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":29,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[152.478,-33.889],[184.844,-85.922],[139.02,-134.889],[139.036,-134.968],[106.883,-172.053],[50.518,-179.759],[-5.556,-188.178],[-62.428,-179.538],[-119.75,-170.583],[-150.417,-134.896],[-195.662,-83.389],[-159.551,-32.375],[-5,177.875],[149.858,-30.102]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[150.988,-33.225],[185.313,-85.061],[139.967,-134.052],[139.983,-134.125],[108.406,-171.59],[52.472,-179.568],[-3.405,-188.277],[-60.869,-179.925],[-118.533,-171.135],[-149.368,-135.726],[-195.239,-84.254],[-159.184,-32.872],[-5,177.875],[149.657,-31.359]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[149.5,-32.563],[185.782,-84.202],[140.916,-133.214],[140.931,-133.281],[109.938,-171.125],[54.438,-179.375],[-1.25,-188.375],[-59.313,-180.313],[-117.313,-171.688],[-148.313,-136.563],[-194.813,-85.125],[-158.813,-33.375],[-5,177.875],[149.457,-32.61]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[150.218,-32.389],[186.25,-83.344],[141.863,-132.377],[141.876,-132.439],[111,-170.513],[56.112,-178.993],[0.834,-188.206],[-57.561,-180.449],[-115.766,-172.165],[-148.166,-136.542],[-194.104,-86],[-160.459,-34.188],[-5,177.875],[150.177,-32.436]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":33,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[150.928,-32.218],[186.717,-82.487],[142.81,-131.541],[142.822,-131.597],[112.052,-169.907],[57.783,-178.612],[2.921,-188.036],[-55.813,-180.585],[-114.222,-172.642],[-148.021,-136.521],[-193.394,-86.878],[-162.104,-35],[-5,177.875],[150.883,-32.266]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":34,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[151.647,-32.045],[187.184,-81.632],[143.757,-130.704],[143.769,-130.754],[113.117,-169.294],[59.457,-178.23],[5.002,-187.867],[-54.06,-180.722],[-112.674,-173.12],[-147.875,-136.501],[-192.689,-87.748],[-163.751,-35.813],[-5,177.875],[151.599,-32.093]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":35,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[152.365,-31.871],[187.65,-80.777],[144.704,-129.867],[144.715,-129.912],[114.181,-168.681],[61.131,-177.849],[7.086,-187.698],[-52.313,-180.858],[-111.131,-173.597],[-147.896,-136.98],[-191.984,-88.619],[-165.397,-36.626],[-5,177.875],[152.313,-31.921]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":36,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[153.076,-31.7],[188.118,-79.919],[145.652,-129.03],[145.662,-129.069],[115.234,-168.075],[62.801,-177.468],[9.17,-187.529],[-50.562,-180.994],[-109.59,-174.072],[-147.917,-137.457],[-191.271,-89.5],[-167.042,-37.438],[-5,177.875],[153.022,-31.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[153.783,-31.529],[188.589,-79.056],[146.599,-128.194],[146.607,-128.227],[116.281,-167.471],[64.474,-177.086],[11.254,-187.36],[-48.813,-181.131],[-108.053,-174.547],[-147.938,-137.938],[-190.563,-90.375],[-168.687,-38.25],[-5,177.875],[153.729,-31.579]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[154.492,-31.358],[189.061,-78.19],[147.546,-127.358],[147.554,-127.384],[117.332,-166.866],[66.147,-176.705],[13.341,-187.191],[-47.063,-181.267],[-106.51,-175.024],[-148.051,-138.702],[-189.346,-91.247],[-170.333,-39.062],[-5,177.875],[154.439,-31.408]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":39,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[155.208,-31.186],[189.531,-77.328],[148.494,-126.52],[148.501,-126.541],[118.392,-166.255],[67.82,-176.323],[15.428,-187.021],[-45.314,-181.403],[-104.955,-175.504],[-148.163,-139.463],[-188.138,-92.114],[-171.979,-39.875],[-5,177.875],[155.157,-31.235]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[155.924,-31.013],[190,-76.469],[149.442,-125.683],[149.448,-125.698],[119.452,-165.645],[69.492,-175.942],[17.512,-186.852],[-43.563,-181.54],[-103.403,-175.983],[-148.276,-140.227],[-186.924,-92.985],[-173.623,-40.687],[-5,177.875],[155.875,-31.062]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":41,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[156.631,-30.842],[190.466,-75.615],[150.387,-124.848],[150.389,-124.86],[120.507,-165.037],[71.163,-175.561],[19.593,-186.683],[-41.817,-181.676],[-101.862,-176.459],[-148.388,-140.984],[-185.703,-93.861],[-175.271,-41.5],[-5,177.875],[156.585,-30.891]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":42,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[157.352,-30.668],[190.938,-74.75],[151.337,-124.009],[151.341,-124.013],[121.567,-164.427],[72.838,-175.179],[21.675,-186.514],[-40.063,-181.813],[-100.313,-176.938],[-148.5,-141.741],[-184.489,-94.731],[-176.914,-42.311],[-5,177.875],[157.302,-30.718]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[158.016,-30.411],[191.014,-73.733],[152.364,-123.076],[152.367,-123.074],[122.891,-163.936],[74.511,-174.797],[23.759,-186.345],[-37.838,-181.882],[-98.533,-177.292],[-148.614,-142.508],[-183.283,-95.596],[-178.563,-43.125],[-5,177.875],[157.967,-30.461]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":44,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[158.675,-30.157],[191.09,-72.724],[153.383,-122.15],[153.384,-122.143],[124.203,-163.449],[76.181,-174.416],[25.843,-186.176],[-35.618,-181.951],[-96.757,-177.646],[-148.727,-143.273],[-182.077,-96.461],[-179.663,-43.993],[-5,177.875],[158.626,-30.206]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[159.339,-29.9],[191.167,-71.708],[154.408,-121.219],[154.409,-121.205],[125.524,-162.96],[77.856,-174.034],[27.927,-186.006],[-33.396,-182.021],[-94.979,-178],[-148.84,-144.035],[-180.867,-97.329],[-180.759,-44.857],[-5,177.875],[159.29,-29.949]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":46,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[159.334,-29.811],[190.841,-70.789],[154.932,-120.12],[154.931,-120.103],[126.246,-162.369],[79.513,-173.531],[30.01,-185.837],[-31.172,-182.09],[-93.2,-178.354],[-148.728,-144.601],[-179.656,-98.198],[-181.862,-45.726],[-5,177.875],[159.287,-29.859]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":47,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[159.329,-29.722],[190.519,-69.881],[155.451,-119.031],[155.449,-119.008],[126.963,-161.782],[81.167,-173.03],[32.094,-185.668],[-28.947,-182.16],[-91.42,-178.709],[-148.617,-145.161],[-178.442,-99.068],[-182.966,-46.597],[-5,177.875],[159.284,-29.77]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":48,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[159.324,-29.633],[190.196,-68.967],[155.974,-117.935],[155.972,-117.904],[127.682,-161.192],[82.823,-172.527],[34.178,-185.499],[-26.728,-182.229],[-89.645,-179.063],[-148.505,-145.726],[-177.232,-99.937],[-184.063,-47.461],[-5,177.875],[159.281,-29.68]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":49,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[159.551,-29.457],[189.871,-68.048],[156.48,-116.743],[156.477,-116.715],[128.408,-160.598],[84.481,-172.024],[36.263,-185.33],[-24.507,-182.299],[-87.868,-179.417],[-148.394,-146.286],[-176.018,-100.807],[-185.155,-48.322],[-5,177.875],[159.508,-29.504]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[159.77,-29.288],[189.545,-67.128],[156.984,-115.555],[156.98,-115.529],[129.133,-160.005],[86.134,-171.523],[38.346,-185.161],[-22.284,-182.368],[-86.09,-179.771],[-148.284,-146.843],[-174.452,-101.677],[-186.25,-49.186],[-5,177.875],[159.727,-29.335]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":51,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[159.994,-29.114],[189.22,-66.212],[157.489,-114.364],[157.484,-114.34],[129.853,-159.415],[87.789,-171.021],[40.427,-184.992],[-20.062,-182.438],[-84.312,-180.125],[-148.172,-147.405],[-172.882,-102.548],[-187.347,-50.05],[-5,177.875],[159.951,-29.162]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":52,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[160.219,-28.94],[188.898,-65.301],[157.994,-113.175],[157.988,-113.153],[130.567,-158.83],[89.444,-170.518],[42.509,-184.823],[-17.84,-182.507],[-82.535,-180.479],[-148.06,-147.972],[-171.327,-103.411],[-188.447,-50.917],[-5,177.875],[160.176,-28.988]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":53,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[160.442,-28.768],[188.576,-64.393],[158.498,-111.987],[158.491,-111.967],[131.28,-158.247],[91.1,-170.016],[44.594,-184.653],[-15.618,-182.576],[-80.757,-180.833],[-147.95,-148.529],[-169.751,-104.286],[-189.544,-51.782],[-5,177.875],[160.399,-28.815]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":54,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[160.663,-28.597],[188.254,-63.483],[159,-110.803],[158.992,-110.786],[131.993,-157.662],[92.755,-169.514],[46.682,-184.484],[-13.398,-182.646],[-78.981,-181.187],[-147.837,-149.098],[-168.184,-105.155],[-190.643,-52.649],[-5,177.875],[160.62,-28.644]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":55,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[160.884,-28.426],[187.931,-62.57],[159.502,-109.618],[159.494,-109.604],[132.711,-157.074],[94.409,-169.012],[48.767,-184.315],[-11.177,-182.715],[-77.204,-181.541],[-147.448,-149.801],[-168.164,-106.025],[-191.484,-53.515],[-5,177.875],[160.841,-28.473]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":56,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[161.107,-28.254],[187.607,-61.657],[160.008,-108.427],[159.998,-108.415],[133.433,-156.483],[96.064,-168.51],[50.851,-184.145],[-8.952,-182.785],[-75.424,-181.896],[-147.057,-150.505],[-168.144,-106.898],[-192.327,-54.383],[-5,177.875],[161.063,-28.301]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":57,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[161.331,-28.08],[187.283,-60.742],[160.516,-107.229],[160.505,-107.219],[134.155,-155.892],[97.721,-168.007],[52.935,-183.976],[-6.729,-182.854],[-73.646,-182.25],[-146.67,-151.203],[-168.124,-107.763],[-193.163,-55.244],[-5,177.875],[161.287,-28.128]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":58,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[161.552,-27.909],[186.96,-59.828],[161.022,-106.036],[161.01,-106.028],[134.874,-155.303],[99.377,-167.505],[55.015,-183.807],[-4.507,-182.924],[-71.868,-182.604],[-146.282,-151.903],[-168.103,-108.629],[-194,-56.106],[-5,177.875],[161.509,-27.956]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":59,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[161.771,-27.74],[186.637,-58.916],[161.525,-104.85],[161.513,-104.845],[135.589,-154.717],[101.029,-167.003],[57.103,-183.638],[-2.287,-182.993],[-70.098,-182.957],[-145.89,-152.609],[-168.083,-109.504],[-194.847,-56.978],[-5,177.875],[161.728,-27.787]],"c":true}]},{"t":60,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[162,-27.563],[186.313,-58],[162.031,-103.656],[162.018,-103.653],[136.313,-154.125],[102.688,-166.5],[59.188,-183.469],[-0.063,-183.063],[-68.313,-183.313],[-145.5,-153.313],[-168.063,-110.375],[-195.688,-57.844],[-5,177.875],[161.957,-27.61]],"c":true}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0,0.345098048449,0.686274528503,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":61,"st":-53,"bm":0}]},{"id":"comp_3","layers":[{"ddd":0,"ind":1,"ty":4,"sr":1,"ks":{"o":{"a":0,"k":60},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[460.47,130.909,0],"to":[0,0,0],"ti":[0,0,0]},{"t":59,"s":[75.47,130.909,0]}]},"a":{"a":0,"k":[246.47,130.909,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-5.779,2.716],[-8.785,3.707],[-8.142,3.742],[-6.017,4.319],[-4.145,3.493],[-4.48,3.294]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-5.779,2.716],[-8.785,3.707],[-8.142,3.742],[-6.017,4.319],[-4.145,3.493],[-4.48,3.294]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-3.019,-1.695],[-36.535,23.893],[-36.363,23.859],[1.337,2.177],[1.542,2.345],[0.764,1.344]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[1.131,-4.704],[-55.201,37.066],[-51.805,36.963],[-13.593,15.737],[8.032,-0.181],[4.834,-1.568]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[6.149,-7.969],[-55.644,37.909],[-45.748,37.409],[-35.175,32.054],[12.891,-3.339],[9.772,-4.737]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[8.105,-10.953],[-55.587,37.877],[-47.072,37.555],[-39.738,37.264],[14.687,-6.215],[11.648,-7.625]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[18.344,-19.261],[-56.849,38.921],[-48.34,38.883],[-40.976,38.839],[24.606,-14.308],[21.726,-15.739]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[34.124,-30.665],[-56.851,39.868],[-48.366,40.069],[-40.974,40.239],[40.189,-25.813],[39.526,-29.256]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[36.661,-33.025],[-56.854,39.919],[-48.375,40.082],[-40.971,40.221],[46.601,-30.548],[41.81,-31.742]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":29,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[40.282,-34.913],[-56.859,40.021],[-48.392,40.107],[-40.966,40.183],[50.221,-32.436],[45.425,-33.632]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":35,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[47.282,-41.163],[-56.703,38.615],[-48.236,38.701],[-40.81,38.777],[57.221,-38.686],[52.425,-39.882]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":36,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[50.407,-43.538],[-54.828,35.74],[-49.486,38.201],[-40.81,38.777],[60.346,-41.061],[55.55,-42.257]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[50.407,-43.538],[-52.578,33.115],[-42.236,37.701],[-40.81,38.027],[62.846,-43.686],[58.05,-44.882]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":42,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[40.344,-38.476],[-35.453,19.865],[-24.736,25.951],[-24.56,26.152],[55.346,-38.936],[48.612,-38.694]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":48,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[39.219,-37.226],[-15.685,3.228],[-5.972,10.814],[-5.827,11.039],[54.221,-37.686],[47.487,-37.444]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":52,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[57.469,-37.226],[-4.31,-5.647],[5.403,1.939],[5.548,2.164],[57.221,-36.936],[57.487,-36.944]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":53,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[48.032,-27.476],[-0.373,-6.397],[7.215,-0.061],[7.36,0.164],[47.784,-27.186],[48.05,-27.194]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":56,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[21.719,-13.226],[11.44,-8.647],[12.653,-6.061],[12.798,-5.836],[21.471,-12.936],[21.737,-12.944]],"c":true}]},{"t":59,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[21.719,-13.226],[11.44,-8.647],[12.653,-6.061],[12.798,-5.836],[21.471,-12.936],[21.737,-12.944]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[274.242,130.909]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":1,"k":[{"t":17,"s":[0],"h":1},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.66],"y":[0]},"t":18,"s":[60]},{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":37,"s":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.66],"y":[0]},"t":57,"s":[60]},{"t":58,"s":[0],"h":1}]},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-44.787,17.651],[-69.755,35.463],[-65.054,34.912],[-65.116,35.08],[-45.025,17.721],[-44.778,17.497]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-44.787,17.651],[-69.755,35.463],[-65.054,34.912],[-65.116,35.08],[-45.025,17.721],[-44.778,17.497]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-17.912,-0.849],[-71.13,36.088],[-62.179,35.6],[-62.241,35.767],[-18.15,-0.779],[-17.903,-1.003]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-9.891,-6.585],[-73.536,38.717],[-57.911,37.654],[-49.531,36.914],[1.496,0.174],[0.257,-0.957]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-4.377,-10.534],[-74.223,39.719],[-59.066,39.045],[-39.434,37.928],[14.198,0.998],[5.447,-3.968]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-1.227,-13.857],[-74.567,40.22],[-59.644,39.302],[-37.282,37.801],[16.254,-1.501],[8.434,-6.822]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[13.077,-26.27],[-75.991,42.335],[-61.966,41.495],[-37.877,40.534],[28.174,-13.909],[23.227,-19.18]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[26.208,-30.514],[-76.269,42.796],[-63.537,42.824],[-38.608,42.201],[37.531,-19.476],[34.357,-25.302]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[25.835,-30.199],[-76.596,43.276],[-64.135,43.176],[-38.786,42.409],[41.715,-21.385],[39.428,-27.489]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[27.031,-32.235],[-76.007,42.973],[-64.732,43.086],[-38.965,42.617],[48.365,-26.158],[48.01,-29.141]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[26.727,-32.022],[-76.294,43.419],[-65.33,43.419],[-39.143,42.825],[54.82,-29.332],[37.788,-30.937]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[29.548,-33.501],[-76.581,43.378],[-65.928,43.263],[-39.321,42.871],[57.399,-30.7],[40.566,-32.371]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[32.025,-35.64],[-76.75,43.152],[-67.394,43.214],[-39.407,42.599],[59.393,-32.614],[42.957,-34.42]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[34.025,-37.14],[-77.54,40.298],[-68.001,43.503],[-39.575,42.776],[61.152,-34.002],[44.914,-35.874]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":29,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[34.025,-37.14],[-76.536,37.203],[-61.618,42.755],[-39.743,42.953],[60.911,-33.89],[44.871,-35.829]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[36.108,-38.432],[-72.869,34.953],[-53.639,42.672],[-39.368,42.64],[62.161,-35.015],[46.621,-37.038]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[38.192,-39.724],[-69.202,32.703],[-44.91,42.901],[-39.306,42.843],[63.411,-36.14],[48.371,-38.246]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[40.275,-41.015],[-65.536,30.453],[-54.181,35.38],[-38.618,42.015],[64.661,-37.265],[50.121,-39.454]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":33,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[38.358,-39.224],[-62.161,27.578],[-51.014,32.505],[-35.493,39.265],[66.036,-38.932],[50.079,-42.329]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":35,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[34.525,-35.64],[-55.411,21.828],[-44.681,26.755],[-29.243,33.765],[68.786,-42.265],[44.746,-38.329]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":39,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[20.623,-32.374],[-40.776,9.803],[-30.315,15.28],[-15.993,23.265],[60.036,-36.265],[39.397,-34.345]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":41,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[18.123,-30.374],[-32.151,3.928],[-24.065,8.78],[-9.743,17.14],[57.536,-34.265],[36.897,-32.345]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[39.998,-32.749],[-13.026,3.053],[-12.69,4.405],[-2.868,11.14],[54.911,-32.64],[41.147,-32.595]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[47.123,-30.124],[0.099,0.678],[0.435,2.03],[4.132,5.015],[52.036,-30.39],[48.272,-29.97]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":46,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[47.498,-25.874],[4.849,-0.197],[5.185,1.155],[7.632,2.265],[52.411,-26.14],[48.647,-25.72]],"c":true}]},{"t":59,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[47.498,-25.874],[4.849,-0.197],[5.185,1.155],[7.632,2.265],[52.411,-26.14],[48.647,-25.72]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[231.013,128.136]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":1,"k":[{"t":0,"s":[0],"h":1},{"t":7,"s":[0],"h":1},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":8,"s":[60]},{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":19,"s":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.66],"y":[0]},"t":46,"s":[60]},{"t":47,"s":[0],"h":1},{"t":59,"s":[0],"h":1}]},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":59,"st":-54,"bm":0}]},{"id":"comp_4","layers":[{"ddd":0,"ind":1,"ty":4,"sr":1,"ks":{"o":{"a":0,"k":38},"p":{"a":0,"k":[258.883,270.477,0]}},"ao":0,"ef":[{"ty":5,"nm":"Refraction3: Path 1 [1.1.0]","np":3,"mn":"ADBE Layer Control","ix":1,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":1}}]},{"ty":5,"nm":"Refraction3: Path 1 [1.1.1]","np":3,"mn":"ADBE Layer Control","ix":2,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":1}}]},{"ty":5,"nm":"Refraction3: Path 1 [1.1.2]","np":3,"mn":"ADBE Layer Control","ix":3,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":1}}]},{"ty":5,"nm":"Refraction3: Path 1 [1.1.3]","np":3,"mn":"ADBE Layer Control","ix":4,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":1}}]},{"ty":5,"nm":"Refraction3: Path 1 [1.1.4]","np":3,"mn":"ADBE Layer Control","ix":5,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":1}}]},{"ty":5,"nm":"Refraction3: Path 1 [1.1.5]","np":3,"mn":"ADBE Layer Control","ix":6,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":1}}]},{"ty":5,"nm":"Refraction3: Path 1 [1.1.6]","np":3,"mn":"ADBE Layer Control","ix":7,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":1}}]},{"ty":5,"nm":"Refraction3: Path 1 [1.1.7]","np":3,"mn":"ADBE Layer Control","ix":8,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":1}}]},{"ty":5,"nm":"Refraction3: Path 1 [1.1.8]","np":3,"mn":"ADBE Layer Control","ix":9,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":1}}]},{"ty":5,"nm":"Refraction3: Path 1 [1.1.9]","np":3,"mn":"ADBE Layer Control","ix":10,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":1}}]},{"ty":5,"nm":"Refraction3: Path 1 [1.1.10]","np":3,"mn":"ADBE Layer Control","ix":11,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":1}}]},{"ty":5,"nm":"Refraction3: Path 1 [1.1.11]","np":3,"mn":"ADBE Layer Control","ix":12,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":1}}]},{"ty":5,"nm":"Refraction3: Path 1 [1.1.12]","np":3,"mn":"ADBE Layer Control","ix":13,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":1}}]},{"ty":5,"nm":"Refraction3: Path 1 [1.1.13]","np":3,"mn":"ADBE Layer Control","ix":14,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":1}}]}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[158.889,-55.278],[137.002,-29.193],[-4.682,145.322],[-142.382,-24.943],[-166.236,-54.534],[-144.667,-96.556],[-124.267,-136.081],[-91.861,-148.937],[-58.232,-162.165],[-5.798,-162.165],[48.814,-162.165],[85.046,-147.928],[114.743,-136.612],[135.09,-99.159]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[158.252,-54.534],[137.002,-29.193],[-4.682,145.322],[-142.329,-25.156],[-166.661,-55.278],[-144.295,-97.459],[-123.629,-136.612],[-90.532,-149.256],[-56.373,-162.325],[-4.151,-162.059],[50.355,-161.847],[86.321,-147.29],[115.008,-136.081],[134.718,-98.947]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[157.614,-53.79],[137.002,-29.193],[-4.682,145.322],[-142.223,-25.315],[-167.032,-56.022],[-143.923,-98.415],[-123.045,-137.143],[-89.204,-149.575],[-54.567,-162.484],[-2.451,-162.006],[51.949,-161.581],[87.596,-146.706],[115.221,-135.55],[134.293,-98.734]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[156.977,-53.047],[137.002,-29.193],[-4.682,145.322],[-142.17,-25.528],[-167.457,-56.765],[-143.604,-99.318],[-122.407,-137.675],[-87.876,-149.947],[-52.761,-162.643],[-0.804,-161.9],[53.489,-161.262],[88.871,-146.068],[115.486,-134.965],[133.921,-98.522]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[156.34,-52.303],[137.002,-29.193],[-4.682,145.322],[-142.064,-25.687],[-167.829,-57.456],[-143.232,-100.222],[-121.823,-138.206],[-86.548,-150.265],[-50.901,-162.803],[0.843,-161.847],[55.083,-160.943],[90.146,-145.484],[115.699,-134.434],[133.549,-98.309]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[155.702,-51.559],[137.002,-29.193],[-4.682,145.322],[-142.011,-25.9],[-168.254,-58.2],[-142.861,-101.125],[-121.186,-138.737],[-85.22,-150.584],[-49.095,-163.015],[2.543,-161.74],[56.624,-160.678],[91.421,-144.847],[115.964,-133.903],[133.124,-98.097]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[155.064,-50.815],[137.002,-29.193],[-4.682,145.322],[-141.904,-26.112],[-168.626,-58.943],[-142.489,-102.081],[-120.548,-139.268],[-83.945,-150.903],[-47.236,-163.175],[4.189,-161.687],[58.164,-160.359],[92.696,-144.262],[116.177,-133.372],[132.752,-97.884]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[154.161,-50.125],[136.099,-28.131],[-4.682,145.322],[-141.851,-26.272],[-169.051,-59.687],[-142.117,-102.984],[-119.964,-139.8],[-82.617,-151.222],[-45.429,-163.334],[5.836,-161.581],[59.758,-160.04],[93.971,-143.518],[116.443,-132.787],[134.239,-96.875]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[153.311,-49.487],[135.143,-27.015],[-4.682,145.322],[-141.639,-26.537],[-169.157,-60.484],[-141.745,-103.887],[-119.326,-140.331],[-81.289,-151.593],[-43.57,-163.493],[7.536,-161.528],[61.299,-159.775],[95.246,-142.775],[116.708,-132.256],[135.727,-95.812]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[152.408,-48.797],[134.239,-25.953],[-4.682,145.322],[-141.373,-26.75],[-169.264,-61.334],[-141.32,-104.737],[-118.742,-140.862],[-79.961,-151.912],[-41.764,-163.653],[9.183,-161.422],[62.893,-159.456],[96.521,-142.084],[116.921,-131.725],[137.215,-94.803]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[151.505,-48.106],[133.336,-24.837],[-4.682,145.322],[-141.161,-27.015],[-169.37,-62.131],[-140.895,-105.587],[-118.104,-141.393],[-78.632,-152.231],[-39.957,-163.812],[10.883,-161.368],[64.433,-159.137],[97.743,-141.34],[117.186,-131.193],[138.702,-93.793]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[150.655,-47.468],[132.38,-23.775],[-4.682,145.322],[-140.948,-27.228],[-169.476,-62.928],[-140.523,-106.49],[-117.52,-141.925],[-77.304,-152.55],[-38.098,-163.972],[12.53,-161.262],[65.974,-158.872],[99.018,-140.597],[117.399,-130.662],[140.189,-92.731]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[149.752,-46.778],[131.477,-22.659],[-4.682,145.322],[-140.736,-27.493],[-169.582,-63.725],[-140.098,-107.34],[-116.882,-142.456],[-75.976,-152.868],[-36.292,-164.131],[14.177,-161.209],[67.568,-158.553],[100.293,-139.853],[117.665,-130.131],[141.677,-91.722]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[148.53,-46.034],[131.158,-23.084],[-4.682,145.322],[-140.523,-27.706],[-169.689,-64.522],[-139.673,-108.243],[-116.245,-142.987],[-74.648,-153.24],[-34.432,-164.343],[15.877,-161.103],[69.108,-158.234],[101.568,-139.162],[117.877,-129.547],[142.686,-90.978]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[147.361,-45.29],[130.893,-23.456],[-4.682,145.322],[-140.311,-27.972],[-169.795,-65.318],[-139.301,-109.093],[-115.661,-143.518],[-73.32,-153.559],[-32.626,-164.503],[17.524,-161.05],[70.702,-157.915],[102.843,-138.418],[118.143,-129.015],[143.643,-90.181]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[146.14,-44.547],[130.627,-23.881],[-4.682,145.322],[-140.098,-28.184],[-169.901,-66.115],[-138.876,-109.943],[-115.023,-144.05],[-71.992,-153.878],[-30.767,-164.662],[19.171,-160.943],[72.243,-157.65],[104.118,-137.675],[118.355,-128.484],[144.652,-89.437]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[144.971,-43.803],[130.308,-24.253],[-4.682,145.322],[-139.832,-28.45],[-170.007,-66.965],[-138.451,-110.847],[-114.439,-144.581],[-70.717,-154.197],[-28.961,-164.715],[20.871,-160.784],[73.571,-157.225],[105.18,-136.453],[118.196,-127.953],[145.608,-88.693]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[143.749,-43.059],[130.043,-24.678],[-4.682,145.322],[-139.62,-28.662],[-170.114,-67.762],[-138.026,-111.697],[-113.801,-145.112],[-69.389,-154.515],[-27.101,-164.822],[22.518,-160.625],[74.846,-156.853],[106.296,-135.231],[117.983,-127.368],[146.618,-87.95]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[142.58,-42.315],[129.724,-25.05],[-4.682,145.322],[-139.407,-28.875],[-170.22,-68.559],[-137.654,-112.6],[-113.217,-145.643],[-68.061,-154.834],[-25.295,-164.928],[24.164,-160.465],[76.121,-156.481],[107.358,-134.009],[117.824,-126.837],[147.574,-87.153]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[141.358,-41.572],[129.458,-25.475],[-4.682,145.322],[-139.195,-29.14],[-170.379,-69.356],[-137.229,-113.45],[-112.579,-146.175],[-66.732,-155.206],[-23.436,-164.981],[25.864,-160.306],[77.449,-156.056],[108.421,-132.787],[117.611,-126.306],[148.583,-86.409]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[140.136,-40.828],[129.193,-25.847],[-4.682,145.322],[-138.876,-29.565],[-170.007,-70.1],[-136.326,-114.14],[-111.517,-146.653],[-65.404,-155.525],[-21.629,-165.087],[27.511,-160.147],[78.724,-155.684],[109.483,-131.565],[117.452,-125.775],[149.593,-85.665]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[138.968,-40.084],[128.874,-26.272],[-4.682,145.322],[-138.557,-29.99],[-169.636,-70.843],[-135.423,-114.884],[-110.507,-147.131],[-64.076,-155.843],[-19.823,-165.14],[29.158,-159.987],[80.052,-155.259],[110.599,-130.29],[117.239,-125.19],[150.549,-84.868]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[137.746,-39.34],[128.608,-26.643],[-4.682,145.322],[-138.239,-30.415],[-169.264,-71.587],[-134.52,-115.575],[-109.445,-147.609],[-62.748,-156.162],[-17.964,-165.247],[30.858,-159.828],[81.327,-154.887],[111.661,-129.068],[117.08,-124.659],[151.558,-84.125]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[136.577,-38.597],[128.343,-27.068],[-4.682,145.322],[-137.92,-30.84],[-168.892,-72.331],[-133.67,-116.265],[-108.436,-148.034],[-61.42,-156.481],[-16.157,-165.3],[32.505,-159.668],[82.655,-154.462],[112.564,-127.687],[116.868,-124.128],[152.514,-83.381]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[135.355,-37.853],[128.024,-27.493],[-4.682,145.322],[-137.601,-31.265],[-168.52,-73.075],[-132.767,-117.009],[-107.373,-148.512],[-60.092,-156.853],[-14.298,-165.406],[34.205,-159.509],[83.93,-154.09],[113.468,-126.253],[116.708,-123.597],[153.524,-82.637]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[134.186,-37.109],[127.758,-27.865],[-4.682,145.322],[-137.282,-31.69],[-168.201,-73.818],[-131.864,-117.7],[-106.364,-148.99],[-58.764,-157.172],[-12.492,-165.512],[35.852,-159.297],[85.205,-153.718],[114.371,-124.872],[116.496,-123.012],[154.48,-81.84]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[132.965,-36.365],[127.439,-28.29],[-4.682,145.322],[-137.017,-32.115],[-167.829,-74.562],[-130.961,-118.39],[-105.301,-149.468],[-57.489,-157.49],[-10.632,-165.565],[37.499,-159.137],[86.533,-153.293],[115.221,-123.437],[116.336,-122.481],[155.489,-81.097]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[131.689,-35.781],[127.28,-29.353],[-4.682,145.322],[-136.698,-32.54],[-167.457,-75.253],[-130.057,-119.134],[-104.292,-149.947],[-56.161,-157.809],[-8.826,-165.672],[39.199,-158.978],[87.808,-152.922],[116.124,-122.003],[116.124,-121.95],[155.915,-80.353]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[130.414,-35.25],[127.121,-30.415],[-4.682,145.322],[-136.379,-32.965],[-167.086,-75.997],[-129.207,-119.825],[-103.282,-150.372],[-54.832,-158.128],[-6.967,-165.725],[40.846,-158.818],[89.136,-152.497],[116.921,-121.312],[116.921,-121.259],[156.286,-79.609]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":29,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[129.193,-34.665],[126.961,-31.478],[-4.682,145.322],[-136.061,-33.39],[-166.767,-76.74],[-128.304,-120.515],[-102.22,-150.85],[-53.504,-158.5],[-5.161,-165.831],[42.493,-158.659],[90.411,-152.125],[117.771,-120.568],[117.718,-120.515],[156.711,-78.918]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[127.918,-34.134],[126.802,-32.54],[-4.682,145.322],[-135.742,-33.815],[-166.395,-77.484],[-127.401,-121.259],[-101.211,-151.328],[-52.176,-158.818],[-3.301,-165.884],[44.193,-158.5],[91.686,-151.7],[118.568,-119.878],[118.514,-119.825],[157.083,-78.175]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[126.643,-33.55],[126.589,-33.603],[-4.682,145.322],[-135.423,-34.24],[-166.023,-78.228],[-126.498,-121.95],[-100.148,-151.806],[-50.848,-159.137],[-1.495,-165.99],[45.84,-158.34],[93.014,-151.328],[119.365,-119.134],[119.365,-119.081],[157.508,-77.431]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[127.227,-33.39],[127.227,-33.443],[-4.682,145.322],[-136.804,-34.931],[-165.439,-78.972],[-126.392,-121.95],[-98.82,-152.231],[-49.361,-159.243],[0.258,-165.831],[47.274,-158.022],[93.918,-150.797],[120.161,-118.443],[120.161,-118.39],[157.88,-76.74]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":33,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[127.864,-33.231],[127.811,-33.284],[-4.682,145.322],[-138.239,-35.622],[-164.801,-79.715],[-126.232,-121.897],[-97.545,-152.603],[-47.873,-159.35],[2.064,-165.725],[48.708,-157.703],[94.821,-150.318],[120.958,-117.753],[120.958,-117.7],[158.252,-75.997]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":34,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[128.449,-33.125],[128.449,-33.125],[-4.682,145.322],[-139.62,-36.312],[-164.217,-80.459],[-126.126,-121.897],[-96.217,-153.028],[-46.386,-159.509],[3.818,-165.565],[50.089,-157.384],[95.724,-149.787],[121.755,-117.009],[121.755,-116.956],[158.677,-75.253]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":35,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[129.086,-32.965],[129.033,-33.018],[-4.682,145.322],[-141.001,-37.003],[-163.632,-81.203],[-126.126,-122.322],[-94.889,-153.453],[-44.898,-159.615],[5.571,-165.406],[51.524,-157.065],[96.627,-149.256],[122.552,-116.318],[122.552,-116.265],[159.049,-74.509]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":36,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[129.671,-32.806],[129.618,-32.859],[-4.682,145.322],[-142.436,-37.693],[-162.995,-81.947],[-126.179,-122.693],[-93.561,-153.825],[-43.411,-159.722],[7.377,-165.247],[52.958,-156.693],[97.53,-148.725],[123.402,-115.575],[123.349,-115.522],[159.474,-73.818]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[130.308,-32.647],[130.255,-32.7],[-4.682,145.322],[-143.817,-38.384],[-162.411,-82.69],[-126.179,-123.118],[-92.286,-154.25],[-41.923,-159.828],[9.13,-165.14],[54.393,-156.375],[98.38,-148.247],[124.199,-114.884],[124.199,-114.831],[159.846,-73.075]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[130.893,-32.54],[130.839,-32.593],[-4.682,145.322],[-145.198,-39.075],[-161.401,-83.434],[-126.286,-123.756],[-90.957,-154.622],[-40.436,-159.934],[10.883,-164.981],[55.774,-156.056],[99.283,-147.715],[124.996,-114.14],[124.996,-114.14],[160.271,-72.331]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":39,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[131.477,-32.381],[131.477,-32.434],[-4.682,145.322],[-146.632,-39.765],[-160.339,-84.178],[-126.392,-124.393],[-89.629,-155.047],[-38.948,-160.04],[12.689,-164.822],[57.208,-155.737],[100.186,-147.184],[125.793,-113.45],[125.793,-113.397],[160.696,-71.587]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[132.114,-32.222],[132.061,-32.275],[-4.682,145.322],[-148.014,-40.456],[-159.329,-84.922],[-126.445,-125.084],[-88.301,-155.472],[-37.461,-160.2],[14.443,-164.715],[58.643,-155.418],[101.09,-146.653],[126.59,-112.706],[126.59,-112.706],[161.068,-70.897]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":41,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[132.699,-32.062],[132.646,-32.115],[-4.682,145.322],[-149.395,-41.147],[-158.267,-85.665],[-126.551,-125.722],[-87.026,-155.843],[-35.973,-160.306],[16.196,-164.556],[60.077,-155.1],[101.993,-146.175],[127.386,-112.015],[127.386,-112.015],[161.439,-70.153]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":42,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[133.336,-31.956],[133.283,-31.956],[-4.682,145.322],[-150.829,-41.837],[-157.257,-86.409],[-126.657,-126.359],[-85.698,-156.268],[-34.486,-160.412],[18.002,-164.397],[61.458,-154.781],[102.896,-145.643],[128.183,-111.272],[128.183,-111.272],[161.865,-69.409]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[133.868,-31.743],[133.814,-31.743],[-4.682,145.322],[-152.211,-42.528],[-156.248,-87.153],[-126.764,-126.997],[-84.211,-156.587],[-32.573,-160.465],[19.755,-164.29],[62.893,-154.462],[104.011,-145.218],[129.086,-110.475],[129.086,-110.475],[161.918,-68.559]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":44,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[134.452,-31.531],[134.399,-31.531],[-4.682,145.322],[-153.167,-43.272],[-155.186,-87.843],[-126.87,-127.634],[-82.67,-156.853],[-30.714,-160.518],[21.508,-164.131],[64.327,-154.143],[105.127,-144.793],[129.936,-109.678],[129.936,-109.678],[161.971,-67.709]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[134.983,-31.265],[134.983,-31.318],[-4.682,145.322],[-154.07,-44.015],[-154.176,-88.587],[-126.923,-128.325],[-81.182,-157.172],[-28.801,-160.572],[23.314,-163.972],[65.761,-153.825],[106.243,-144.368],[130.839,-108.881],[130.839,-108.934],[162.077,-66.806]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":46,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[134.983,-31.212],[134.983,-31.265],[-4.682,145.322],[-155.026,-44.759],[-153.114,-89.331],[-126.87,-128.803],[-79.642,-157.49],[-26.942,-160.625],[25.068,-163.812],[67.143,-153.4],[106.88,-143.89],[131.265,-107.978],[131.265,-107.978],[161.758,-66.062]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":47,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[134.983,-31.159],[134.983,-31.159],[-4.682,145.322],[-155.929,-45.503],[-152.104,-90.075],[-126.764,-129.281],[-78.154,-157.756],[-25.029,-160.731],[26.874,-163.706],[68.577,-152.922],[107.464,-143.412],[131.689,-107.022],[131.689,-107.022],[161.493,-65.265]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":48,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[134.983,-31.053],[134.93,-31.106],[-4.682,145.322],[-156.886,-46.193],[-151.095,-90.818],[-126.657,-129.759],[-76.614,-158.075],[-23.17,-160.784],[28.627,-163.547],[69.958,-152.497],[108.102,-142.881],[132.168,-106.065],[132.168,-106.118],[161.227,-64.468]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":49,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[135.196,-30.893],[135.143,-30.947],[-4.682,145.322],[-157.789,-46.937],[-150.032,-91.562],[-126.551,-130.237],[-75.126,-158.393],[-21.257,-160.837],[30.38,-163.387],[71.393,-152.072],[108.74,-142.403],[132.593,-105.056],[132.593,-105.109],[160.961,-63.725]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[135.355,-30.787],[135.355,-30.787],[-4.682,145.322],[-158.745,-47.681],[-148.704,-92.306],[-126.498,-130.662],[-73.586,-158.659],[-19.398,-160.89],[32.186,-163.281],[72.774,-151.647],[109.324,-141.872],[133.018,-104.047],[133.018,-104.1],[160.696,-62.928]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":51,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[135.568,-30.628],[135.514,-30.681],[-4.682,145.322],[-159.701,-48.425],[-147.376,-93.05],[-126.392,-131.14],[-72.098,-158.978],[-17.486,-160.943],[33.939,-163.122],[74.208,-151.222],[109.961,-141.393],[133.443,-103.037],[133.443,-103.09],[160.43,-62.131]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":52,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[135.78,-30.468],[135.727,-30.522],[-4.682,145.322],[-160.604,-49.168],[-146.048,-93.793],[-126.286,-131.672],[-70.611,-159.297],[-15.573,-160.997],[35.693,-162.962],[75.589,-150.797],[110.546,-140.862],[133.868,-102.028],[133.868,-102.081],[160.111,-61.387]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":53,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[135.939,-30.309],[135.886,-30.362],[-4.682,145.322],[-161.561,-49.912],[-144.72,-94.537],[-126.179,-132.097],[-69.07,-159.562],[-13.714,-161.05],[37.499,-162.803],[77.024,-150.372],[111.13,-140.384],[134.293,-101.018],[134.293,-101.072],[159.846,-60.59]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":54,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[136.152,-30.203],[136.099,-30.203],[-4.682,145.322],[-162.464,-50.603],[-143.392,-95.228],[-126.073,-132.628],[-67.582,-159.881],[-11.801,-161.103],[39.252,-162.697],[78.405,-149.947],[111.768,-139.906],[134.718,-100.062],[134.718,-100.062],[159.58,-59.847]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":55,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[136.311,-30.043],[136.258,-30.097],[-4.682,145.322],[-163.207,-51.347],[-143.392,-95.972],[-125.754,-133.212],[-66.042,-160.2],[-9.942,-161.156],[41.005,-162.537],[79.839,-149.522],[112.352,-139.375],[135.143,-99.053],[135.143,-99.053],[159.314,-59.05]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":56,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[136.524,-29.884],[136.471,-29.937],[-4.682,145.322],[-163.898,-52.09],[-143.339,-96.715],[-125.436,-133.797],[-64.554,-160.465],[-8.029,-161.262],[42.811,-162.378],[81.221,-149.097],[112.99,-138.897],[135.568,-98.043],[135.568,-98.043],[159.049,-58.306]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":57,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[136.683,-29.725],[136.683,-29.778],[-4.682,145.322],[-164.642,-52.834],[-143.339,-97.459],[-125.117,-134.381],[-63.014,-160.784],[-6.17,-161.315],[44.564,-162.272],[82.655,-148.672],[113.574,-138.365],[135.993,-96.981],[135.993,-97.034],[158.783,-57.509]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":58,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[136.896,-29.618],[136.843,-29.618],[-4.682,145.322],[-165.332,-53.578],[-143.339,-98.203],[-124.798,-134.965],[-61.526,-161.103],[-4.257,-161.368],[46.318,-162.112],[84.036,-148.247],[114.211,-137.887],[136.418,-95.972],[136.418,-96.025],[158.464,-56.712]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":59,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[137.055,-29.459],[137.055,-29.512],[-4.682,145.322],[-166.076,-54.322],[-143.286,-98.947],[-124.426,-135.603],[-60.039,-161.368],[-2.398,-161.422],[48.124,-161.953],[85.418,-147.822],[114.796,-137.356],[136.843,-95.015],[136.843,-95.015],[158.199,-55.968]],"c":true}]},{"t":60,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[137.268,-29.3],[137.215,-29.353],[-4.682,145.322],[-166.767,-55.065],[-143.286,-99.69],[-124.107,-136.187],[-58.498,-161.687],[-0.486,-161.475],[49.877,-161.847],[86.852,-147.397],[115.433,-136.878],[137.268,-93.953],[137.321,-94.006],[157.933,-55.172]],"c":true}]}]},"hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[187.438,-58.125],[159.438,-109.75],[135.5,-153.813],[100.563,-167.125],[57.938,-183.875],[-6.313,-183.875],[-68,-183.875],[-107.563,-168.313],[-145.688,-153.188],[-169.688,-106.688],[-195.063,-57.25],[-167,-22.438],[-5,177.875],[161.688,-27.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[186.688,-57.25],[158.978,-109.499],[135.788,-153.168],[102.059,-166.405],[59.777,-183.52],[-4.351,-183.78],[-65.842,-184.071],[-106.006,-168.7],[-144.958,-153.817],[-169.262,-107.77],[-195.533,-58.118],[-166.908,-22.664],[-5,177.875],[161.688,-27.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[185.935,-56.372],[158.519,-109.249],[136.07,-152.536],[103.566,-165.679],[61.613,-183.165],[-2.393,-183.685],[-63.694,-184.265],[-104.446,-169.088],[-144.239,-154.439],[-168.837,-108.854],[-196.004,-58.987],[-166.818,-22.887],[-5,177.875],[161.688,-27.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[185.19,-55.502],[158.064,-109.001],[136.355,-151.898],[105.056,-164.962],[63.451,-182.81],[-0.433,-183.589],[-61.54,-184.46],[-102.892,-169.474],[-143.516,-155.063],[-168.412,-109.934],[-196.473,-59.854],[-166.727,-23.112],[-5,177.875],[161.687,-27.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[184.443,-54.631],[157.607,-108.752],[136.643,-151.255],[106.544,-164.246],[65.292,-182.454],[1.53,-183.494],[-59.385,-184.656],[-101.337,-169.861],[-142.793,-155.688],[-167.991,-111.007],[-196.939,-60.714],[-166.637,-23.334],[-5,177.875],[161.688,-27.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[183.688,-53.75],[157.146,-108.5],[136.93,-150.612],[108.045,-163.524],[67.128,-182.1],[3.487,-183.399],[-57.232,-184.851],[-99.78,-170.248],[-142.065,-156.316],[-167.566,-112.09],[-197.41,-61.583],[-166.546,-23.559],[-5,177.875],[161.688,-27.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[182.937,-52.875],[156.687,-108.25],[137.216,-149.973],[109.542,-162.803],[68.965,-181.745],[5.446,-183.304],[-55.081,-185.046],[-98.224,-170.635],[-141.336,-156.946],[-167.139,-113.178],[-197.883,-62.456],[-166.455,-23.784],[-5,177.875],[161.687,-27.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[181.896,-52.083],[158.438,-107.042],[137.499,-149.34],[111.038,-161.944],[70.803,-181.39],[7.406,-183.209],[-52.928,-185.241],[-96.664,-171.023],[-140.609,-157.573],[-166.714,-114.26],[-198.353,-63.323],[-166.364,-24.01],[-5,177.875],[160.603,-26.157]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[180.851,-51.289],[160.2,-105.825],[137.781,-148.708],[112.535,-161.085],[72.641,-181.035],[9.365,-183.114],[-50.775,-185.436],[-95.106,-171.411],[-139.886,-158.198],[-166.229,-115.292],[-198.483,-64.275],[-166.098,-24.296],[-5,177.875],[159.514,-24.873]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[179.815,-50.502],[161.942,-104.622],[138.064,-148.075],[114.032,-160.226],[74.478,-180.68],[11.325,-183.019],[-48.621,-185.631],[-93.55,-171.798],[-139.165,-158.821],[-165.751,-116.311],[-198.612,-65.221],[-165.843,-24.572],[-5,177.875],[158.436,-23.601]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[178.778,-49.714],[163.682,-103.42],[138.349,-147.438],[115.525,-159.369],[76.315,-180.325],[13.283,-182.923],[-46.469,-185.827],[-91.996,-172.184],[-138.446,-159.442],[-165.267,-117.341],[-198.742,-66.172],[-165.582,-24.854],[-5,177.875],[157.355,-22.326]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[177.729,-48.917],[165.437,-102.208],[138.635,-146.798],[117.013,-158.514],[78.152,-179.97],[15.242,-182.828],[-44.318,-186.021],[-90.441,-172.571],[-137.725,-160.064],[-164.782,-118.375],[-198.872,-67.125],[-165.319,-25.137],[-5,177.875],[156.263,-21.037]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[176.688,-48.125],[167.188,-101],[138.921,-146.157],[118.51,-157.655],[79.992,-179.614],[17.204,-182.733],[-42.162,-186.217],[-88.885,-172.958],[-137.003,-160.688],[-164.3,-119.4],[-199.002,-68.071],[-165.059,-25.417],[-5,177.875],[155.178,-19.757]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[175.275,-47.249],[168.351,-100.105],[139.206,-145.519],[120.017,-156.79],[81.83,-179.259],[19.164,-182.638],[-40.008,-186.412],[-87.328,-173.345],[-136.28,-161.312],[-163.823,-120.417],[-199.13,-69.011],[-164.801,-25.695],[-5,177.875],[154.836,-20.236]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[173.866,-46.375],[169.509,-99.214],[139.49,-144.885],[121.513,-155.931],[83.664,-178.905],[21.119,-182.543],[-37.857,-186.607],[-85.771,-173.732],[-135.557,-161.936],[-163.346,-121.433],[-199.259,-69.953],[-164.543,-25.974],[-5,177.875],[154.503,-20.701]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[172.455,-45.5],[170.67,-98.321],[139.776,-144.243],[123.01,-155.071],[85.506,-178.549],[23.083,-182.448],[-35.702,-186.802],[-84.215,-174.119],[-134.833,-162.562],[-162.866,-122.455],[-199.389,-70.901],[-164.284,-26.253],[-5,177.875],[154.166,-21.172]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[171.043,-44.624],[171.832,-97.427],[139.554,-143.599],[124.277,-153.626],[87.034,-178.085],[25.045,-182.255],[-33.546,-186.901],[-82.659,-174.506],[-134.109,-163.187],[-162.382,-123.485],[-199.519,-71.858],[-164.023,-26.535],[-5,177.875],[153.827,-21.646]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[169.633,-43.75],[172.991,-96.536],[139.335,-142.963],[125.551,-152.172],[88.56,-177.621],[27.003,-182.063],[-31.395,-186.999],[-81.103,-174.893],[-133.385,-163.812],[-161.9,-124.512],[-199.65,-72.812],[-163.764,-26.815],[-5,177.875],[153.489,-22.119]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[168.223,-42.875],[174.152,-95.643],[139.112,-142.32],[126.82,-150.724],[90.087,-177.157],[28.962,-181.871],[-29.242,-187.097],[-79.547,-175.28],[-132.664,-164.435],[-161.42,-125.534],[-199.779,-73.754],[-163.509,-27.089],[-5,177.875],[153.154,-22.588]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[166.813,-42],[175.313,-94.75],[138.89,-141.674],[128.076,-149.291],[91.616,-176.692],[30.925,-181.679],[-27.086,-187.196],[-77.99,-175.667],[-131.938,-165.063],[-160.938,-126.563],[-199.909,-74.71],[-163.242,-27.378],[-5,177.875],[152.819,-23.055]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[165.402,-41.125],[176.473,-93.857],[138.669,-141.034],[129.342,-147.847],[93.142,-176.229],[32.884,-181.487],[-24.933,-187.294],[-76.435,-176.054],[-130.715,-165.616],[-159.884,-127.397],[-199.482,-75.583],[-162.869,-27.883],[-5,177.875],[152.485,-23.523]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[163.991,-40.25],[177.633,-92.965],[138.45,-140.399],[130.612,-146.398],[94.668,-175.765],[34.841,-181.295],[-22.782,-187.392],[-74.881,-176.441],[-129.5,-166.167],[-158.833,-128.229],[-199.06,-76.445],[-162.504,-28.377],[-5,177.875],[152.149,-23.994]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[162.582,-39.376],[178.793,-92.073],[138.23,-139.765],[131.879,-144.952],[96.195,-175.301],[36.801,-181.103],[-20.629,-187.49],[-73.325,-176.827],[-128.278,-166.72],[-157.78,-129.063],[-198.633,-77.318],[-162.134,-28.878],[-5,177.875],[151.81,-24.468]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[161.17,-38.5],[179.955,-91.179],[138.01,-139.127],[132.932,-143.293],[97.722,-174.837],[38.761,-180.911],[-18.476,-187.589],[-71.768,-177.215],[-127.051,-167.276],[-156.729,-129.896],[-198.204,-78.193],[-161.763,-29.38],[-5,177.875],[151.469,-24.944]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[159.759,-37.625],[181.116,-90.286],[137.788,-138.484],[133.987,-141.63],[99.248,-174.373],[40.72,-180.719],[-16.323,-187.687],[-70.209,-177.603],[-125.831,-167.829],[-155.678,-130.728],[-197.78,-79.061],[-161.395,-29.878],[-5,177.875],[151.131,-25.416]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[158.35,-36.751],[182.271,-89.397],[137.567,-137.843],[135.031,-139.983],[100.775,-173.909],[42.68,-180.527],[-14.17,-187.785],[-68.651,-177.99],[-124.617,-168.378],[-154.632,-131.557],[-197.359,-79.922],[-161.029,-30.374],[-5,177.875],[150.797,-25.884]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[156.938,-35.875],[183.438,-88.5],[137.348,-137.21],[136.09,-138.313],[102.3,-173.446],[44.637,-180.335],[-12.019,-187.883],[-67.095,-178.377],[-123.405,-168.928],[-153.584,-132.387],[-196.938,-80.782],[-160.663,-30.869],[-5,177.875],[150.457,-26.36]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[155.45,-35.212],[183.908,-87.638],[137.125,-136.563],[137.143,-136.653],[103.828,-172.981],[46.597,-180.143],[-9.865,-187.982],[-65.538,-178.764],[-122.188,-169.479],[-152.531,-133.221],[-196.514,-81.648],[-160.294,-31.369],[-5,177.875],[150.257,-27.61]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[153.954,-34.546],[184.375,-86.781],[138.078,-135.721],[138.092,-135.808],[105.356,-172.517],[48.559,-179.951],[-7.71,-188.08],[-63.982,-179.151],[-120.97,-170.031],[-151.471,-134.061],[-196.088,-82.519],[-159.922,-31.873],[-5,177.875],[150.056,-28.862]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":29,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[152.478,-33.889],[184.844,-85.922],[139.02,-134.889],[139.036,-134.968],[106.883,-172.053],[50.518,-179.759],[-5.556,-188.178],[-62.428,-179.538],[-119.75,-170.583],[-150.417,-134.896],[-195.662,-83.389],[-159.551,-32.375],[-5,177.875],[149.858,-30.102]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[150.988,-33.225],[185.313,-85.061],[139.967,-134.052],[139.983,-134.125],[108.406,-171.59],[52.472,-179.568],[-3.405,-188.277],[-60.869,-179.925],[-118.533,-171.135],[-149.368,-135.726],[-195.239,-84.254],[-159.184,-32.872],[-5,177.875],[149.657,-31.359]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[149.5,-32.563],[185.782,-84.202],[140.916,-133.214],[140.931,-133.281],[109.938,-171.125],[54.438,-179.375],[-1.25,-188.375],[-59.313,-180.313],[-117.313,-171.688],[-148.313,-136.563],[-194.813,-85.125],[-158.813,-33.375],[-5,177.875],[149.457,-32.61]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[150.218,-32.389],[186.25,-83.344],[141.863,-132.377],[141.876,-132.439],[111,-170.513],[56.112,-178.993],[0.834,-188.206],[-57.561,-180.449],[-115.766,-172.165],[-148.166,-136.542],[-194.104,-86],[-160.459,-34.188],[-5,177.875],[150.177,-32.436]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":33,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[150.928,-32.218],[186.717,-82.487],[142.81,-131.541],[142.822,-131.597],[112.052,-169.907],[57.783,-178.612],[2.921,-188.036],[-55.813,-180.585],[-114.222,-172.642],[-148.021,-136.521],[-193.394,-86.878],[-162.104,-35],[-5,177.875],[150.883,-32.266]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":34,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[151.647,-32.045],[187.184,-81.632],[143.757,-130.704],[143.769,-130.754],[113.117,-169.294],[59.457,-178.23],[5.002,-187.867],[-54.06,-180.722],[-112.674,-173.12],[-147.875,-136.501],[-192.689,-87.748],[-163.751,-35.813],[-5,177.875],[151.599,-32.093]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":35,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[152.365,-31.871],[187.65,-80.777],[144.704,-129.867],[144.715,-129.912],[114.181,-168.681],[61.131,-177.849],[7.086,-187.698],[-52.313,-180.858],[-111.131,-173.597],[-147.896,-136.98],[-191.984,-88.619],[-165.397,-36.626],[-5,177.875],[152.313,-31.921]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":36,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[153.076,-31.7],[188.118,-79.919],[145.652,-129.03],[145.662,-129.069],[115.234,-168.075],[62.801,-177.468],[9.17,-187.529],[-50.562,-180.994],[-109.59,-174.072],[-147.917,-137.457],[-191.271,-89.5],[-167.042,-37.438],[-5,177.875],[153.022,-31.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[153.783,-31.529],[188.589,-79.056],[146.599,-128.194],[146.607,-128.227],[116.281,-167.471],[64.474,-177.086],[11.254,-187.36],[-48.813,-181.131],[-108.053,-174.547],[-147.938,-137.938],[-190.563,-90.375],[-168.687,-38.25],[-5,177.875],[153.729,-31.579]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[154.492,-31.358],[189.061,-78.19],[147.546,-127.358],[147.554,-127.384],[117.332,-166.866],[66.147,-176.705],[13.341,-187.191],[-47.063,-181.267],[-106.51,-175.024],[-148.051,-138.702],[-189.346,-91.247],[-170.333,-39.062],[-5,177.875],[154.439,-31.408]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":39,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[155.208,-31.186],[189.531,-77.328],[148.494,-126.52],[148.501,-126.541],[118.392,-166.255],[67.82,-176.323],[15.428,-187.021],[-45.314,-181.403],[-104.955,-175.504],[-148.163,-139.463],[-188.138,-92.114],[-171.979,-39.875],[-5,177.875],[155.157,-31.235]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[155.924,-31.013],[190,-76.469],[149.442,-125.683],[149.448,-125.698],[119.452,-165.645],[69.492,-175.942],[17.512,-186.852],[-43.563,-181.54],[-103.403,-175.983],[-148.276,-140.227],[-186.924,-92.985],[-173.623,-40.687],[-5,177.875],[155.875,-31.062]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":41,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[156.631,-30.842],[190.466,-75.615],[150.387,-124.848],[150.389,-124.86],[120.507,-165.037],[71.163,-175.561],[19.593,-186.683],[-41.817,-181.676],[-101.862,-176.459],[-148.388,-140.984],[-185.703,-93.861],[-175.271,-41.5],[-5,177.875],[156.585,-30.891]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":42,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[157.352,-30.668],[190.938,-74.75],[151.337,-124.009],[151.341,-124.013],[121.567,-164.427],[72.838,-175.179],[21.675,-186.514],[-40.063,-181.813],[-100.313,-176.938],[-148.5,-141.741],[-184.489,-94.731],[-176.914,-42.311],[-5,177.875],[157.302,-30.718]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[158.016,-30.411],[191.014,-73.733],[152.364,-123.076],[152.367,-123.074],[122.891,-163.936],[74.511,-174.797],[23.759,-186.345],[-37.838,-181.882],[-98.533,-177.292],[-148.614,-142.508],[-183.283,-95.596],[-178.563,-43.125],[-5,177.875],[157.967,-30.461]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":44,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[158.675,-30.157],[191.09,-72.724],[153.383,-122.15],[153.384,-122.143],[124.203,-163.449],[76.181,-174.416],[25.843,-186.176],[-35.618,-181.951],[-96.757,-177.646],[-148.727,-143.273],[-182.077,-96.461],[-179.663,-43.993],[-5,177.875],[158.626,-30.206]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[159.339,-29.9],[191.167,-71.708],[154.408,-121.219],[154.409,-121.205],[125.524,-162.96],[77.856,-174.034],[27.927,-186.006],[-33.396,-182.021],[-94.979,-178],[-148.84,-144.035],[-180.867,-97.329],[-180.759,-44.857],[-5,177.875],[159.29,-29.949]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":46,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[159.334,-29.811],[190.841,-70.789],[154.932,-120.12],[154.931,-120.103],[126.246,-162.369],[79.513,-173.531],[30.01,-185.837],[-31.172,-182.09],[-93.2,-178.354],[-148.728,-144.601],[-179.656,-98.198],[-181.862,-45.726],[-5,177.875],[159.287,-29.859]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":47,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[159.329,-29.722],[190.519,-69.881],[155.451,-119.031],[155.449,-119.008],[126.963,-161.782],[81.167,-173.03],[32.094,-185.668],[-28.947,-182.16],[-91.42,-178.709],[-148.617,-145.161],[-178.442,-99.068],[-182.966,-46.597],[-5,177.875],[159.284,-29.77]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":48,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[159.324,-29.633],[190.196,-68.967],[155.974,-117.935],[155.972,-117.904],[127.682,-161.192],[82.823,-172.527],[34.178,-185.499],[-26.728,-182.229],[-89.645,-179.063],[-148.505,-145.726],[-177.232,-99.937],[-184.063,-47.461],[-5,177.875],[159.281,-29.68]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":49,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[159.551,-29.457],[189.871,-68.048],[156.48,-116.743],[156.477,-116.715],[128.408,-160.598],[84.481,-172.024],[36.263,-185.33],[-24.507,-182.299],[-87.868,-179.417],[-148.394,-146.286],[-176.018,-100.807],[-185.155,-48.322],[-5,177.875],[159.508,-29.504]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[159.77,-29.288],[189.545,-67.128],[156.984,-115.555],[156.98,-115.529],[129.133,-160.005],[86.134,-171.523],[38.346,-185.161],[-22.284,-182.368],[-86.09,-179.771],[-148.284,-146.843],[-174.452,-101.677],[-186.25,-49.186],[-5,177.875],[159.727,-29.335]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":51,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[159.994,-29.114],[189.22,-66.212],[157.489,-114.364],[157.484,-114.34],[129.853,-159.415],[87.789,-171.021],[40.427,-184.992],[-20.062,-182.438],[-84.312,-180.125],[-148.172,-147.405],[-172.882,-102.548],[-187.347,-50.05],[-5,177.875],[159.951,-29.162]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":52,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[160.219,-28.94],[188.898,-65.301],[157.994,-113.175],[157.988,-113.153],[130.567,-158.83],[89.444,-170.518],[42.509,-184.823],[-17.84,-182.507],[-82.535,-180.479],[-148.06,-147.972],[-171.327,-103.411],[-188.447,-50.917],[-5,177.875],[160.176,-28.988]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":53,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[160.442,-28.768],[188.576,-64.393],[158.498,-111.987],[158.491,-111.967],[131.28,-158.247],[91.1,-170.016],[44.594,-184.653],[-15.618,-182.576],[-80.757,-180.833],[-147.95,-148.529],[-169.751,-104.286],[-189.544,-51.782],[-5,177.875],[160.399,-28.815]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":54,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[160.663,-28.597],[188.254,-63.483],[159,-110.803],[158.992,-110.786],[131.993,-157.662],[92.755,-169.514],[46.682,-184.484],[-13.398,-182.646],[-78.981,-181.187],[-147.837,-149.098],[-168.184,-105.155],[-190.643,-52.649],[-5,177.875],[160.62,-28.644]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":55,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[160.884,-28.426],[187.931,-62.57],[159.502,-109.618],[159.494,-109.604],[132.711,-157.074],[94.409,-169.012],[48.767,-184.315],[-11.177,-182.715],[-77.204,-181.541],[-147.448,-149.801],[-168.164,-106.025],[-191.484,-53.515],[-5,177.875],[160.841,-28.473]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":56,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[161.107,-28.254],[187.607,-61.657],[160.008,-108.427],[159.998,-108.415],[133.433,-156.483],[96.064,-168.51],[50.851,-184.145],[-8.952,-182.785],[-75.424,-181.896],[-147.057,-150.505],[-168.144,-106.898],[-192.327,-54.383],[-5,177.875],[161.063,-28.301]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":57,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[161.331,-28.08],[187.283,-60.742],[160.516,-107.229],[160.505,-107.219],[134.155,-155.892],[97.721,-168.007],[52.935,-183.976],[-6.729,-182.854],[-73.646,-182.25],[-146.67,-151.203],[-168.124,-107.763],[-193.163,-55.244],[-5,177.875],[161.287,-28.128]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":58,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[161.552,-27.909],[186.96,-59.828],[161.022,-106.036],[161.01,-106.028],[134.874,-155.303],[99.377,-167.505],[55.015,-183.807],[-4.507,-182.924],[-71.868,-182.604],[-146.282,-151.903],[-168.103,-108.629],[-194,-56.106],[-5,177.875],[161.509,-27.956]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":59,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[161.771,-27.74],[186.637,-58.916],[161.525,-104.85],[161.513,-104.845],[135.589,-154.717],[101.029,-167.003],[57.103,-183.638],[-2.287,-182.993],[-70.098,-182.957],[-145.89,-152.609],[-168.083,-109.504],[-194.847,-56.978],[-5,177.875],[161.728,-27.787]],"c":true}]},{"t":60,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[162,-27.563],[186.313,-58],[162.031,-103.656],[162.018,-103.653],[136.313,-154.125],[102.688,-166.5],[59.188,-183.469],[-0.063,-183.063],[-68.313,-183.313],[-145.5,-153.313],[-168.063,-110.375],[-195.688,-57.844],[-5,177.875],[161.957,-27.61]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.407843142748,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[5,3]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":61,"st":-53,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"refId":"comp_0","sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":49,"s":[0]},{"t":84,"s":[90]}]},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[216,258,0],"to":[0,0,0],"ti":[0,0,0]},{"t":78,"s":[141,254,0]}]},"a":{"a":0,"k":[271,240,0]},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":69,"s":[165,165,100]},{"t":75,"s":[144,144,100]}]}},"ao":0,"w":512,"h":512,"ip":49,"op":84,"st":49,"bm":0},{"ddd":0,"ind":2,"ty":0,"refId":"comp_0","sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":139,"s":[0]},{"t":174,"s":[90]}]},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":140,"s":[350,184,0],"to":[0,0,0],"ti":[0,0,0]},{"t":168,"s":[291,194,0]}]},"a":{"a":0,"k":[271,240,0]},"s":{"a":0,"k":[66,66,100]}},"ao":0,"w":512,"h":512,"ip":139,"op":174,"st":139,"bm":0},{"ddd":0,"ind":3,"ty":0,"refId":"comp_0","sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":113,"s":[0]},{"t":148,"s":[45]}]},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":114,"s":[196,184,0],"to":[0,0,0],"ti":[0,0,0]},{"t":142,"s":[121,156,0]}]},"a":{"a":0,"k":[271,240,0]},"s":{"a":0,"k":[77,77,100]}},"ao":0,"w":512,"h":512,"ip":113,"op":148,"st":113,"bm":0},{"ddd":0,"ind":4,"ty":0,"refId":"comp_0","sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":95,"s":[0]},{"t":130,"s":[90]}]},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":96,"s":[376,244,0],"to":[0,0,0],"ti":[0,0,0]},{"t":124,"s":[301,254,0]}]},"a":{"a":0,"k":[271,240,0]}},"ao":0,"w":512,"h":512,"ip":95,"op":130,"st":95,"bm":0},{"ddd":0,"ind":5,"ty":0,"refId":"comp_0","sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":35,"s":[90]}]},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1,"s":[256,178,0],"to":[0,0,0],"ti":[0,0,0]},{"t":29,"s":[181,174,0]}]},"a":{"a":0,"k":[271,240,0]}},"ao":0,"w":512,"h":512,"ip":0,"op":35,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":0,"refId":"comp_1","sr":1,"ks":{"p":{"a":0,"k":[256,256,0]},"a":{"a":0,"k":[256,256,0]}},"ao":0,"w":512,"h":512,"ip":0,"op":54,"st":-6,"bm":0},{"ddd":0,"ind":7,"ty":0,"refId":"comp_1","sr":1,"ks":{"p":{"a":0,"k":[256,256,0]},"a":{"a":0,"k":[256,256,0]}},"ao":0,"w":512,"h":512,"ip":174,"op":180,"st":174,"bm":0},{"ddd":0,"ind":8,"ty":0,"refId":"comp_1","sr":1,"ks":{"p":{"a":0,"k":[256,256,0]},"a":{"a":0,"k":[256,256,0]}},"ao":0,"w":512,"h":512,"ip":114,"op":174,"st":114,"bm":0},{"ddd":0,"ind":9,"ty":0,"refId":"comp_1","sr":1,"ks":{"p":{"a":0,"k":[256,256,0]},"a":{"a":0,"k":[256,256,0]}},"ao":0,"w":512,"h":512,"ip":54,"op":114,"st":54,"bm":0},{"ddd":0,"ind":10,"ty":0,"refId":"comp_2","sr":1,"ks":{"p":{"a":0,"k":[256,256,0]},"a":{"a":0,"k":[256,256,0]}},"ao":0,"w":512,"h":512,"ip":0,"op":54,"st":-7,"bm":0},{"ddd":0,"ind":11,"ty":0,"refId":"comp_2","sr":1,"ks":{"p":{"a":0,"k":[256,256,0]},"a":{"a":0,"k":[256,256,0]}},"ao":0,"w":512,"h":512,"ip":174,"op":180,"st":173,"bm":0},{"ddd":0,"ind":12,"ty":0,"refId":"comp_2","sr":1,"ks":{"p":{"a":0,"k":[256,256,0]},"a":{"a":0,"k":[256,256,0]}},"ao":0,"w":512,"h":512,"ip":114,"op":174,"st":113,"bm":0},{"ddd":0,"ind":13,"ty":0,"refId":"comp_2","sr":1,"ks":{"p":{"a":0,"k":[256,256,0]},"a":{"a":0,"k":[256,256,0]}},"ao":0,"w":512,"h":512,"ip":54,"op":114,"st":53,"bm":0},{"ddd":0,"ind":14,"ty":0,"refId":"comp_3","sr":1,"ks":{"p":{"a":0,"k":[256,256,0]},"a":{"a":0,"k":[256,256,0]}},"ao":0,"w":512,"h":512,"ip":0,"op":51,"st":-8,"bm":0},{"ddd":0,"ind":15,"ty":0,"refId":"comp_3","sr":1,"ks":{"p":{"a":0,"k":[256,256,0]},"a":{"a":0,"k":[256,256,0]}},"ao":0,"w":512,"h":512,"ip":172,"op":180,"st":172,"bm":0},{"ddd":0,"ind":16,"ty":0,"refId":"comp_3","sr":1,"ks":{"p":{"a":0,"k":[256,256,0]},"a":{"a":0,"k":[256,256,0]}},"ao":0,"w":512,"h":512,"ip":113,"op":172,"st":113,"bm":0},{"ddd":0,"ind":17,"ty":0,"refId":"comp_3","sr":1,"ks":{"p":{"a":0,"k":[256,256,0]},"a":{"a":0,"k":[256,256,0]}},"ao":0,"w":512,"h":512,"ip":54,"op":113,"st":54,"bm":0},{"ddd":0,"ind":18,"ty":0,"refId":"comp_4","sr":1,"ks":{"p":{"a":0,"k":[256,256,0]},"a":{"a":0,"k":[256,256,0]}},"ao":0,"w":512,"h":512,"ip":0,"op":54,"st":-7,"bm":0},{"ddd":0,"ind":19,"ty":0,"refId":"comp_4","sr":1,"ks":{"p":{"a":0,"k":[256,256,0]},"a":{"a":0,"k":[256,256,0]}},"ao":0,"w":512,"h":512,"ip":174,"op":180,"st":173,"bm":0},{"ddd":0,"ind":20,"ty":0,"refId":"comp_4","sr":1,"ks":{"p":{"a":0,"k":[256,256,0]},"a":{"a":0,"k":[256,256,0]}},"ao":0,"w":512,"h":512,"ip":114,"op":174,"st":113,"bm":0},{"ddd":0,"ind":21,"ty":0,"refId":"comp_4","sr":1,"ks":{"p":{"a":0,"k":[256,256,0]},"a":{"a":0,"k":[256,256,0]}},"ao":0,"w":512,"h":512,"ip":54,"op":114,"st":53,"bm":0},{"ddd":0,"ind":22,"ty":4,"parent":43,"sr":1,"ks":{"p":{"a":0,"k":[50,45.136,0]},"a":{"a":0,"k":[2.844,-58.422,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[3.063,-151.813],[-73.688,-114.5],[-92.688,-32.063],[-39.969,34.969],[45.969,34.969],[98.375,-31.875],[79.75,-114.625]],"c":true}},"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[41]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":11,"s":[41]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"t":87,"s":[27]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":112,"s":[71]},{"t":180,"s":[57]}]},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[45]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":11,"s":[45]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"t":87,"s":[27]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":112,"s":[68]},{"t":180,"s":[57]}]},"o":{"a":0,"k":0},"m":1,"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":11,"s":[0]},{"i":{"x":[0.577],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":30,"s":[6]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":70,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":112,"s":[0]},{"i":{"x":[0.577],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":127,"s":[14]},{"t":180,"s":[0]}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[2.821,-58.482]},"a":{"a":0,"k":[2.821,-58.482]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[3.063,-151.813],[-73.688,-114.5],[-92.688,-32.063],[-39.969,34.969],[45.969,34.969],[98.375,-31.875],[79.75,-114.625]],"c":true}},"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[30]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"t":82,"s":[16]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":98,"s":[60]},{"t":180,"s":[46]}]},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[35]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"t":82,"s":[24]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":98,"s":[65]},{"t":180,"s":[54]}]},"o":{"a":0,"k":0},"m":1,"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.577],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":20,"s":[6]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":82,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":98,"s":[0]},{"i":{"x":[0.577],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":127,"s":[14]},{"t":180,"s":[0]}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[2.821,-58.482]},"a":{"a":0,"k":[2.821,-58.482]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[3.063,-151.813],[-73.688,-114.5],[-92.688,-32.063],[-39.969,34.969],[45.969,34.969],[98.375,-31.875],[79.75,-114.625]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.780392216701,0.917647118662,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":2},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"fl","c":{"a":0,"k":[0.780392156863,0.917395258885,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[2.821,-58.482]},"a":{"a":0,"k":[2.821,-58.482]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":23,"ty":4,"sr":1,"ks":{"p":{"a":0,"k":[256,256,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[191.997,-70.046],[146.255,-117.907],[111.289,-155.025]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[193.517,-68.296],[145.455,-116.589],[114.103,-154.013]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[194.866,-66.532],[144.527,-115.28],[116.818,-152.976]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[196.044,-64.757],[143.473,-113.979],[119.431,-151.914]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[197.049,-62.972],[142.293,-112.689],[121.939,-150.829]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[197.881,-61.179],[140.989,-111.41],[124.342,-149.72]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[198.538,-59.378],[139.561,-110.144],[126.636,-148.591]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":34,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[199.02,-57.573],[138.011,-108.892],[128.819,-147.44]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":36,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[199.328,-55.764],[136.341,-107.654],[130.89,-146.27]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[199.459,-53.952],[134.551,-106.433],[132.846,-145.082]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[199.415,-52.141],[132.644,-105.228],[134.687,-143.876]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":42,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[199.196,-50.33],[130.621,-104.042],[136.409,-142.653]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":44,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[198.801,-48.522],[128.483,-102.875],[138.013,-141.416]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":46,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[198.231,-46.719],[126.234,-101.728],[139.495,-140.164]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":48,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[197.486,-44.922],[123.874,-100.602],[140.856,-138.898]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[196.567,-43.132],[121.406,-99.499],[142.093,-137.621]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":52,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[195.476,-41.352],[118.832,-98.419],[143.206,-136.333]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":54,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[194.212,-39.583],[116.155,-97.363],[144.194,-135.036]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":56,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[192.777,-37.826],[113.377,-96.332],[145.055,-133.729]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":58,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[191.173,-36.083],[110.5,-95.327],[145.789,-132.416]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":60,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[189.4,-34.356],[107.526,-94.349],[146.396,-131.096]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":62,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[187.461,-32.646],[104.46,-93.4],[146.875,-129.771]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":64,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[185.357,-30.954],[101.302,-92.478],[147.224,-128.443]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":66,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[183.089,-29.283],[98.057,-91.587],[147.445,-127.112]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":68,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[180.661,-27.633],[94.726,-90.725],[147.537,-125.779]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":70,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[178.074,-26.006],[91.314,-89.895],[147.499,-124.446]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":72,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[175.33,-24.404],[87.823,-89.097],[147.332,-123.114]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":74,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[172.432,-22.828],[84.256,-88.331],[147.037,-121.785]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":76,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[169.383,-21.28],[80.616,-87.598],[146.612,-120.458]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":78,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[166.185,-19.76],[76.907,-86.899],[146.059,-119.136]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":80,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[162.841,-18.27],[73.131,-86.235],[145.378,-117.82]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":82,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[159.354,-16.812],[69.293,-85.606],[144.57,-116.51]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":84,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[155.727,-15.387],[65.396,-85.013],[143.635,-115.209]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":86,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[151.964,-13.996],[61.443,-84.455],[142.574,-113.917]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[148.067,-12.64],[57.438,-83.935],[141.389,-112.635]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[144.041,-11.32],[53.384,-83.451],[140.08,-111.365]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":92,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[139.889,-10.039],[49.285,-83.006],[138.648,-110.107]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[135.614,-8.796],[45.144,-82.598],[137.095,-108.863]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":96,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[131.221,-7.593],[40.966,-82.229],[135.423,-107.634]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":98,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[126.713,-6.431],[36.754,-81.898],[133.631,-106.421]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":100,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[122.094,-5.312],[32.512,-81.606],[131.723,-105.225]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":102,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[117.369,-4.235],[28.243,-81.354],[129.7,-104.047]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":104,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[112.542,-3.202],[23.952,-81.141],[127.564,-102.888]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":106,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[107.617,-2.215],[19.642,-80.967],[125.316,-101.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":108,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[102.598,-1.273],[15.317,-80.834],[122.959,-100.633]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":110,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[97.49,-0.378],[10.981,-80.74],[120.494,-99.538]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":112,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[92.298,0.469],[6.638,-80.686],[117.925,-98.466]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":114,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[87.026,1.269],[2.292,-80.673],[115.252,-97.418]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":116,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[81.679,2.019],[-2.053,-80.699],[112.48,-96.396]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":118,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[76.261,2.72],[-6.394,-80.766],[109.609,-95.399]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":120,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[70.778,3.37],[-10.727,-80.873],[106.643,-94.43]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":122,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[65.234,3.97],[-15.048,-81.019],[103.585,-93.488]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":124,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[59.635,4.518],[-19.352,-81.206],[100.436,-92.575]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":126,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[53.985,5.014],[-23.636,-81.431],[97.201,-91.691]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":128,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[48.289,5.458],[-27.897,-81.697],[93.881,-90.838]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":130,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[42.553,5.849],[-32.129,-82.001],[90.48,-90.015]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":132,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[36.781,6.187],[-36.331,-82.345],[87,-89.224]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":134,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[30.98,6.472],[-40.497,-82.727],[83.446,-88.466]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":136,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[25.153,6.703],[-44.624,-83.147],[79.82,-87.741]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":138,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[19.306,6.881],[-48.709,-83.605],[76.125,-87.049]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":140,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[13.445,7.004],[-52.748,-84.1],[72.364,-86.392]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":142,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[7.575,7.073],[-56.736,-84.633],[68.542,-85.77]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":144,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[1.7,7.089],[-60.672,-85.202],[64.661,-85.184]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":146,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-4.173,7.049],[-64.55,-85.807],[60.725,-84.633]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":148,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-10.04,6.956],[-68.368,-86.448],[56.737,-84.119]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":150,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-15.895,6.809],[-72.122,-87.123],[52.701,-83.642]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":152,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-21.734,6.608],[-75.809,-87.833],[48.621,-83.202]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":154,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-27.55,6.353],[-79.426,-88.577],[44.5,-82.801]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":156,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-33.339,6.044],[-82.968,-89.353],[40.342,-82.437]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":158,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-39.095,5.683],[-86.434,-90.162],[36.15,-82.112]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":160,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-44.814,5.268],[-89.82,-91.002],[31.929,-81.826]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":162,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-50.49,4.801],[-93.123,-91.874],[27.682,-81.579]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":164,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-56.118,4.282],[-96.34,-92.775],[23.413,-81.371]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":166,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-61.694,3.711],[-99.469,-93.706],[19.125,-81.202]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":168,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-67.211,3.089],[-102.505,-94.665],[14.823,-81.073]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":170,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-72.666,2.416],[-105.447,-95.651],[10.511,-80.984]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":172,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-78.053,1.693],[-108.293,-96.665],[6.192,-80.935]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":174,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-83.368,0.921],[-111.038,-97.704],[1.87,-80.925]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":176,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-88.605,0.1],[-113.682,-98.768],[-2.451,-80.956]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":178,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-93.761,-0.768],[-116.222,-99.856],[-6.767,-81.026]],"c":true}]},{"t":179,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-96.306,-1.22],[-117.452,-100.408],[-8.922,-81.076]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":20,"s":[0.29411765933,0.596078455448,0.858823597431,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":84,"s":[0.482352972031,0.780392229557,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":113,"s":[0.423529446125,0.741176486015,0.980392217636,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":144,"s":[0.317647069693,0.68235296011,0.956862807274,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":173,"s":[0.77254909277,0.917647123337,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":205,"s":[0.478431403637,0.819607913494,1,1]},{"t":268,"s":[0.29411765933,0.596078455448,0.858823597431,1]}]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":20,"op":180,"st":0,"bm":0},{"ddd":0,"ind":24,"ty":4,"sr":1,"ks":{"p":{"a":0,"k":[256,256,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[188.706,-33.984],[106.678,-94.169],[147.151,-131.259]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[186.731,-32.28],[103.594,-93.228],[147.645,-129.927]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[184.592,-30.595],[100.42,-92.314],[148.009,-128.591]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[182.29,-28.931],[97.159,-91.431],[148.244,-127.253]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[179.828,-27.289],[93.814,-90.578],[148.349,-125.913]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[177.208,-25.67],[90.388,-89.756],[148.324,-124.572]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[174.432,-24.076],[86.884,-88.966],[148.169,-123.233]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[171.503,-22.509],[83.304,-88.209],[147.885,-121.895]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[168.423,-20.969],[79.653,-87.485],[147.47,-120.561]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[165.195,-19.458],[75.933,-86.796],[146.927,-119.231]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[161.822,-17.978],[72.149,-86.14],[146.255,-117.907]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[158.307,-16.529],[68.302,-85.52],[145.455,-116.589]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[154.654,-15.114],[64.397,-84.936],[144.527,-115.28]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[150.864,-13.732],[60.437,-84.388],[143.473,-113.979]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[146.943,-12.387],[56.425,-83.877],[142.293,-112.689]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[142.893,-11.078],[52.366,-83.403],[140.989,-111.41]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[138.717,-9.807],[48.263,-82.967],[139.561,-110.144]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":34,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[134.421,-8.575],[44.119,-82.568],[138.011,-108.892]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":36,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[130.007,-7.383],[39.938,-82.208],[136.341,-107.654]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[125.479,-6.233],[35.725,-81.887],[134.551,-106.433]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[120.842,-5.124],[31.482,-81.605],[132.644,-105.228]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":42,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[116.099,-4.06],[27.214,-81.362],[130.621,-104.042]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":44,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[111.255,-3.039],[22.924,-81.158],[128.483,-102.875]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":46,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[106.315,-2.063],[18.616,-80.994],[126.234,-101.728]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":48,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[101.282,-1.133],[14.294,-80.87],[123.874,-100.602]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[96.161,-0.251],[9.962,-80.786],[121.406,-99.499]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":52,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[90.957,0.585],[5.624,-80.742],[118.832,-98.419]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":54,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[85.674,1.371],[1.284,-80.738],[116.155,-97.363]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":56,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[80.318,2.109],[-3.055,-80.773],[113.377,-96.332]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":58,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[74.892,2.797],[-7.388,-80.849],[110.5,-95.327]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":60,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[69.402,3.435],[-11.713,-80.965],[107.526,-94.349]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":62,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[63.852,4.022],[-16.024,-81.121],[104.46,-93.4]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":64,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[58.249,4.557],[-20.318,-81.316],[101.302,-92.478]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":66,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[52.595,5.041],[-24.591,-81.551],[98.057,-91.587]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":68,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[46.898,5.472],[-28.839,-81.825],[94.726,-90.725]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":70,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[41.161,5.85],[-33.059,-82.138],[91.314,-89.895]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":72,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[35.39,6.176],[-37.247,-82.49],[87.823,-89.097]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":74,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[29.59,6.448],[-41.399,-82.88],[84.256,-88.331]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":76,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[23.766,6.666],[-45.511,-83.308],[80.616,-87.598]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":78,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[17.924,6.831],[-49.579,-83.775],[76.907,-86.899]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":80,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[12.068,6.941],[-53.601,-84.278],[73.131,-86.235]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":82,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[6.205,6.998],[-57.572,-84.818],[69.293,-85.606]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":84,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[0.338,7],[-61.489,-85.395],[65.396,-85.013]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":86,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-5.526,6.949],[-65.348,-86.008],[61.443,-84.455]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-11.383,6.843],[-69.147,-86.656],[57.438,-83.935]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-17.226,6.684],[-72.88,-87.338],[53.384,-83.451]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":92,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-23.052,6.47],[-76.546,-88.055],[49.285,-83.006]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-28.854,6.203],[-80.141,-88.805],[45.144,-82.598]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":96,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-34.628,5.883],[-83.661,-89.588],[40.966,-82.229]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":98,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-40.368,5.509],[-87.104,-90.403],[36.754,-81.898]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":100,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-46.07,5.083],[-90.466,-91.25],[32.512,-81.606]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":102,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-51.727,4.604],[-93.745,-92.127],[28.243,-81.354]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":104,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-57.336,4.074],[-96.937,-93.034],[23.952,-81.141]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":106,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-62.891,3.492],[-100.04,-93.97],[19.642,-80.967]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":108,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-68.386,2.858],[-103.051,-94.934],[15.317,-80.834]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":110,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-73.818,2.175],[-105.966,-95.926],[10.981,-80.74]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":112,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-79.182,1.442],[-108.785,-96.944],[6.638,-80.686]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":114,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-84.471,0.659],[-111.503,-97.987],[2.292,-80.673]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":116,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-89.683,-0.171],[-114.12,-99.055],[-2.053,-80.699]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":118,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-94.812,-1.05],[-116.631,-100.147],[-6.395,-80.766]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":120,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-99.853,-1.975],[-119.035,-101.262],[-10.727,-80.873]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":122,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-104.802,-2.947],[-121.331,-102.398],[-15.048,-81.019]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":124,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-109.655,-3.963],[-123.515,-103.554],[-19.352,-81.206]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":126,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-114.407,-5.024],[-125.586,-104.731],[-23.636,-81.431]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":128,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-119.054,-6.128],[-127.542,-105.926],[-27.897,-81.697]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":130,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-123.592,-7.275],[-129.381,-107.138],[-32.129,-82.001]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":132,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-128.017,-8.463],[-131.102,-108.367],[-36.331,-82.345]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":134,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-132.325,-9.691],[-132.703,-109.611],[-40.497,-82.727]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":136,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-136.512,-10.959],[-134.183,-110.87],[-44.624,-83.147]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":138,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-140.573,-12.264],[-135.54,-112.141],[-48.709,-83.605]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":140,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-144.507,-13.606],[-136.773,-113.425],[-52.748,-84.1]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":142,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-148.309,-14.984],[-137.881,-114.719],[-56.736,-84.633]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":144,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-151.975,-16.397],[-138.864,-116.023],[-60.672,-85.202]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":146,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-155.503,-17.842],[-139.719,-117.335],[-64.55,-85.807]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":148,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-158.889,-19.32],[-140.447,-118.655],[-68.368,-86.448]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":150,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-162.13,-20.828],[-141.046,-119.98],[-72.122,-87.123]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":152,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-165.224,-22.365],[-141.517,-121.311],[-75.809,-87.833]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":154,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-168.167,-23.93],[-141.858,-122.646],[-79.426,-88.577]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":156,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-170.958,-25.522],[-142.07,-123.983],[-82.968,-89.353]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":158,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-173.592,-27.138],[-142.153,-125.321],[-86.434,-90.162]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":160,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-176.069,-28.778],[-142.105,-126.659],[-89.82,-91.002]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":162,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-178.386,-30.44],[-141.928,-127.997],[-93.123,-91.874]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":164,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-180.54,-32.123],[-141.621,-129.332],[-96.34,-92.775]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":166,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-182.531,-33.825],[-141.185,-130.664],[-99.469,-93.706]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":168,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-184.355,-35.545],[-140.62,-131.991],[-102.505,-94.665]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":170,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-186.012,-37.28],[-139.926,-133.312],[-105.447,-95.651]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":172,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-187.5,-39.03],[-139.105,-134.627],[-108.293,-96.665]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":174,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-188.818,-40.793],[-138.157,-135.933],[-111.038,-97.704]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":176,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-189.964,-42.568],[-137.082,-137.23],[-113.682,-98.768]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":178,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-190.937,-44.352],[-135.882,-138.516],[-116.222,-99.856]],"c":true}]},{"t":179,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-191.359,-45.247],[-135.236,-139.155],[-117.452,-100.408]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-40,"s":[0.29411765933,0.596078455448,0.858823597431,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":24,"s":[0.482352972031,0.780392229557,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":53,"s":[0.423529446125,0.741176486015,0.980392217636,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":84,"s":[0.317647069693,0.68235296011,0.956862807274,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":113,"s":[0.77254909277,0.917647123337,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":145,"s":[0.478431403637,0.819607913494,1,1]},{"t":208,"s":[0.29411765933,0.596078455448,0.858823597431,1]}]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":25,"ty":4,"sr":1,"ks":{"p":{"a":0,"k":[256,256,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":79,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[190.283,-70.648],[145.735,-118.477],[110.383,-155.502]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[191.862,-68.913],[144.99,-117.164],[113.244,-154.498]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":83,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[193.272,-67.165],[144.118,-115.859],[116.006,-153.469]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":85,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[194.511,-65.404],[143.12,-114.562],[118.667,-152.414]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":87,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[195.58,-63.633],[141.997,-113.275],[121.224,-151.336]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":89,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[196.476,-61.853],[140.75,-111.998],[123.676,-150.234]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":91,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[197.199,-60.065],[139.379,-110.734],[126.02,-149.11]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":93,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[197.749,-58.271],[137.887,-109.483],[128.254,-147.965]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":95,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[198.124,-56.473],[136.274,-108.247],[130.376,-146.8]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":97,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[198.325,-54.673],[134.542,-107.025],[132.384,-145.616]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":99,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[198.352,-52.871],[132.692,-105.821],[134.276,-144.414]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":101,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[198.203,-51.07],[130.726,-104.634],[136.051,-143.195]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":103,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[197.881,-49.271],[128.646,-103.465],[137.707,-141.961]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":105,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[197.384,-47.476],[126.453,-102.317],[139.243,-140.711]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":107,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[196.713,-45.687],[124.151,-101.189],[140.657,-139.448]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":109,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[195.869,-43.904],[121.74,-100.082],[141.947,-138.172]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":111,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[194.852,-42.13],[119.222,-98.999],[143.114,-136.886]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":113,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[193.664,-40.366],[116.601,-97.939],[144.155,-135.589]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":115,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[192.305,-38.614],[113.878,-96.904],[145.07,-134.282]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":117,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[190.778,-36.875],[111.056,-95.894],[145.858,-132.968]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":119,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[189.082,-35.151],[108.138,-94.911],[146.518,-131.648]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":121,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[187.22,-33.443],[105.125,-93.955],[147.05,-130.322]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":123,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[185.193,-31.753],[102.022,-93.028],[147.453,-128.991]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":125,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[183.003,-30.083],[98.829,-92.129],[147.727,-127.658]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":127,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[180.652,-28.434],[95.551,-91.261],[147.871,-126.322]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":129,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[178.143,-26.807],[92.19,-90.423],[147.886,-124.986]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":131,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[175.477,-25.204],[88.75,-89.616],[147.772,-123.65]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":133,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[172.656,-23.626],[85.232,-88.841],[147.528,-122.316]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":135,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[169.684,-22.075],[81.642,-88.099],[147.155,-120.985]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":137,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[166.563,-20.552],[77.981,-87.391],[146.652,-119.658]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":139,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[163.296,-19.059],[74.252,-86.717],[146.022,-118.336]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":141,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[159.885,-17.596],[70.461,-86.077],[145.263,-117.02]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":143,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[156.334,-16.166],[66.608,-85.472],[144.378,-115.712]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":145,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[152.646,-14.768],[62.699,-84.904],[143.365,-114.413]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":147,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[148.824,-13.406],[58.737,-84.371],[142.228,-113.124]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":149,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[144.872,-12.079],[54.725,-83.876],[140.966,-111.846]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":151,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[140.793,-10.79],[50.666,-83.418],[139.58,-110.579]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":153,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[136.591,-9.538],[46.565,-82.997],[138.073,-109.327]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":155,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[132.269,-8.326],[42.425,-82.614],[136.444,-108.088]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":157,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[127.832,-7.154],[38.25,-82.27],[134.697,-106.866]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":159,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[123.283,-6.024],[34.043,-81.964],[132.831,-105.66]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":161,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[118.626,-4.936],[29.808,-81.697],[130.85,-104.471]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":163,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[113.866,-3.891],[25.55,-81.47],[128.754,-103.302]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":165,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[109.007,-2.891],[21.271,-81.281],[126.546,-102.152]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":167,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[104.053,-1.937],[16.976,-81.133],[124.227,-101.024]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":169,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[99.009,-1.028],[12.668,-81.024],[121.8,-99.917]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":171,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[93.879,-0.166],[8.352,-80.954],[119.266,-98.833]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":173,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[88.668,0.648],[4.031,-80.925],[116.629,-97.773]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":175,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[83.38,1.414],[-0.291,-80.935],[113.89,-96.737]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":177,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[78.02,2.131],[-4.61,-80.986],[111.052,-95.728]],"c":true}]},{"t":179,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[72.594,2.797],[-8.922,-81.076],[108.117,-94.745]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":79,"s":[0.29411765933,0.596078455448,0.858823597431,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":143,"s":[0.482352972031,0.780392229557,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":172,"s":[0.423529446125,0.741176486015,0.980392217636,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":203,"s":[0.317647069693,0.68235296011,0.956862807274,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":232,"s":[0.77254909277,0.917647123337,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":264,"s":[0.478431403637,0.819607913494,1,1]},{"t":327,"s":[0.29411765933,0.596078455448,0.858823597431,1]}]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":79,"op":180,"st":0,"bm":0},{"ddd":0,"ind":26,"ty":4,"sr":1,"ks":{"p":{"a":0,"k":[256,256,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":139,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[190.901,-70.527],[146.022,-118.336],[110.404,-155.53]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":141,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[192.467,-68.787],[145.263,-117.02],[113.267,-154.526]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":143,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[193.865,-67.033],[144.378,-115.712],[116.032,-153.497]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":145,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[195.091,-65.267],[143.365,-114.413],[118.696,-152.442]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":147,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[196.146,-63.491],[142.228,-113.124],[121.256,-151.363]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":149,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[197.028,-61.705],[140.966,-111.846],[123.71,-150.261]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":151,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[197.737,-59.912],[139.58,-110.579],[126.057,-149.137]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":153,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[198.272,-58.114],[138.073,-109.327],[128.293,-147.992]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":155,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[198.632,-56.311],[136.444,-108.088],[130.418,-146.826]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":157,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[198.817,-54.506],[134.697,-106.866],[132.428,-145.642]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":159,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[198.827,-52.7],[132.831,-105.66],[134.323,-144.439]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":161,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[198.662,-50.895],[130.85,-104.471],[136.101,-143.22]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":163,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[198.322,-49.092],[128.754,-103.302],[137.759,-141.985]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":165,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[197.807,-47.293],[126.546,-102.152],[139.297,-140.735]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":167,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[197.118,-45.499],[124.227,-101.024],[140.713,-139.471]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":169,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[196.256,-43.713],[121.8,-99.917],[142.006,-138.195]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":171,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[195.22,-41.935],[119.266,-98.833],[143.175,-136.908]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":173,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[194.013,-40.168],[116.629,-97.773],[144.218,-135.61]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":175,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[192.635,-38.413],[113.89,-96.737],[145.135,-134.303]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":177,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[191.088,-36.671],[111.052,-95.728],[145.925,-132.989]],"c":true}]},{"t":179,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[189.372,-34.944],[108.117,-94.745],[146.587,-131.668]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":139,"s":[0.29411765933,0.596078455448,0.858823597431,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":203,"s":[0.482352972031,0.780392229557,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":232,"s":[0.423529446125,0.741176486015,0.980392217636,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":263,"s":[0.317647069693,0.68235296011,0.956862807274,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":292,"s":[0.77254909277,0.917647123337,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":324,"s":[0.478431403637,0.819607913494,1,1]},{"t":387,"s":[0.29411765933,0.596078455448,0.858823597431,1]}]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":139,"op":180,"st":0,"bm":0},{"ddd":0,"ind":27,"ty":4,"sr":1,"ks":{"p":{"a":0,"k":[256,256,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-191.54,-46.269],[-134.297,-139.855],[-118.239,-101.339]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-192.154,-48.066],[-132.844,-141.114],[-120.527,-102.468]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-192.594,-49.868],[-131.27,-142.36],[-122.705,-103.617]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-192.859,-51.673],[-129.575,-143.591],[-124.77,-104.786]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-192.948,-53.48],[-127.762,-144.805],[-126.721,-105.974]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-192.862,-55.287],[-125.832,-146.002],[-128.556,-107.179]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-192.602,-57.092],[-123.787,-147.181],[-130.274,-108.4]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-192.166,-58.894],[-121.628,-148.34],[-131.872,-109.636]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-191.556,-60.691],[-119.358,-149.479],[-133.35,-110.887]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-190.772,-62.482],[-116.979,-150.597],[-134.705,-112.151]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-189.814,-64.265],[-114.492,-151.692],[-135.938,-113.427]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-188.684,-66.038],[-111.9,-152.763],[-137.046,-114.713]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-187.383,-67.799],[-109.206,-153.811],[-138.03,-116.009]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-185.912,-69.549],[-106.411,-154.833],[-138.887,-117.314]],"c":true}]},{"t":28,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-184.271,-71.283],[-103.518,-155.829],[-139.617,-118.626]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-220,"s":[0.29411765933,0.596078455448,0.858823597431,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-156,"s":[0.482352972031,0.780392229557,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-127,"s":[0.423529446125,0.741176486015,0.980392217636,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-96,"s":[0.317647069693,0.68235296011,0.956862807274,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-67,"s":[0.77254909277,0.917647123337,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-35,"s":[0.478431403637,0.819607913494,1,1]},{"t":28,"s":[0.29411765933,0.596078455448,0.858823597431,1]}]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":28,"st":0,"bm":0},{"ddd":0,"ind":28,"ty":4,"sr":1,"ks":{"p":{"a":0,"k":[256,256,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-99.03,-2.213],[-118.239,-101.339],[-11.899,-81.18]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-103.956,-3.177],[-120.527,-102.468],[-16.189,-81.337]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-108.787,-4.186],[-122.705,-103.617],[-20.462,-81.534]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-113.518,-5.239],[-124.77,-104.786],[-24.714,-81.77]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-118.145,-6.335],[-126.721,-105.974],[-28.941,-82.045]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-122.663,-7.473],[-128.556,-107.179],[-33.14,-82.359]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-127.069,-8.652],[-130.274,-108.4],[-37.306,-82.712]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-131.359,-9.871],[-131.872,-109.636],[-41.436,-83.102]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-135.529,-11.13],[-133.35,-110.887],[-45.527,-83.531]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-139.574,-12.426],[-134.705,-112.151],[-49.574,-83.997]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-143.493,-13.759],[-135.938,-113.427],[-53.574,-84.501]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-147.28,-15.128],[-137.046,-114.713],[-57.523,-85.041]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-150.933,-16.53],[-138.03,-116.009],[-61.419,-85.617]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-154.448,-17.966],[-138.887,-117.314],[-65.257,-86.229]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-157.823,-19.434],[-139.617,-118.626],[-69.033,-86.876]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-161.054,-20.932],[-140.219,-119.944],[-72.746,-87.557]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-164.138,-22.459],[-140.694,-121.267],[-76.39,-88.273]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":34,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-167.072,-24.015],[-141.04,-122.594],[-79.964,-89.021]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":36,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-169.855,-25.596],[-141.258,-123.923],[-83.463,-89.803]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-172.483,-27.202],[-141.346,-125.254],[-86.886,-90.616]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-174.954,-28.832],[-141.305,-126.585],[-90.227,-91.46]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":42,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-177.266,-30.484],[-141.135,-127.915],[-93.486,-92.335]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":44,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-179.416,-32.156],[-140.837,-129.243],[-96.658,-93.24]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":46,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-181.404,-33.848],[-140.41,-130.568],[-99.741,-94.173]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":48,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-183.227,-35.557],[-139.854,-131.888],[-102.732,-95.134]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-184.883,-37.282],[-139.171,-133.203],[-105.629,-96.123]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":52,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-186.371,-39.022],[-138.361,-134.51],[-108.428,-97.138]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":54,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-187.69,-40.775],[-137.424,-135.809],[-111.128,-98.178]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":56,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-188.839,-42.539],[-136.362,-137.1],[-113.726,-99.242]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":58,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-189.816,-44.313],[-135.175,-138.38],[-116.219,-100.33]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":60,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-190.62,-46.095],[-133.864,-139.648],[-118.606,-101.441]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":62,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-191.252,-47.883],[-132.432,-140.904],[-120.884,-102.573]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":64,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-191.709,-49.677],[-130.878,-142.145],[-123.052,-103.725]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":66,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-191.993,-51.474],[-129.204,-143.372],[-125.106,-104.898]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":68,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-192.102,-53.273],[-127.412,-144.583],[-127.047,-106.088]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":70,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-192.037,-55.072],[-125.504,-145.777],[-128.87,-107.296]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":72,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-191.797,-56.87],[-123.481,-146.953],[-130.576,-108.52]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":74,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-191.384,-58.664],[-121.344,-148.11],[-132.163,-109.759]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":76,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-190.796,-60.454],[-119.097,-149.246],[-133.628,-111.012]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":78,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-190.035,-62.238],[-116.74,-150.362],[-134.972,-112.279]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":80,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-189.102,-64.014],[-114.276,-151.455],[-136.192,-113.557]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":82,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-187.996,-65.781],[-111.707,-152.524],[-137.288,-114.846]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":84,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-186.72,-67.537],[-109.036,-153.57],[-138.258,-116.144]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":86,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-185.275,-69.28],[-106.265,-154.591],[-139.102,-117.451]],"c":true}]},{"t":87,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-184.489,-70.146],[-104.842,-155.091],[-139.476,-118.107]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-161,"s":[0.29411765933,0.596078455448,0.858823597431,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-97,"s":[0.482352972031,0.780392229557,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-68,"s":[0.423529446125,0.741176486015,0.980392217636,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-37,"s":[0.317647069693,0.68235296011,0.956862807274,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-8,"s":[0.77254909277,0.917647123337,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":24,"s":[0.478431403637,0.819607913494,1,1]},{"t":87,"s":[0.29411765933,0.596078455448,0.858823597431,1]}]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":87,"st":0,"bm":0},{"ddd":0,"ind":29,"ty":4,"sr":1,"ks":{"p":{"a":0,"k":[256,256,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[68.767,3.206],[106.678,-94.169],[-11.899,-81.18]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[63.24,3.787],[103.594,-93.228],[-16.189,-81.337]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[57.659,4.317],[100.42,-92.314],[-20.462,-81.534]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[52.029,4.795],[97.159,-91.431],[-24.714,-81.77]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[46.356,5.221],[93.814,-90.578],[-28.941,-82.045]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[40.643,5.595],[90.388,-89.756],[-33.14,-82.359]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[34.897,5.916],[86.884,-88.966],[-37.306,-82.712]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[29.123,6.183],[83.304,-88.209],[-41.436,-83.102]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[23.325,6.397],[79.653,-87.485],[-45.527,-83.531]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[17.509,6.558],[75.933,-86.796],[-49.574,-83.997]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[11.68,6.665],[72.149,-86.14],[-53.574,-84.501]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[5.843,6.718],[68.302,-85.52],[-57.523,-85.041]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[0.004,6.717],[64.397,-84.936],[-61.419,-85.617]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-5.833,6.663],[60.437,-84.388],[-65.257,-86.229]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-11.661,6.554],[56.425,-83.877],[-69.033,-86.876]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-17.477,6.392],[52.366,-83.403],[-72.746,-87.557]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-23.274,6.177],[48.263,-82.967],[-76.39,-88.273]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":34,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-29.048,5.908],[44.119,-82.568],[-79.964,-89.021]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":36,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-34.793,5.586],[39.938,-82.208],[-83.463,-89.803]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-40.505,5.211],[35.725,-81.887],[-86.886,-90.616]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-46.177,4.784],[31.482,-81.605],[-90.227,-91.46]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":42,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-51.806,4.304],[27.214,-81.362],[-93.486,-92.335]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":44,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-57.385,3.773],[22.924,-81.158],[-96.658,-93.24]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":46,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-62.911,3.19],[18.616,-80.994],[-99.741,-94.173]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":48,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-68.377,2.557],[14.294,-80.87],[-102.732,-95.134]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-73.78,1.874],[9.962,-80.786],[-105.629,-96.123]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":52,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-79.114,1.141],[5.624,-80.742],[-108.428,-97.138]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":54,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-84.375,0.36],[1.284,-80.738],[-111.128,-98.178]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":56,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-89.557,-0.47],[-3.055,-80.773],[-113.726,-99.242]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":58,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-94.657,-1.347],[-7.388,-80.849],[-116.219,-100.33]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":60,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-99.669,-2.271],[-11.713,-80.965],[-118.606,-101.441]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":62,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-104.59,-3.24],[-16.024,-81.121],[-120.884,-102.573]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":64,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-109.415,-4.255],[-20.318,-81.316],[-123.052,-103.725]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":66,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-114.138,-5.314],[-24.591,-81.551],[-125.106,-104.898]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":68,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-118.758,-6.415],[-28.839,-81.825],[-127.047,-106.088]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":70,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-123.268,-7.559],[-33.059,-82.138],[-128.87,-107.296]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":72,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-127.665,-8.744],[-37.247,-82.49],[-130.576,-108.52]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":74,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-131.946,-9.969],[-41.399,-82.88],[-132.163,-109.759]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":76,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-136.106,-11.232],[-45.511,-83.308],[-133.628,-111.012]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":78,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-140.142,-12.534],[-49.579,-83.775],[-134.972,-112.279]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":80,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-144.049,-13.872],[-53.601,-84.278],[-136.192,-113.557]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":82,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-147.825,-15.246],[-57.572,-84.818],[-137.288,-114.846]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":84,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-151.466,-16.654],[-61.489,-85.395],[-138.258,-116.144]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":86,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-154.97,-18.094],[-65.348,-86.008],[-139.102,-117.451]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-158.331,-19.567],[-69.147,-86.656],[-139.818,-118.765]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-161.549,-21.07],[-72.88,-87.338],[-140.408,-120.085]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":92,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-164.62,-22.601],[-76.546,-88.055],[-140.868,-121.409]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-167.54,-24.161],[-80.141,-88.805],[-141.201,-122.738]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":96,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-170.308,-25.747],[-83.661,-89.588],[-141.404,-124.069]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":98,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-172.921,-27.357],[-87.104,-90.403],[-141.478,-125.401]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":100,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-175.377,-28.991],[-90.466,-91.25],[-141.423,-126.733]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":102,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-177.674,-30.647],[-93.745,-92.127],[-141.239,-128.064]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":104,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-179.809,-32.323],[-96.937,-93.034],[-140.926,-129.393]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":106,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-181.78,-34.018],[-100.04,-93.97],[-140.484,-130.718]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":108,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-183.586,-35.73],[-103.051,-94.934],[-139.914,-132.039]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":110,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-185.225,-37.459],[-105.966,-95.926],[-139.216,-133.354]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":112,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-186.696,-39.202],[-108.785,-96.944],[-138.391,-134.662]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":114,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-187.998,-40.957],[-111.503,-97.987],[-137.44,-135.961]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":116,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-189.128,-42.724],[-114.12,-99.055],[-136.363,-137.252]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":118,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-190.087,-44.5],[-116.631,-100.147],[-135.161,-138.532]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":120,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-190.873,-46.285],[-119.035,-101.262],[-133.836,-139.8]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":122,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-191.486,-48.076],[-121.331,-102.398],[-132.389,-141.055]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":124,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-191.925,-49.871],[-123.515,-103.554],[-130.82,-142.296]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":126,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-192.19,-51.67],[-125.586,-104.731],[-129.132,-143.523]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":128,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-192.28,-53.471],[-127.542,-105.926],[-127.326,-144.733]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":130,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-192.195,-55.272],[-129.381,-107.138],[-125.403,-145.926]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":132,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-191.936,-57.071],[-131.102,-108.367],[-123.365,-147.101]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":134,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-191.503,-58.867],[-132.703,-109.611],[-121.214,-148.257]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":136,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-190.896,-60.658],[-134.183,-110.87],[-118.953,-149.392]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":138,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-190.115,-62.442],[-135.54,-112.141],[-116.582,-150.506]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":140,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-189.162,-64.219],[-136.773,-113.425],[-114.104,-151.597]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":142,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-188.037,-65.986],[-137.881,-114.719],[-111.522,-152.665]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":144,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-186.741,-67.742],[-138.864,-116.023],[-108.837,-153.709]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":146,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-185.275,-69.485],[-139.719,-117.335],[-106.052,-154.728]],"c":true}]},{"t":147,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-184.479,-70.352],[-140.099,-117.994],[-104.623,-155.227]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-101,"s":[0.29411765933,0.596078455448,0.858823597431,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-37,"s":[0.482352972031,0.780392229557,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-8,"s":[0.423529446125,0.741176486015,0.980392217636,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":23,"s":[0.317647069693,0.68235296011,0.956862807274,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":52,"s":[0.77254909277,0.917647123337,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":84,"s":[0.478431403637,0.819607913494,1,1]},{"t":147,"s":[0.29411765933,0.596078455448,0.858823597431,1]}]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":147,"st":0,"bm":0},{"ddd":0,"ind":30,"ty":4,"sr":1,"ks":{"p":{"a":0,"k":[256,256,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[106.678,-94.169],[68.767,3.206],[188.706,-33.984]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[103.594,-93.228],[63.24,3.787],[186.731,-32.28]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[100.42,-92.314],[57.659,4.317],[184.592,-30.595]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[97.159,-91.431],[52.029,4.795],[182.29,-28.931]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[93.814,-90.578],[46.356,5.221],[179.828,-27.289]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[90.388,-89.756],[40.643,5.595],[177.208,-25.67]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[86.884,-88.966],[34.897,5.916],[174.432,-24.076]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[83.304,-88.209],[29.123,6.183],[171.503,-22.509]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[79.653,-87.485],[23.325,6.397],[168.423,-20.969]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[75.933,-86.796],[17.509,6.558],[165.195,-19.458]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[72.149,-86.14],[11.68,6.665],[161.822,-17.978]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[68.302,-85.52],[5.843,6.718],[158.307,-16.529]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[64.397,-84.936],[0.004,6.717],[154.654,-15.114]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[60.437,-84.388],[-5.833,6.663],[150.864,-13.732]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[56.425,-83.877],[-11.661,6.554],[146.943,-12.387]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[52.366,-83.403],[-17.477,6.392],[142.893,-11.078]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[48.263,-82.967],[-23.274,6.177],[138.717,-9.807]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":34,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[44.119,-82.568],[-29.048,5.908],[134.421,-8.575]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":36,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[39.938,-82.208],[-34.793,5.586],[130.007,-7.383]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[35.725,-81.887],[-40.505,5.211],[125.479,-6.233]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[31.482,-81.605],[-46.177,4.784],[120.842,-5.124]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":42,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[27.214,-81.362],[-51.806,4.304],[116.099,-4.06]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":44,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[22.924,-81.158],[-57.385,3.773],[111.255,-3.039]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":46,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[18.616,-80.994],[-62.911,3.19],[106.315,-2.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":48,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[14.294,-80.87],[-68.377,2.557],[101.282,-1.133]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[9.962,-80.786],[-73.78,1.874],[96.161,-0.251]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":52,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[5.624,-80.742],[-79.114,1.141],[90.957,0.585]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":54,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[1.284,-80.738],[-84.375,0.36],[85.674,1.371]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":56,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-3.055,-80.773],[-89.557,-0.47],[80.318,2.109]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":58,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-7.388,-80.849],[-94.657,-1.347],[74.892,2.797]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":60,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-11.713,-80.965],[-99.669,-2.271],[69.402,3.435]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":62,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-16.024,-81.121],[-104.59,-3.24],[63.852,4.022]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":64,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-20.318,-81.316],[-109.415,-4.255],[58.249,4.557]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":66,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-24.591,-81.551],[-114.138,-5.314],[52.595,5.041]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":68,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-28.839,-81.825],[-118.758,-6.415],[46.898,5.472]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":70,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-33.059,-82.138],[-123.268,-7.559],[41.161,5.85]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":72,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-37.247,-82.49],[-127.665,-8.744],[35.39,6.176]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":74,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-41.399,-82.88],[-131.946,-9.969],[29.59,6.448]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":76,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-45.511,-83.308],[-136.106,-11.232],[23.766,6.666]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":78,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-49.579,-83.775],[-140.142,-12.534],[17.924,6.831]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":80,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-53.601,-84.278],[-144.049,-13.872],[12.068,6.941]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":82,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-57.572,-84.818],[-147.825,-15.246],[6.205,6.998]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":84,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-61.489,-85.395],[-151.466,-16.654],[0.338,7]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":86,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-65.348,-86.008],[-154.97,-18.094],[-5.526,6.949]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-69.147,-86.656],[-158.331,-19.567],[-11.383,6.843]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-72.88,-87.338],[-161.549,-21.07],[-17.226,6.684]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":92,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-76.546,-88.055],[-164.62,-22.601],[-23.052,6.47]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-80.141,-88.805],[-167.54,-24.161],[-28.854,6.203]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":96,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-83.661,-89.588],[-170.308,-25.747],[-34.628,5.883]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":98,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-87.104,-90.403],[-172.921,-27.357],[-40.368,5.509]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":100,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-90.466,-91.25],[-175.377,-28.991],[-46.07,5.083]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":102,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-93.745,-92.127],[-177.674,-30.647],[-51.727,4.604]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":104,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-96.937,-93.034],[-179.809,-32.323],[-57.336,4.074]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":106,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-100.04,-93.97],[-181.78,-34.018],[-62.891,3.492]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":108,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-103.051,-94.934],[-183.586,-35.73],[-68.386,2.858]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":110,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-105.966,-95.926],[-185.225,-37.459],[-73.818,2.175]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":112,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-108.785,-96.944],[-186.696,-39.202],[-79.182,1.442]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":114,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-111.503,-97.987],[-187.998,-40.957],[-84.471,0.659]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":116,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-114.12,-99.055],[-189.128,-42.724],[-89.683,-0.171]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":118,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-116.631,-100.147],[-190.087,-44.5],[-94.812,-1.05]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":120,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-119.035,-101.262],[-190.873,-46.285],[-99.853,-1.975]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":122,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-121.331,-102.398],[-191.486,-48.076],[-104.802,-2.947]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":124,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-123.515,-103.554],[-191.925,-49.871],[-109.655,-3.963]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":126,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-125.586,-104.731],[-192.19,-51.67],[-114.407,-5.024]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":128,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-127.542,-105.926],[-192.28,-53.471],[-119.054,-6.128]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":130,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-129.381,-107.138],[-192.195,-55.272],[-123.592,-7.275]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":132,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-131.102,-108.367],[-191.936,-57.071],[-128.017,-8.463]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":134,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-132.703,-109.611],[-191.503,-58.867],[-132.325,-9.691]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":136,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-134.183,-110.87],[-190.896,-60.658],[-136.512,-10.959]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":138,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-135.54,-112.141],[-190.115,-62.442],[-140.573,-12.264]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":140,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-136.773,-113.425],[-189.162,-64.219],[-144.507,-13.606]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":142,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-137.881,-114.719],[-188.037,-65.986],[-148.309,-14.984]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":144,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-138.864,-116.023],[-186.741,-67.742],[-151.975,-16.397]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":146,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-139.719,-117.335],[-185.275,-69.485],[-155.503,-17.842]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":148,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-140.447,-118.655],[-183.642,-71.214],[-158.889,-19.32]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":150,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-141.046,-119.98],[-181.841,-72.927],[-162.13,-20.828]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":152,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-141.517,-121.311],[-179.875,-74.623],[-165.224,-22.365]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":154,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-141.858,-122.646],[-177.745,-76.3],[-168.167,-23.93]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":156,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-142.07,-123.983],[-175.454,-77.956],[-170.958,-25.522]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":158,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-142.153,-125.321],[-173.003,-79.591],[-173.592,-27.138]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":160,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-142.105,-126.659],[-170.395,-81.202],[-176.069,-28.778]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":162,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-141.928,-127.997],[-167.632,-82.788],[-178.386,-30.44]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":164,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-141.621,-129.332],[-164.716,-84.349],[-180.54,-32.123]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":166,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-141.185,-130.664],[-161.65,-85.881],[-182.531,-33.825]],"c":true}]},{"t":168,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-140.62,-131.991],[-158.437,-87.385],[-184.355,-35.545]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-60,"s":[0.245444044471,0.421792507172,0.745098054409,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-40,"s":[0.349019616842,0.662745118141,0.992156922817,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-11,"s":[0.482352972031,0.780392229557,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":16,"s":[0.423529446125,0.741176486015,0.980392217636,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":54,"s":[0.317647069693,0.68235296011,0.956862807274,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":79,"s":[0.77254909277,0.917647123337,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":112,"s":[0.478431403637,0.819607913494,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":146,"s":[0.29411765933,0.596078455448,0.858823597431,1]},{"t":168,"s":[0.205613210797,0.384617567062,0.749019622803,1]}]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"st","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-60,"s":[0.245444044471,0.421792507172,0.745098054409,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-40,"s":[0.349019616842,0.662745118141,0.992156922817,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-11,"s":[0.482352972031,0.780392229557,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":16,"s":[0.423529446125,0.741176486015,0.980392217636,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":54,"s":[0.317647069693,0.68235296011,0.956862807274,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":79,"s":[0.77254909277,0.917647123337,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":112,"s":[0.478431403637,0.819607913494,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":146,"s":[0.29411765933,0.596078455448,0.858823597431,1]},{"t":168,"s":[0.205613210797,0.384617567062,0.749019622803,1]}]},"o":{"a":0,"k":100},"w":{"a":0,"k":2},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":168,"st":0,"bm":0},{"ddd":0,"ind":31,"ty":4,"sr":1,"ks":{"p":{"a":0,"k":[256,256,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-11.899,-81.18],[-99.03,-2.213],[68.767,3.206]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-16.189,-81.337],[-103.956,-3.177],[63.24,3.787]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-20.462,-81.534],[-108.787,-4.186],[57.659,4.317]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-24.714,-81.77],[-113.518,-5.239],[52.029,4.795]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-28.941,-82.045],[-118.145,-6.335],[46.356,5.221]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-33.14,-82.359],[-122.663,-7.473],[40.643,5.595]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-37.306,-82.712],[-127.069,-8.652],[34.897,5.916]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-41.436,-83.102],[-131.359,-9.871],[29.123,6.183]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-45.527,-83.531],[-135.529,-11.13],[23.325,6.397]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-49.574,-83.997],[-139.574,-12.426],[17.509,6.558]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-53.574,-84.501],[-143.493,-13.759],[11.68,6.665]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-57.523,-85.041],[-147.28,-15.128],[5.843,6.718]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-61.419,-85.617],[-150.933,-16.53],[0.004,6.717]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-65.257,-86.229],[-154.448,-17.966],[-5.833,6.663]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-69.033,-86.876],[-157.823,-19.434],[-11.661,6.554]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-72.746,-87.557],[-161.054,-20.932],[-17.477,6.392]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-76.39,-88.273],[-164.138,-22.459],[-23.274,6.177]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":34,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-79.964,-89.021],[-167.072,-24.015],[-29.048,5.908]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":36,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-83.463,-89.803],[-169.855,-25.596],[-34.793,5.586]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-86.886,-90.616],[-172.483,-27.202],[-40.505,5.211]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-90.227,-91.46],[-174.954,-28.832],[-46.177,4.784]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":42,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-93.486,-92.335],[-177.266,-30.484],[-51.806,4.304]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":44,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-96.658,-93.24],[-179.416,-32.156],[-57.385,3.773]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":46,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-99.741,-94.173],[-181.404,-33.848],[-62.911,3.19]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":48,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-102.732,-95.134],[-183.227,-35.557],[-68.377,2.557]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-105.629,-96.123],[-184.883,-37.282],[-73.78,1.874]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":52,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-108.428,-97.138],[-186.371,-39.022],[-79.114,1.141]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":54,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-111.128,-98.178],[-187.69,-40.775],[-84.375,0.36]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":56,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-113.726,-99.242],[-188.839,-42.539],[-89.557,-0.47]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":58,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-116.219,-100.33],[-189.816,-44.313],[-94.657,-1.347]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":60,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-118.606,-101.441],[-190.62,-46.095],[-99.669,-2.271]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":62,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-120.884,-102.573],[-191.252,-47.883],[-104.59,-3.24]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":64,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-123.052,-103.725],[-191.709,-49.677],[-109.415,-4.255]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":66,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-125.106,-104.898],[-191.993,-51.474],[-114.138,-5.314]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":68,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-127.047,-106.088],[-192.102,-53.273],[-118.758,-6.415]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":70,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-128.87,-107.296],[-192.037,-55.072],[-123.268,-7.559]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":72,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-130.576,-108.52],[-191.797,-56.87],[-127.665,-8.744]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":74,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-132.163,-109.759],[-191.384,-58.664],[-131.946,-9.969]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":76,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-133.628,-111.012],[-190.796,-60.454],[-136.106,-11.232]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":78,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-134.972,-112.279],[-190.035,-62.238],[-140.142,-12.534]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":80,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-136.192,-113.557],[-189.102,-64.014],[-144.049,-13.872]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":82,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-137.288,-114.846],[-187.996,-65.781],[-147.825,-15.246]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":84,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-138.258,-116.144],[-186.72,-67.537],[-151.466,-16.654]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":86,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-139.102,-117.451],[-185.275,-69.28],[-154.97,-18.094]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-139.818,-118.765],[-183.661,-71.009],[-158.331,-19.567]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-140.408,-120.085],[-181.88,-72.722],[-161.549,-21.07]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":92,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-140.868,-121.409],[-179.934,-74.418],[-164.62,-22.601]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-141.201,-122.738],[-177.824,-76.096],[-167.54,-24.161]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":96,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-141.404,-124.069],[-175.553,-77.753],[-170.308,-25.747]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":98,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-141.478,-125.401],[-173.121,-79.388],[-172.921,-27.357]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":100,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-141.423,-126.733],[-170.533,-81.001],[-175.377,-28.991]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":102,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-141.239,-128.064],[-167.789,-82.589],[-177.674,-30.647]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":104,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-140.926,-129.393],[-164.893,-84.15],[-179.809,-32.323]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":106,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-140.484,-130.718],[-161.846,-85.685],[-181.78,-34.018]],"c":true}]},{"t":108,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-139.914,-132.039],[-158.652,-87.191],[-183.586,-35.73]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-120,"s":[0.245444044471,0.421792507172,0.745098054409,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-100,"s":[0.349019616842,0.662745118141,0.992156922817,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-71,"s":[0.482352972031,0.780392229557,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-44,"s":[0.423529446125,0.741176486015,0.980392217636,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-6,"s":[0.317647069693,0.68235296011,0.956862807274,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":19,"s":[0.77254909277,0.917647123337,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":52,"s":[0.478431403637,0.819607913494,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":86,"s":[0.29411765933,0.596078455448,0.858823597431,1]},{"t":108,"s":[0.205613210797,0.384617567062,0.749019622803,1]}]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"st","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-120,"s":[0.245444044471,0.421792507172,0.745098054409,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-100,"s":[0.349019616842,0.662745118141,0.992156922817,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-71,"s":[0.482352972031,0.780392229557,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-44,"s":[0.423529446125,0.741176486015,0.980392217636,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-6,"s":[0.317647069693,0.68235296011,0.956862807274,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":19,"s":[0.77254909277,0.917647123337,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":52,"s":[0.478431403637,0.819607913494,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":86,"s":[0.29411765933,0.596078455448,0.858823597431,1]},{"t":108,"s":[0.205613210797,0.384617567062,0.749019622803,1]}]},"o":{"a":0,"k":100},"w":{"a":0,"k":2},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":108,"st":0,"bm":0},{"ddd":0,"ind":32,"ty":4,"sr":1,"ks":{"p":{"a":0,"k":[256,256,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-118.239,-101.339],[-191.54,-46.269],[-99.03,-2.213]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-120.527,-102.468],[-192.154,-48.066],[-103.956,-3.177]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-122.705,-103.617],[-192.594,-49.868],[-108.787,-4.186]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-124.77,-104.786],[-192.859,-51.673],[-113.518,-5.239]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-126.721,-105.974],[-192.948,-53.48],[-118.145,-6.335]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-128.556,-107.179],[-192.862,-55.287],[-122.663,-7.473]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-130.274,-108.4],[-192.602,-57.092],[-127.069,-8.652]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-131.872,-109.636],[-192.166,-58.894],[-131.359,-9.871]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-133.35,-110.887],[-191.556,-60.691],[-135.529,-11.13]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-134.705,-112.151],[-190.772,-62.482],[-139.574,-12.426]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-135.938,-113.427],[-189.814,-64.265],[-143.493,-13.759]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-137.046,-114.713],[-188.684,-66.038],[-147.28,-15.128]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-138.03,-116.009],[-187.383,-67.799],[-150.933,-16.53]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-138.887,-117.314],[-185.912,-69.549],[-154.448,-17.966]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-139.617,-118.626],[-184.271,-71.283],[-157.823,-19.434]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-140.219,-119.944],[-182.464,-73.002],[-161.054,-20.932]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-140.694,-121.267],[-180.49,-74.704],[-164.138,-22.459]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":34,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-141.04,-122.594],[-178.352,-76.386],[-167.072,-24.015]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":36,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-141.258,-123.923],[-176.053,-78.048],[-169.855,-25.596]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-141.346,-125.254],[-173.593,-79.688],[-172.483,-27.202]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-141.305,-126.585],[-170.975,-81.305],[-174.954,-28.832]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":42,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-141.135,-127.915],[-168.201,-82.896],[-177.266,-30.484]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":44,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-140.837,-129.243],[-165.275,-84.462],[-179.416,-32.156]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":46,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-140.41,-130.568],[-162.198,-86],[-181.404,-33.848]],"c":true}]},{"t":48,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-139.854,-131.888],[-158.973,-87.508],[-183.227,-35.557]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-180,"s":[0.245444044471,0.421792507172,0.745098054409,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-160,"s":[0.349019616842,0.662745118141,0.992156922817,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-131,"s":[0.482352972031,0.780392229557,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-104,"s":[0.423529446125,0.741176486015,0.980392217636,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-66,"s":[0.317647069693,0.68235296011,0.956862807274,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-41,"s":[0.77254909277,0.917647123337,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-8,"s":[0.478431403637,0.819607913494,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":26,"s":[0.29411765933,0.596078455448,0.858823597431,1]},{"t":48,"s":[0.205613210797,0.384617567062,0.749019622803,1]}]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"st","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-180,"s":[0.245444044471,0.421792507172,0.745098054409,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-160,"s":[0.349019616842,0.662745118141,0.992156922817,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-131,"s":[0.482352972031,0.780392229557,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-104,"s":[0.423529446125,0.741176486015,0.980392217636,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-66,"s":[0.317647069693,0.68235296011,0.956862807274,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-41,"s":[0.77254909277,0.917647123337,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-8,"s":[0.478431403637,0.819607913494,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":26,"s":[0.29411765933,0.596078455448,0.858823597431,1]},{"t":48,"s":[0.205613210797,0.384617567062,0.749019622803,1]}]},"o":{"a":0,"k":100},"w":{"a":0,"k":2},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":48,"st":0,"bm":0},{"ddd":0,"ind":33,"ty":4,"sr":1,"ks":{"p":{"a":0,"k":[256,256,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":119,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[146.518,-131.648],[189.082,-35.151],[166.297,-86.843]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":121,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[147.05,-130.322],[187.22,-33.443],[169.456,-85.322]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":123,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[147.453,-128.991],[185.193,-31.753],[172.467,-83.773]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":125,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[147.727,-127.658],[183.003,-30.083],[175.326,-82.197]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":127,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[147.871,-126.322],[180.652,-28.434],[178.031,-80.595]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":129,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[147.886,-124.986],[178.143,-26.807],[180.58,-78.969]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":131,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[147.772,-123.65],[175.477,-25.204],[182.97,-77.32]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":133,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[147.528,-122.316],[172.656,-23.626],[185.199,-75.65]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":135,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[147.155,-120.985],[169.684,-22.075],[187.265,-73.96]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":137,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[146.652,-119.658],[166.563,-20.552],[189.166,-72.252]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":139,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[146.022,-118.336],[163.296,-19.059],[190.901,-70.527]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":141,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[145.263,-117.02],[159.885,-17.596],[192.467,-68.787]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":143,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[144.378,-115.712],[156.334,-16.166],[193.865,-67.033]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":145,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[143.365,-114.413],[152.646,-14.768],[195.091,-65.267]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":147,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[142.228,-113.124],[148.824,-13.406],[196.146,-63.491]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":149,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[140.966,-111.846],[144.872,-12.079],[197.028,-61.705]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":151,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[139.58,-110.579],[140.793,-10.79],[197.737,-59.912]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":153,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[138.073,-109.327],[136.591,-9.538],[198.272,-58.114]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":155,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[136.444,-108.088],[132.269,-8.326],[198.632,-56.311]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":157,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[134.697,-106.866],[127.832,-7.154],[198.817,-54.506]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":159,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[132.831,-105.66],[123.283,-6.024],[198.827,-52.7]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":161,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[130.85,-104.471],[118.626,-4.936],[198.662,-50.895]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":163,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[128.754,-103.302],[113.866,-3.891],[198.322,-49.092]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":165,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[126.546,-102.152],[109.007,-2.891],[197.807,-47.293]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":167,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[124.227,-101.024],[104.053,-1.937],[197.118,-45.499]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":169,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[121.8,-99.917],[99.009,-1.028],[196.256,-43.713]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":171,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[119.266,-98.833],[93.879,-0.166],[195.22,-41.935]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":173,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[116.629,-97.773],[88.668,0.648],[194.013,-40.168]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":175,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[113.89,-96.737],[83.38,1.414],[192.635,-38.413]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":177,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[111.052,-95.728],[78.02,2.131],[191.088,-36.671]],"c":true}]},{"t":179,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[108.117,-94.745],[72.594,2.797],[189.372,-34.944]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":119,"s":[0.245444044471,0.421792507172,0.745098054409,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":139,"s":[0.349019616842,0.662745118141,0.992156922817,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":168,"s":[0.482352972031,0.780392229557,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":195,"s":[0.423529446125,0.741176486015,0.980392217636,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":233,"s":[0.317647069693,0.68235296011,0.956862807274,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":258,"s":[0.77254909277,0.917647123337,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":291,"s":[0.478431403637,0.819607913494,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":325,"s":[0.29411765933,0.596078455448,0.858823597431,1]},{"t":347,"s":[0.205613210797,0.384617567062,0.749019622803,1]}]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"st","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":119,"s":[0.245444044471,0.421792507172,0.745098054409,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":139,"s":[0.349019616842,0.662745118141,0.992156922817,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":168,"s":[0.482352972031,0.780392229557,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":195,"s":[0.423529446125,0.741176486015,0.980392217636,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":233,"s":[0.317647069693,0.68235296011,0.956862807274,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":258,"s":[0.77254909277,0.917647123337,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":291,"s":[0.478431403637,0.819607913494,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":325,"s":[0.29411765933,0.596078455448,0.858823597431,1]},{"t":347,"s":[0.205613210797,0.384617567062,0.749019622803,1]}]},"o":{"a":0,"k":100},"w":{"a":0,"k":2},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":119,"op":180,"st":0,"bm":0},{"ddd":0,"ind":34,"ty":4,"sr":1,"ks":{"p":{"a":0,"k":[256,256,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":60,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[146.396,-131.096],[189.4,-34.356],[167.193,-86.149]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":62,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[146.875,-129.771],[187.461,-32.646],[170.285,-84.62]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":64,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[147.224,-128.443],[185.357,-30.954],[173.227,-83.064]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":66,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[147.445,-127.112],[183.089,-29.283],[176.017,-81.481]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":68,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[147.537,-125.779],[180.661,-27.633],[178.652,-79.873]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":70,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[147.499,-124.446],[178.074,-26.006],[181.13,-78.241]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":72,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[147.332,-123.114],[175.33,-24.404],[183.449,-76.588]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":74,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[147.037,-121.785],[172.432,-22.828],[185.607,-74.914]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":76,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[146.612,-120.458],[169.383,-21.28],[187.601,-73.22]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":78,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[146.059,-119.136],[166.185,-19.76],[189.431,-71.509]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":80,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[145.378,-117.82],[162.841,-18.27],[191.093,-69.782]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":82,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[144.57,-116.51],[159.354,-16.812],[192.588,-68.04]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":84,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[143.635,-115.209],[155.727,-15.387],[193.913,-66.286]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":86,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[142.574,-113.917],[151.964,-13.996],[195.067,-64.52]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[141.389,-112.635],[148.067,-12.64],[196.049,-62.744]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[140.08,-111.365],[144.041,-11.32],[196.859,-60.96]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":92,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[138.648,-110.107],[139.889,-10.039],[197.496,-59.169]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[137.095,-108.863],[135.614,-8.796],[197.958,-57.373]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":96,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[135.423,-107.634],[131.221,-7.593],[198.247,-55.573]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":98,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[133.631,-106.421],[126.713,-6.431],[198.36,-53.772]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":100,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[131.723,-105.225],[122.094,-5.312],[198.299,-51.971]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":102,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[129.7,-104.047],[117.369,-4.235],[198.064,-50.17]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":104,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[127.564,-102.888],[112.542,-3.202],[197.654,-48.373]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":106,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[125.316,-101.75],[107.617,-2.215],[197.07,-46.581]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":108,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[122.959,-100.633],[102.598,-1.273],[196.312,-44.794]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":110,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[120.494,-99.538],[97.49,-0.378],[195.382,-43.016]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":112,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[117.925,-98.466],[92.298,0.469],[194.279,-41.246]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":114,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[115.252,-97.418],[87.026,1.269],[193.006,-39.488]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":116,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[112.48,-96.396],[81.679,2.019],[191.563,-37.742]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":118,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[109.609,-95.399],[76.261,2.72],[189.951,-36.011]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":120,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[106.643,-94.43],[70.778,3.37],[188.171,-34.295]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":122,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[103.585,-93.488],[65.234,3.97],[186.227,-32.596]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":124,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[100.436,-92.575],[59.635,4.518],[184.118,-30.916]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":126,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[97.201,-91.691],[53.985,5.014],[181.848,-29.256]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":128,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[93.881,-90.838],[48.289,5.458],[179.417,-27.618]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":130,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[90.48,-90.015],[42.553,5.849],[176.829,-26.002]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":132,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[87,-89.224],[36.781,6.187],[174.086,-24.412]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":134,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[83.446,-88.466],[30.98,6.472],[171.189,-22.847]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":136,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[79.82,-87.741],[25.153,6.703],[168.142,-21.31]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":138,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[76.125,-87.049],[19.306,6.881],[164.948,-19.802]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":140,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[72.364,-86.392],[13.445,7.004],[161.608,-18.324]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":142,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[68.542,-85.77],[7.575,7.073],[158.127,-16.877]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":144,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[64.661,-85.184],[1.7,7.089],[154.507,-15.463]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":146,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[60.725,-84.633],[-4.173,7.049],[150.752,-14.083]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":148,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[56.737,-84.119],[-10.04,6.956],[146.864,-12.738]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":150,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[52.701,-83.642],[-15.895,6.809],[142.848,-11.43]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":152,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[48.621,-83.202],[-21.734,6.608],[138.707,-10.159]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":154,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[44.5,-82.801],[-27.55,6.353],[134.445,-8.927]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":156,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[40.342,-82.437],[-33.339,6.044],[130.065,-7.735]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":158,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[36.15,-82.112],[-39.095,5.683],[125.571,-6.584]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":160,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[31.929,-81.826],[-44.814,5.268],[120.968,-5.474]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":162,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[27.682,-81.579],[-50.49,4.801],[116.259,-4.408]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":164,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[23.413,-81.371],[-56.118,4.282],[111.449,-3.386]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":166,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[19.125,-81.202],[-61.694,3.711],[106.542,-2.408]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":168,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[14.823,-81.073],[-67.211,3.089],[101.542,-1.476]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":170,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[10.511,-80.984],[-72.666,2.416],[96.455,-0.591]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":172,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[6.192,-80.935],[-78.053,1.693],[91.284,0.247]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":174,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[1.87,-80.925],[-83.368,0.921],[86.033,1.037]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":176,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-2.451,-80.956],[-88.605,0.1],[80.709,1.778]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":178,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-6.767,-81.026],[-93.761,-0.768],[75.315,2.47]],"c":true}]},{"t":179,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-8.922,-81.076],[-96.306,-1.22],[72.594,2.797]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":60,"s":[0.245444044471,0.421792507172,0.745098054409,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":80,"s":[0.349019616842,0.662745118141,0.992156922817,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":109,"s":[0.482352972031,0.780392229557,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":136,"s":[0.423529446125,0.741176486015,0.980392217636,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":174,"s":[0.317647069693,0.68235296011,0.956862807274,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":199,"s":[0.77254909277,0.917647123337,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":232,"s":[0.478431403637,0.819607913494,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":266,"s":[0.29411765933,0.596078455448,0.858823597431,1]},{"t":288,"s":[0.205613210797,0.384617567062,0.749019622803,1]}]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"st","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":60,"s":[0.245444044471,0.421792507172,0.745098054409,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":80,"s":[0.349019616842,0.662745118141,0.992156922817,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":109,"s":[0.482352972031,0.780392229557,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":136,"s":[0.423529446125,0.741176486015,0.980392217636,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":174,"s":[0.317647069693,0.68235296011,0.956862807274,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":199,"s":[0.77254909277,0.917647123337,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":232,"s":[0.478431403637,0.819607913494,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":266,"s":[0.29411765933,0.596078455448,0.858823597431,1]},{"t":288,"s":[0.205613210797,0.384617567062,0.749019622803,1]}]},"o":{"a":0,"k":100},"w":{"a":0,"k":2},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":60,"op":180,"st":0,"bm":0},{"ddd":0,"ind":35,"ty":4,"sr":1,"ks":{"p":{"a":0,"k":[256,256,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[147.151,-131.259],[188.706,-33.984],[167.805,-86.483]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[147.645,-129.927],[186.731,-32.28],[170.929,-84.948]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[148.009,-128.591],[184.592,-30.595],[173.902,-83.386]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[148.244,-127.253],[182.29,-28.931],[176.723,-81.797]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[148.349,-125.913],[179.828,-27.289],[179.389,-80.182]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[148.324,-124.572],[177.208,-25.67],[181.897,-78.544]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[148.169,-123.233],[174.432,-24.076],[184.245,-76.883]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[147.885,-121.895],[171.503,-22.509],[186.431,-75.201]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[147.47,-120.561],[168.423,-20.969],[188.453,-73.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[146.927,-119.231],[165.195,-19.458],[190.309,-71.781]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[146.255,-117.907],[161.822,-17.978],[191.997,-70.046]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[145.455,-116.589],[158.307,-16.529],[193.517,-68.296]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[144.527,-115.28],[154.654,-15.114],[194.866,-66.532]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[143.473,-113.979],[150.864,-13.732],[196.044,-64.757]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[142.293,-112.689],[146.943,-12.387],[197.049,-62.972]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[140.989,-111.41],[142.893,-11.078],[197.881,-61.179]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[139.561,-110.144],[138.717,-9.807],[198.538,-59.378]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":34,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[138.011,-108.892],[134.421,-8.575],[199.02,-57.573]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":36,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[136.341,-107.654],[130.007,-7.383],[199.328,-55.764]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[134.551,-106.433],[125.479,-6.233],[199.459,-53.952]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[132.644,-105.228],[120.842,-5.124],[199.415,-52.141]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":42,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[130.621,-104.042],[116.099,-4.06],[199.196,-50.33]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":44,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[128.483,-102.875],[111.255,-3.039],[198.801,-48.522]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":46,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[126.234,-101.728],[106.315,-2.063],[198.231,-46.719]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":48,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[123.874,-100.602],[101.282,-1.133],[197.486,-44.922]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[121.406,-99.499],[96.161,-0.251],[196.567,-43.132]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":52,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[118.832,-98.419],[90.957,0.585],[195.476,-41.352]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":54,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[116.155,-97.363],[85.674,1.371],[194.212,-39.583]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":56,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[113.377,-96.332],[80.318,2.109],[192.777,-37.826]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":58,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[110.5,-95.327],[74.892,2.797],[191.173,-36.083]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":60,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[107.526,-94.349],[69.402,3.435],[189.4,-34.356]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":62,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[104.46,-93.4],[63.852,4.022],[187.461,-32.646]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":64,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[101.302,-92.478],[58.249,4.557],[185.357,-30.954]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":66,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[98.057,-91.587],[52.595,5.041],[183.089,-29.283]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":68,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[94.726,-90.725],[46.898,5.472],[180.661,-27.633]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":70,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[91.314,-89.895],[41.161,5.85],[178.074,-26.006]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":72,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[87.823,-89.097],[35.39,6.176],[175.33,-24.404]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":74,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[84.256,-88.331],[29.59,6.448],[172.432,-22.828]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":76,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[80.616,-87.598],[23.766,6.666],[169.383,-21.28]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":78,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[76.907,-86.899],[17.924,6.831],[166.185,-19.76]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":80,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[73.131,-86.235],[12.068,6.941],[162.841,-18.27]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":82,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[69.293,-85.606],[6.205,6.998],[159.354,-16.812]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":84,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[65.396,-85.013],[0.338,7],[155.727,-15.387]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":86,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[61.443,-84.455],[-5.526,6.949],[151.964,-13.996]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[57.438,-83.935],[-11.383,6.843],[148.067,-12.64]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[53.384,-83.451],[-17.226,6.684],[144.041,-11.32]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":92,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[49.285,-83.006],[-23.052,6.47],[139.889,-10.039]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[45.144,-82.598],[-28.854,6.203],[135.614,-8.796]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":96,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[40.966,-82.229],[-34.628,5.883],[131.221,-7.593]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":98,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[36.754,-81.898],[-40.368,5.509],[126.713,-6.431]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":100,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[32.512,-81.606],[-46.07,5.083],[122.094,-5.312]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":102,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[28.243,-81.354],[-51.727,4.604],[117.369,-4.235]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":104,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[23.952,-81.141],[-57.336,4.074],[112.542,-3.202]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":106,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[19.642,-80.967],[-62.891,3.492],[107.617,-2.215]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":108,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[15.317,-80.834],[-68.386,2.858],[102.598,-1.273]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":110,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[10.981,-80.74],[-73.818,2.175],[97.49,-0.378]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":112,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[6.638,-80.686],[-79.182,1.442],[92.298,0.469]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":114,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.292,-80.673],[-84.471,0.659],[87.026,1.269]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":116,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-2.053,-80.699],[-89.683,-0.171],[81.679,2.019]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":118,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-6.395,-80.766],[-94.812,-1.05],[76.261,2.72]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":120,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-10.727,-80.873],[-99.853,-1.975],[70.778,3.37]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":122,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-15.048,-81.019],[-104.802,-2.947],[65.234,3.97]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":124,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-19.352,-81.206],[-109.655,-3.963],[59.635,4.518]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":126,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-23.636,-81.431],[-114.407,-5.024],[53.985,5.014]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":128,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-27.897,-81.697],[-119.054,-6.128],[48.289,5.458]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":130,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-32.129,-82.001],[-123.592,-7.275],[42.553,5.849]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":132,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-36.331,-82.345],[-128.017,-8.463],[36.781,6.187]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":134,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-40.497,-82.727],[-132.325,-9.691],[30.98,6.472]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":136,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-44.624,-83.147],[-136.512,-10.959],[25.153,6.703]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":138,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-48.709,-83.605],[-140.573,-12.264],[19.306,6.881]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":140,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-52.748,-84.1],[-144.507,-13.606],[13.445,7.004]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":142,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-56.736,-84.633],[-148.309,-14.984],[7.575,7.073]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":144,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-60.672,-85.202],[-151.975,-16.397],[1.7,7.089]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":146,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-64.55,-85.807],[-155.503,-17.842],[-4.173,7.049]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":148,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-68.368,-86.448],[-158.889,-19.32],[-10.04,6.956]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":150,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-72.122,-87.123],[-162.13,-20.828],[-15.895,6.809]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":152,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-75.809,-87.833],[-165.224,-22.365],[-21.734,6.608]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":154,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-79.426,-88.577],[-168.167,-23.93],[-27.55,6.353]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":156,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-82.968,-89.353],[-170.958,-25.522],[-33.339,6.044]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":158,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-86.434,-90.162],[-173.592,-27.138],[-39.095,5.683]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":160,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-89.82,-91.002],[-176.069,-28.778],[-44.814,5.268]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":162,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-93.123,-91.874],[-178.386,-30.44],[-50.49,4.801]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":164,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-96.34,-92.775],[-180.54,-32.123],[-56.118,4.282]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":166,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-99.469,-93.706],[-182.531,-33.825],[-61.694,3.711]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":168,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-102.505,-94.665],[-184.355,-35.545],[-67.211,3.089]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":170,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-105.447,-95.651],[-186.012,-37.28],[-72.666,2.416]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":172,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-108.293,-96.665],[-187.5,-39.03],[-78.053,1.693]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":174,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-111.038,-97.704],[-188.818,-40.793],[-83.368,0.921]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":176,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-113.682,-98.768],[-189.964,-42.568],[-88.605,0.1]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":178,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-116.222,-99.856],[-190.937,-44.352],[-93.761,-0.768]],"c":true}]},{"t":179,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-117.452,-100.408],[-191.359,-45.247],[-96.306,-1.22]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0.245444044471,0.421792507172,0.745098054409,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":20,"s":[0.349019616842,0.662745118141,0.992156922817,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":49,"s":[0.482352972031,0.780392229557,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":76,"s":[0.423529446125,0.741176486015,0.980392217636,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":114,"s":[0.317647069693,0.68235296011,0.956862807274,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":139,"s":[0.77254909277,0.917647123337,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":172,"s":[0.478431403637,0.819607913494,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":206,"s":[0.29411765933,0.596078455448,0.858823597431,1]},{"t":228,"s":[0.205613210797,0.384617567062,0.749019622803,1]}]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"st","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0.245444044471,0.421792507172,0.745098054409,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":20,"s":[0.349019616842,0.662745118141,0.992156922817,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":49,"s":[0.482352972031,0.780392229557,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":76,"s":[0.423529446125,0.741176486015,0.980392217636,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":114,"s":[0.317647069693,0.68235296011,0.956862807274,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":139,"s":[0.77254909277,0.917647123337,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":172,"s":[0.478431403637,0.819607913494,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":206,"s":[0.29411765933,0.596078455448,0.858823597431,1]},{"t":228,"s":[0.205613210797,0.384617567062,0.749019622803,1]}]},"o":{"a":0,"k":100},"w":{"a":0,"k":2},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":36,"ty":4,"sr":1,"ks":{"p":{"a":0,"k":[256,256,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":85,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[153.875,-14.688],[194.5,-65.375]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":87,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[150.063,-13.313],[195.563,-63.625]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":89,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[146.063,-12],[196.5,-61.875]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":91,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[142,-10.688],[197.188,-60.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":93,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[137.75,-9.438],[197.75,-58.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":95,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[133.438,-8.188],[198.125,-56.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":97,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[129,-7],[198.313,-54.688]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":99,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[124.438,-5.875],[198.375,-52.875]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":101,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[119.75,-4.75],[198.188,-51.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":103,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[114.938,-3.688],[197.875,-49.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":105,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[110.063,-2.688],[197.375,-47.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":107,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[105.125,-1.75],[196.688,-45.688]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":109,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[100.063,-0.813],[195.875,-43.875]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":111,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[94.875,0.063],[194.875,-42.125]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":113,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[89.688,0.875],[193.688,-40.375]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":115,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[84.375,1.625],[192.313,-38.625]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":117,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[79,2.375],[190.75,-36.875]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":119,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[73.5,3.063],[189.063,-35.125]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":121,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[68,3.688],[187.25,-33.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":123,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[62.438,4.25],[185.188,-31.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":125,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[56.813,4.75],[183,-30.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":127,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[51.125,5.25],[180.625,-28.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":129,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[45.438,5.688],[178.125,-26.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":131,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[39.688,6],[175.5,-25.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":133,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[33.875,6.313],[172.688,-23.625]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":135,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[28.063,6.625],[169.688,-22.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":137,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[22.25,6.813],[166.563,-20.563]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":139,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[16.375,6.938],[163.313,-19.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":141,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[10.5,7.063],[159.875,-17.625]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":143,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[4.625,7.063],[156.313,-16.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":145,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-1.25,7.063],[152.625,-14.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":147,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-7.125,7],[148.813,-13.375]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":149,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-13,6.875],[144.875,-12.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":151,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-18.813,6.688],[140.813,-10.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":153,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-24.625,6.5],[136.563,-9.563]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":155,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-30.438,6.188],[132.25,-8.313]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":157,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-36.25,5.875],[127.813,-7.125]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":159,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-41.938,5.5],[123.313,-6]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":161,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-47.688,5.063],[118.625,-4.938]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":163,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-53.313,4.563],[113.875,-3.875]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":165,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-58.938,4],[109,-2.875]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":167,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-64.438,3.375],[104.063,-1.938]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":169,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-69.938,2.75],[99,-1]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":171,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-75.375,2.063],[93.875,-0.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":173,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-80.75,1.313],[88.688,0.625]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":175,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-86,0.5],[83.375,1.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":177,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-91.188,-0.313],[78,2.125]],"c":true}]},{"t":179,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-96.313,-1.25],[72.563,2.813]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":85,"s":[0.29411765933,0.596078455448,0.858823597431,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":119,"s":[0.196078449488,0.670588254929,0.996078491211,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":175,"s":[0.47058826685,0.850980460644,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":229,"s":[0.321568638086,0.77254909277,1,1]},{"t":265,"s":[0.29411765933,0.596078455448,0.858823597431,1]}]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"st","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":85,"s":[0.29411765933,0.596078455448,0.858823597431,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":119,"s":[0.196078449488,0.670588254929,0.996078491211,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":175,"s":[0.47058826685,0.850980460644,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":229,"s":[0.321568638086,0.77254909277,1,1]},{"t":265,"s":[0.29411765933,0.596078455448,0.858823597431,1]}]},"o":{"a":0,"k":100},"w":{"a":0,"k":2},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":85,"op":180,"st":0,"bm":0},{"ddd":0,"ind":37,"ty":4,"sr":1,"ks":{"p":{"a":0,"k":[256,256,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":144,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[154.5,-15.438],[194.5,-66.125]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":146,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[150.75,-14.063],[195.625,-64.375]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":148,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[146.875,-12.75],[196.625,-62.625]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":150,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[142.875,-11.438],[197.375,-60.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":152,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[138.688,-10.188],[198,-59]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":154,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[134.438,-8.938],[198.5,-57.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":156,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[130.063,-7.75],[198.75,-55.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":158,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[125.563,-6.563],[198.875,-53.625]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":160,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[120.938,-5.5],[198.75,-51.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":162,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[116.25,-4.438],[198.5,-50]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":164,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[111.438,-3.375],[198.063,-48.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":166,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[106.563,-2.438],[197.5,-46.375]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":168,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[101.563,-1.5],[196.688,-44.625]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":170,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[96.438,-0.563],[195.75,-42.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":172,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[91.313,0.25],[194.625,-41.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":174,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[86.063,1.063],[193.375,-39.313]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":176,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[80.688,1.75],[191.875,-37.563]],"c":true}]},{"t":178,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[75.313,2.5],[190.25,-35.813]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":144,"s":[0.29411765933,0.596078455448,0.858823597431,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":178,"s":[0.196078449488,0.670588254929,0.996078491211,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":234,"s":[0.47058826685,0.850980460644,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":288,"s":[0.321568638086,0.77254909277,1,1]},{"t":324,"s":[0.29411765933,0.596078455448,0.858823597431,1]}]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"st","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":144,"s":[0.29411765933,0.596078455448,0.858823597431,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":178,"s":[0.196078449488,0.670588254929,0.996078491211,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":234,"s":[0.47058826685,0.850980460644,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":288,"s":[0.321568638086,0.77254909277,1,1]},{"t":324,"s":[0.29411765933,0.596078455448,0.858823597431,1]}]},"o":{"a":0,"k":100},"w":{"a":0,"k":2},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":144,"op":180,"st":0,"bm":0},{"ddd":0,"ind":38,"ty":4,"sr":1,"ks":{"p":{"a":0,"k":[256,256,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-99,-2.188],[-191.563,-46.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-103.938,-3.188],[-192.125,-48.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-108.813,-4.188],[-192.625,-49.875]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-113.5,-5.25],[-192.875,-51.688]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-118.125,-6.313],[-192.938,-53.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-122.688,-7.5],[-192.875,-55.313]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-127.063,-8.625],[-192.625,-57.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-131.375,-9.875],[-192.188,-58.875]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-135.5,-11.125],[-191.563,-60.688]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-139.563,-12.438],[-190.75,-62.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-143.5,-13.75],[-189.813,-64.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-147.25,-15.125],[-188.688,-66.063]],"c":true}]},{"t":23,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-149.125,-15.813],[-188.063,-66.938]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-156,"s":[0.29411765933,0.596078455448,0.858823597431,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-122,"s":[0.196078449488,0.670588254929,0.996078491211,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-66,"s":[0.47058826685,0.850980460644,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-12,"s":[0.321568638086,0.77254909277,1,1]},{"t":24,"s":[0.29411765933,0.596078455448,0.858823597431,1]}]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"st","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-156,"s":[0.29411765933,0.596078455448,0.858823597431,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-122,"s":[0.196078449488,0.670588254929,0.996078491211,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-66,"s":[0.47058826685,0.850980460644,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-12,"s":[0.321568638086,0.77254909277,1,1]},{"t":24,"s":[0.29411765933,0.596078455448,0.858823597431,1]}]},"o":{"a":0,"k":100},"w":{"a":0,"k":2},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":24,"st":0,"bm":0},{"ddd":0,"ind":39,"ty":4,"sr":1,"ks":{"p":{"a":0,"k":[256,256,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-99,-2.188],[68.75,3.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-103.938,-3.188],[63.25,3.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-108.813,-4.188],[57.688,4.313]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-113.5,-5.25],[52,4.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-118.125,-6.313],[46.375,5.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-122.688,-7.5],[40.625,5.625]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-127.063,-8.625],[34.875,5.938]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-131.375,-9.875],[29.125,6.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-135.5,-11.125],[23.313,6.375]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-139.563,-12.438],[17.5,6.563]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-143.5,-13.75],[11.688,6.688]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-147.25,-15.125],[5.813,6.688]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-150.938,-16.5],[0,6.688]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-154.438,-17.938],[-5.813,6.688]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-157.813,-19.438],[-11.688,6.563]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-161.063,-20.938],[-17.5,6.375]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-164.125,-22.438],[-23.25,6.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":34,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-167.063,-24],[-29.063,5.938]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":36,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-169.875,-25.625],[-34.813,5.563]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-172.5,-27.188],[-40.5,5.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-174.938,-28.813],[-46.188,4.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":42,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-177.25,-30.5],[-51.813,4.313]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":44,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-179.438,-32.188],[-57.375,3.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":46,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-181.375,-33.875],[-62.938,3.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":48,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-183.25,-35.563],[-68.375,2.563]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-184.875,-37.313],[-73.75,1.875]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":52,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-186.375,-39],[-79.125,1.125]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":54,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-187.688,-40.75],[-84.375,0.375]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":56,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-188.813,-42.563],[-89.563,-0.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":58,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-189.813,-44.313],[-94.688,-1.375]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":60,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-190.625,-46.125],[-99.688,-2.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":62,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-191.25,-47.875],[-104.563,-3.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":64,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-191.688,-49.688],[-109.438,-4.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":66,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-192,-51.5],[-114.125,-5.313]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":68,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-192.125,-53.25],[-118.75,-6.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":70,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-192.063,-55.063],[-123.25,-7.563]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":72,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-191.813,-56.875],[-127.688,-8.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":74,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-191.375,-58.688],[-131.938,-9.938]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":76,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-190.813,-60.438],[-136.125,-11.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":78,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-190.063,-62.25],[-140.125,-12.563]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":80,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-189.125,-64],[-144.063,-13.875]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":82,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-188,-65.75],[-147.813,-15.25]],"c":true}]},{"t":83,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-187.375,-66.688],[-149.688,-15.938]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-96,"s":[0.29411765933,0.596078455448,0.858823597431,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-62,"s":[0.196078449488,0.670588254929,0.996078491211,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-6,"s":[0.47058826685,0.850980460644,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":48,"s":[0.321568638086,0.77254909277,1,1]},{"t":84,"s":[0.29411765933,0.596078455448,0.858823597431,1]}]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"st","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-96,"s":[0.29411765933,0.596078455448,0.858823597431,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-62,"s":[0.196078449488,0.670588254929,0.996078491211,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-6,"s":[0.47058826685,0.850980460644,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":48,"s":[0.321568638086,0.77254909277,1,1]},{"t":84,"s":[0.29411765933,0.596078455448,0.858823597431,1]}]},"o":{"a":0,"k":100},"w":{"a":0,"k":2},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":84,"st":0,"bm":0},{"ddd":0,"ind":40,"ty":4,"sr":1,"ks":{"p":{"a":0,"k":[256,256,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[68.75,3.188],[188.688,-34]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[63.25,3.813],[186.75,-32.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[57.688,4.313],[184.563,-30.625]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[52,4.813],[182.313,-28.938]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[46.375,5.25],[179.813,-27.313]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[40.625,5.625],[177.188,-25.688]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[34.875,5.938],[174.438,-24.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[29.125,6.188],[171.5,-22.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[23.313,6.375],[168.438,-21]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[17.5,6.563],[165.188,-19.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[11.688,6.688],[161.813,-18]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[5.813,6.688],[158.313,-16.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[0,6.688],[154.625,-15.125]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-5.813,6.688],[150.875,-13.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-11.688,6.563],[146.938,-12.375]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-17.5,6.375],[142.875,-11.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-23.25,6.188],[138.688,-9.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":34,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-29.063,5.938],[134.438,-8.563]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":36,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-34.813,5.563],[130,-7.375]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-40.5,5.188],[125.5,-6.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-46.188,4.813],[120.813,-5.125]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":42,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-51.813,4.313],[116.125,-4.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":44,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-57.375,3.75],[111.25,-3.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":46,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-62.938,3.188],[106.313,-2.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":48,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-68.375,2.563],[101.313,-1.125]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-73.75,1.875],[96.188,-0.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":52,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-79.125,1.125],[90.938,0.563]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":54,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-84.375,0.375],[85.688,1.375]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":56,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-89.563,-0.5],[80.313,2.125]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":58,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-94.688,-1.375],[74.875,2.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":60,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-99.688,-2.25],[69.375,3.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":62,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-104.563,-3.25],[63.875,4]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":64,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-109.438,-4.25],[58.25,4.563]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":66,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-114.125,-5.313],[52.625,5.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":68,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-118.75,-6.438],[46.875,5.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":70,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-123.25,-7.563],[41.188,5.875]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":72,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-127.688,-8.75],[35.375,6.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":74,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-131.938,-9.938],[29.563,6.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":76,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-136.125,-11.25],[23.75,6.688]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":78,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-140.125,-12.563],[17.938,6.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":80,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-144.063,-13.875],[12.063,6.938]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":82,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-147.813,-15.25],[6.188,7]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":84,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-151.438,-16.625],[0.313,7]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":86,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-155,-18.125],[-5.5,6.938]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-158.313,-19.563],[-11.375,6.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-161.563,-21.063],[-17.25,6.688]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":92,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-164.625,-22.625],[-23.063,6.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-167.563,-24.188],[-28.875,6.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":96,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-170.313,-25.75],[-34.625,5.875]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":98,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-172.938,-27.375],[-40.375,5.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":100,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-175.375,-29],[-46.063,5.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":102,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-177.688,-30.625],[-51.75,4.625]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":104,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-179.813,-32.313],[-57.313,4.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":106,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-181.75,-34],[-62.875,3.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":108,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-183.563,-35.75],[-68.375,2.875]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":110,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-185.25,-37.438],[-73.813,2.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":112,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-186.688,-39.188],[-79.188,1.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":114,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-188,-40.938],[-84.5,0.688]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":116,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-189.125,-42.75],[-89.688,-0.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":118,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-190.063,-44.5],[-94.813,-1.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":120,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-190.875,-46.313],[-99.875,-2]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":122,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-191.5,-48.063],[-104.813,-2.938]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":124,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-191.938,-49.875],[-109.625,-3.938]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":126,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-192.188,-51.688],[-114.438,-5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":128,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-192.25,-53.5],[-119.063,-6.125]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":130,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-192.188,-55.25],[-123.563,-7.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":132,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-191.938,-57.063],[-128,-8.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":134,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-191.5,-58.875],[-132.313,-9.688]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":136,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-190.875,-60.688],[-136.5,-10.938]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":138,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-190.125,-62.438],[-140.563,-12.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":140,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-189.188,-64.25],[-144.5,-13.625]],"c":true}]},{"t":142,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-188.063,-66],[-148.313,-15]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-37,"s":[0.29411765933,0.596078455448,0.858823597431,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-3,"s":[0.196078449488,0.670588254929,0.996078491211,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":53,"s":[0.47058826685,0.850980460644,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":107,"s":[0.321568638086,0.77254909277,1,1]},{"t":143,"s":[0.29411765933,0.596078455448,0.858823597431,1]}]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"st","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-37,"s":[0.29411765933,0.596078455448,0.858823597431,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-3,"s":[0.196078449488,0.670588254929,0.996078491211,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":53,"s":[0.47058826685,0.850980460644,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":107,"s":[0.321568638086,0.77254909277,1,1]},{"t":143,"s":[0.29411765933,0.596078455448,0.858823597431,1]}]},"o":{"a":0,"k":100},"w":{"a":0,"k":2},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":41,"ty":4,"sr":1,"ks":{"p":{"a":0,"k":[256,256,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[154.625,-15.125],[194.875,-66.563]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[150.875,-13.75],[196.063,-64.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[146.938,-12.375],[197.063,-63]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[142.875,-11.063],[197.875,-61.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[138.688,-9.813],[198.563,-59.375]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":34,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[134.438,-8.563],[199,-57.563]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":36,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[130,-7.375],[199.313,-55.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[125.5,-6.25],[199.438,-53.938]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[120.813,-5.125],[199.438,-52.125]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":42,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[116.125,-4.063],[199.188,-50.313]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":44,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[111.25,-3.063],[198.813,-48.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":46,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[106.313,-2.063],[198.25,-46.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":48,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[101.313,-1.125],[197.5,-44.938]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[96.188,-0.25],[196.563,-43.125]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":52,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[90.938,0.563],[195.5,-41.375]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":54,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[85.688,1.375],[194.188,-39.563]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":56,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[80.313,2.125],[192.75,-37.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":58,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[74.875,2.813],[191.188,-36.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":60,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[69.375,3.438],[189.375,-34.375]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":62,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[63.875,4],[187.438,-32.625]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":64,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[58.25,4.563],[185.375,-30.938]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":66,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[52.625,5.063],[183.063,-29.313]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":68,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[46.875,5.5],[180.688,-27.625]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":70,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[41.188,5.875],[178.063,-26]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":72,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[35.375,6.188],[175.313,-24.375]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":74,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[29.563,6.438],[172.438,-22.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":76,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[23.75,6.688],[169.375,-21.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":78,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[17.938,6.813],[166.188,-19.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":80,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[12.063,6.938],[162.813,-18.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":82,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[6.188,7],[159.375,-16.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":84,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[0.313,7],[155.75,-15.375]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":86,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-5.5,6.938],[151.938,-14]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-11.375,6.813],[148.063,-12.625]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-17.25,6.688],[144.063,-11.313]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":92,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-23.063,6.5],[139.875,-10.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-28.875,6.188],[135.625,-8.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":96,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-34.625,5.875],[131.25,-7.563]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":98,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-40.375,5.5],[126.688,-6.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":100,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-46.063,5.063],[122.125,-5.313]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":102,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-51.75,4.625],[117.375,-4.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":104,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-57.313,4.063],[112.563,-3.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":106,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-62.875,3.5],[107.625,-2.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":108,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-68.375,2.875],[102.625,-1.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":110,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-73.813,2.188],[97.5,-0.375]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":112,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-79.188,1.438],[92.313,0.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":114,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-84.5,0.688],[87,1.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":116,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-89.688,-0.188],[81.688,2]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":118,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-94.813,-1.063],[76.25,2.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":120,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-99.875,-2],[70.75,3.375]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":122,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-104.813,-2.938],[65.25,4]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":124,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-109.625,-3.938],[59.625,4.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":126,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-114.438,-5],[54,5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":128,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-119.063,-6.125],[48.313,5.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":130,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-123.563,-7.25],[42.563,5.875]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":132,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-128,-8.438],[36.813,6.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":134,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-132.313,-9.688],[31,6.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":136,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-136.5,-10.938],[25.125,6.688]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":138,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-140.563,-12.25],[19.313,6.875]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":140,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-144.5,-13.625],[13.438,7]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":142,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-148.313,-15],[7.563,7.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":144,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-152,-16.375],[1.688,7.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":146,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-155.5,-17.813],[-4.188,7.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":148,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-158.875,-19.313],[-10.063,6.938]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":150,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-162.125,-20.813],[-15.875,6.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":152,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-165.25,-22.375],[-21.75,6.625]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":154,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-168.188,-23.938],[-27.563,6.375]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":156,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-170.938,-25.5],[-33.313,6.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":158,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-173.563,-27.125],[-39.125,5.688]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":160,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-176.063,-28.75],[-44.813,5.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":162,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-178.375,-30.438],[-50.5,4.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":164,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-180.563,-32.125],[-56.125,4.313]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":166,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-182.5,-33.813],[-61.688,3.688]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":168,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-184.375,-35.563],[-67.188,3.063]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":170,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-186,-37.25],[-72.688,2.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":172,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-187.5,-39],[-78.063,1.688]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":174,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-188.813,-40.813],[-83.375,0.938]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":176,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-189.938,-42.563],[-88.625,0.125]],"c":true}]},{"t":178,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-190.938,-44.375],[-93.75,-0.75]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":24,"s":[0.29411765933,0.596078455448,0.858823597431,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":58,"s":[0.196078449488,0.670588254929,0.996078491211,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":114,"s":[0.47058826685,0.850980460644,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":168,"s":[0.321568638086,0.77254909277,1,1]},{"t":204,"s":[0.29411765933,0.596078455448,0.858823597431,1]}]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"st","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":24,"s":[0.29411765933,0.596078455448,0.858823597431,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":58,"s":[0.196078449488,0.670588254929,0.996078491211,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":114,"s":[0.47058826685,0.850980460644,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":168,"s":[0.321568638086,0.77254909277,1,1]},{"t":204,"s":[0.29411765933,0.596078455448,0.858823597431,1]}]},"o":{"a":0,"k":100},"w":{"a":0,"k":2},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":24,"op":180,"st":0,"bm":0},{"ddd":0,"ind":42,"ty":3,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":0,"k":[259,130.5,0]},"a":{"a":0,"k":[50,50,0]},"s":{"a":0,"k":[147.548,45.504,100]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":43,"ty":3,"parent":42,"sr":1,"ks":{"o":{"a":0,"k":0},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[-71.4]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":180,"s":[82.8]},{"t":360,"s":[211.4]}]},"p":{"a":0,"k":[50,50,0]},"a":{"a":0,"k":[50,50,0]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":44,"ty":3,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":0,"k":[259,202.5,0]},"a":{"a":0,"k":[50,50,0]},"s":{"a":0,"k":[199.429,61.504,100]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":45,"ty":3,"parent":44,"sr":1,"ks":{"o":{"a":0,"k":0},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[-97]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":180,"s":[57.2]},{"t":360,"s":[211.4]}]},"p":{"a":0,"k":[50,50,0]},"a":{"a":0,"k":[50,50,0]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0}]} \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/wallet_egg.tgs b/TMessagesProj/src/main/res/raw/wallet_egg.tgs deleted file mode 100644 index 979b9c76b..000000000 --- a/TMessagesProj/src/main/res/raw/wallet_egg.tgs +++ /dev/null @@ -1 +0,0 @@ -{"tgs":1,"v":"5.5.2","fr":60,"ip":0,"op":180,"w":512,"h":512,"nm":"_2_chik_noloop","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"egg_b_tr 6","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[-18.479,-43.267,0]},"a":{"a":0,"k":[-18.479,-43.267,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-36.71,-90.037],[-12.471,-111.182],[-17.842,-139.982],[-7.757,-147.278]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.717999985639,0.705999995213,0.620000023935,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[18.23,46.77]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":47,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":79,"s":[0]},{"t":81,"s":[0]}]},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":47,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":54,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":79,"s":[100]},{"t":81,"s":[28]}]},"o":{"a":0,"k":0},"m":1,"nm":"Trim Paths 1","hd":false}],"ip":0,"op":81,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"egg_b_tr 5","parent":51,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":-0.355},"p":{"a":0,"k":[126.637,270.38,0]},"a":{"a":0,"k":[-18.479,-43.267,0]},"s":{"a":0,"k":[80,80,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[8.08,-7.048],[0,0],[0,0],[0,0]],"v":[[-42.089,-89.053],[-15.239,-111.549],[-17.842,-139.982],[-7.757,-147.278]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.717999985639,0.705999995213,0.620000023935,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[18.23,46.77]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":47,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":79,"s":[0]},{"t":81,"s":[0]}]},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":47,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":54,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":79,"s":[100]},{"t":81,"s":[28]}]},"o":{"a":0,"k":0},"m":1,"nm":"Trim Paths 1","hd":false}],"ip":0,"op":81,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":3,"nm":"grandnull","sr":1,"ks":{"o":{"a":0,"k":0},"r":{"a":0,"k":0},"p":{"a":0,"k":[254.153,386.731,0]},"a":{"a":0,"k":[60,60,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"ip":0,"op":212,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":3,"nm":"NULL CONTROL","parent":3,"sr":1,"ks":{"o":{"a":0,"k":0},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[1],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.535],"y":[1]},"o":{"x":[0.536],"y":[0]},"t":11.211,"s":[-9.809]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.473],"y":[0]},"t":19.061,"s":[12.154]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":26.666,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[1],"y":[0]},"t":33.334,"s":[0]},{"i":{"x":[0.535],"y":[1]},"o":{"x":[0.536],"y":[0]},"t":44.547,"s":[-9.809]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.473],"y":[0]},"t":52.395,"s":[12.154]},{"t":60,"s":[0]}]},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[57.77,176.006,0],"to":[0,0,0],"ti":[0,0,0]},{"t":60,"s":[57.77,176.006,0]}]},"a":{"a":0,"k":[60,60,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"ip":0,"op":212,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"egg_t_6","parent":59,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[181.76,160.78,0]},"a":{"a":0,"k":[201.509,179.53,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-0.007,-0.789],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.002,-127.966]],"v":[[-181.485,100.295],[-160.692,120.39],[-148.352,105.01],[-136.002,131.24],[-121.102,149.24],[-102.062,124.76],[-94.702,131.24],[-69.362,110.16],[-52.692,106.56],[-43.142,124.76],[-43.142,144.61],[-25.432,133.81],[-13.092,145.13],[-8.972,159.53],[24.967,117.82],[45.487,129.91],[61.478,92.14],[95.938,103.98],[105.198,128.67],[126.277,145.64],[138.038,114.78],[148.908,122.59],[154.568,141.53],[181.509,97.928]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.717999985639,0.705999995213,0.620000023935,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[201.509,179.53]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":14,"s":[50]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":20,"s":[29]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":47,"s":[29]},{"t":52,"s":[0]}]},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":14,"s":[50]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":20,"s":[66]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":47,"s":[66]},{"t":52,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"nm":"Trim Paths 1","hd":false}],"ip":0,"op":70,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"egg_t_80","parent":51,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[181.759,159.78,0]},"a":{"a":0,"k":[201.509,179.53,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":70,"s":[{"i":[[99.14,0],[0,-127.967],[-0.007,-0.789],[0,0],[0,0],[0,0]],"o":[[-99.14,0],[0,0.793],[0,0],[0,0],[0,0],[0,0]],"v":[[0.25,-155.28],[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":83,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-43.892,132.01],[-42.892,148.86],[-25.182,138.06],[-12.842,149.38],[-8.722,163.78],[17.278,131.827]],"c":false}]},{"t":160,"s":[{"i":[[99.14,0],[0,-127.967],[-0.007,-0.789],[0,0],[0,0],[0,0]],"o":[[-99.14,0],[0,0.793],[0,0],[0,0],[0,0],[0,0]],"v":[[0.25,-155.28],[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.717999985639,0.705999995213,0.620000023935,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[201.509,179.53]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":83,"op":84,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"egg_t_90","parent":51,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[181.759,159.78,0]},"a":{"a":0,"k":[201.509,179.53,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":70,"s":[{"i":[[0,-127.967],[-0.007,-0.789],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":82,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[100.452,120.267],[105.448,132.92],[126.527,149.89],[135.788,123.53],[149.157,126.84],[154.818,145.78],[166.399,127.038]],"c":false}]},{"t":160,"s":[{"i":[[0,-127.967],[-0.007,-0.789],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.717999985639,0.705999995213,0.620000023935,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[201.509,179.53]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":82,"op":83,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"egg_t_89","parent":51,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[181.759,159.78,0]},"a":{"a":0,"k":[201.509,179.53,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":70,"s":[{"i":[[99.14,0],[0,-127.967],[-0.007,-0.789],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[-99.14,0],[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[0.25,-155.28],[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01],[-94.452,135.49]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":82,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-3.577,9.555]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-44.168,-3.001]],"v":[[-48.947,117.471],[-42.892,129.01],[-42.892,148.86],[-25.182,138.06],[-12.842,149.38],[-8.722,163.78],[25.218,122.07],[45.737,134.16],[50.244,117.222]],"c":false}]},{"t":160,"s":[{"i":[[99.14,0],[0,-127.967],[-0.007,-0.789],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[-99.14,0],[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[0.25,-155.28],[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01],[-94.452,135.49]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.717999985639,0.705999995213,0.620000023935,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[201.509,179.53]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":82,"op":83,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"egg_t_79","parent":51,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[181.759,159.78,0]},"a":{"a":0,"k":[201.509,179.53,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":70,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[-0.002,-127.966]],"v":[[105.448,132.92],[126.527,149.89],[138.288,119.03],[149.158,126.84],[154.818,145.78],[181.759,102.178]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":82,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-142.462,121.239],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01],[-94.452,135.49],[-72.782,117.29]],"c":false}]},{"t":160,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[-0.002,-127.966]],"v":[[105.448,132.92],[126.527,149.89],[138.288,119.03],[149.158,126.84],[154.818,145.78],[181.759,102.178]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.717999985639,0.705999995213,0.620000023935,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[201.509,179.53]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":82,"op":83,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"egg_t_78","parent":51,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[181.759,159.78,0]},"a":{"a":0,"k":[201.509,179.53,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":70,"s":[{"i":[[99.14,0],[0,-127.967],[-0.007,-0.789],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0]],"o":[[-99.14,0],[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[0.25,-155.28],[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01],[-98.274,132.126],[-94.453,135.49],[-69.112,114.41],[-52.442,110.81],[-42.892,129.01],[-42.892,148.86],[-25.182,138.06],[-12.842,149.38],[-8.723,163.78],[25.217,122.07],[45.737,134.16],[61.729,96.39],[96.188,108.23],[105.448,132.92],[126.527,149.89],[138.288,119.03]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":81,"s":[{"i":[[-0.004,-0.401],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-180.235,105.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01],[-94.452,135.49],[-69.113,114.41],[-52.442,110.81],[-42.892,129.01],[-42.892,148.86],[-25.182,138.06],[-12.842,149.38],[-8.722,163.78],[25.217,122.07],[45.737,134.16],[61.729,101.39],[96.188,108.23],[105.448,132.92],[126.527,149.89],[138.288,119.03],[149.158,126.84],[154.818,145.78],[177.243,109.487]],"c":false}]},{"t":160,"s":[{"i":[[99.14,0],[0,-127.967],[-0.007,-0.789],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0]],"o":[[-99.14,0],[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[0.25,-155.28],[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01],[-98.274,132.126],[-94.453,135.49],[-69.112,114.41],[-52.442,110.81],[-42.892,129.01],[-42.892,148.86],[-25.182,138.06],[-12.842,149.38],[-8.723,163.78],[25.217,122.07],[45.737,134.16],[61.729,96.39],[96.188,108.23],[105.448,132.92],[126.527,149.89],[138.288,119.03]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.717999985639,0.705999995213,0.620000023935,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[201.509,179.53]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":81,"op":82,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"egg_t_77","parent":51,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[181.759,159.78,0]},"a":{"a":0,"k":[201.509,179.53,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":70,"s":[{"i":[[10.622,-118.401],[0,-9.147],[-0.007,-0.789],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.582,7.682]],"o":[[-0.818,9.115],[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,-7.699],[-9.094,-119.994]],"v":[[-180.021,74.765],[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01],[-94.452,135.49],[-69.112,114.41],[-52.442,110.81],[-42.892,129.01],[-42.892,148.86],[-25.182,138.06],[-12.842,149.38],[-8.722,163.78],[25.217,122.07],[45.737,134.16],[61.728,96.39],[96.188,108.23],[105.448,132.92],[126.527,149.89],[138.288,119.03],[149.158,126.84],[154.818,145.78],[181.759,102.178],[180.879,79.092]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":80,"s":[{"i":[[123.336,-12.013],[0,-8.21],[-0.007,-0.789],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.47,6.899]],"o":[[-0.661,8.188],[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,-6.911],[-154.472,-18.4]],"v":[[-180.26,77.567],[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01],[-94.452,135.49],[-69.112,114.41],[-52.442,110.81],[-42.892,129.01],[-42.892,148.86],[-25.182,138.06],[-12.842,149.38],[-8.722,163.78],[25.217,122.07],[45.737,134.16],[61.728,96.39],[96.188,108.23],[105.448,132.92],[126.527,149.89],[138.288,119.03],[149.158,126.84],[154.818,145.78],[181.759,102.178],[181.049,81.453]],"c":false}]},{"t":160,"s":[{"i":[[10.622,-118.401],[0,-9.147],[-0.007,-0.789],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.582,7.682]],"o":[[-0.818,9.115],[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,-7.699],[-9.094,-119.994]],"v":[[-180.021,74.765],[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01],[-94.452,135.49],[-69.112,114.41],[-52.442,110.81],[-42.892,129.01],[-42.892,148.86],[-25.182,138.06],[-12.842,149.38],[-8.722,163.78],[25.217,122.07],[45.737,134.16],[61.728,96.39],[96.188,108.23],[105.448,132.92],[126.527,149.89],[138.288,119.03],[149.158,126.84],[154.818,145.78],[181.759,102.178],[180.879,79.092]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.717999985639,0.705999995213,0.620000023935,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[201.509,179.53]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":80,"op":81,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"egg_t_76","parent":51,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[181.759,159.78,0]},"a":{"a":0,"k":[201.509,179.53,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":70,"s":[{"i":[[23.972,-99.244],[0,-25.141],[-0.007,-0.789],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[5.146,22.785]],"o":[[-5.861,24.266],[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,-23.492],[-22.887,-101.326]],"v":[[-172.219,27.574],[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01],[-94.452,135.49],[-69.112,114.41],[-52.442,110.81],[-42.892,129.01],[-42.892,148.86],[-25.182,138.06],[-12.842,149.38],[-8.722,163.78],[25.217,122.07],[45.737,134.16],[61.728,96.39],[96.188,108.23],[105.448,132.92],[126.527,149.89],[138.288,119.03],[149.158,126.84],[154.818,145.78],[181.759,102.178],[173.836,32.357]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":79,"s":[{"i":[[99.994,-12.501],[0,-22.593],[-0.007,-0.789],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[4.187,20.601]],"o":[[-4.774,21.967],[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,-21.105],[-102.755,-13.847]],"v":[[-173.918,34.979],[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01],[-94.452,135.49],[-69.112,114.41],[-52.442,110.81],[-42.892,129.01],[-42.892,148.86],[-25.182,138.06],[-12.842,149.38],[-8.722,163.78],[25.217,122.07],[45.737,134.16],[61.728,96.39],[96.188,108.23],[105.448,132.92],[126.527,149.89],[138.288,119.03],[149.158,126.84],[154.818,145.78],[181.759,102.178],[175.331,39.325]],"c":false}]},{"t":160,"s":[{"i":[[23.972,-99.244],[0,-25.141],[-0.007,-0.789],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[5.146,22.785]],"o":[[-5.861,24.266],[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,-23.492],[-22.887,-101.326]],"v":[[-172.219,27.574],[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01],[-94.452,135.49],[-69.112,114.41],[-52.442,110.81],[-42.892,129.01],[-42.892,148.86],[-25.182,138.06],[-12.842,149.38],[-8.722,163.78],[25.217,122.07],[45.737,134.16],[61.728,96.39],[96.188,108.23],[105.448,132.92],[126.527,149.89],[138.288,119.03],[149.158,126.84],[154.818,145.78],[181.759,102.178],[173.836,32.357]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.717999985639,0.705999995213,0.620000023935,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[201.509,179.53]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":79,"op":80,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"egg_t_75","parent":51,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[181.759,159.78,0]},"a":{"a":0,"k":[201.509,179.53,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":70,"s":[{"i":[[33.354,-63.059],[0,-52.607],[-0.007,-0.789],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[22.474,43.499]],"o":[[-23.284,44.02],[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.001,-51.586],[-33.276,-64.407]],"v":[[-144.055,-47.311],[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01],[-94.452,135.49],[-69.112,114.41],[-52.442,110.81],[-42.892,129.01],[-42.892,148.86],[-25.182,138.06],[-12.842,149.38],[-8.722,163.78],[25.217,122.07],[45.737,134.16],[61.728,96.39],[96.188,108.23],[105.448,132.92],[126.527,149.89],[138.288,119.03],[149.158,126.84],[154.818,145.78],[181.759,102.178],[145.899,-44.74]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":78,"s":[{"i":[[87.812,-6.089],[0,-47.771],[-0.007,-0.789],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[18.835,40.807]],"o":[[-19.545,41.38],[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.001,-46.813],[-98.323,-11.581]],"v":[[-150.236,-34.953],[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01],[-94.452,135.49],[-69.112,114.41],[-52.442,110.81],[-42.892,129.01],[-42.892,148.86],[-25.182,138.06],[-12.842,149.38],[-8.722,163.78],[25.217,122.07],[45.737,134.16],[61.728,96.39],[96.188,108.23],[105.448,132.92],[126.527,149.89],[138.288,119.03],[149.158,126.84],[154.818,145.78],[181.759,102.178],[151.9,-32.461]],"c":false}]},{"t":160,"s":[{"i":[[33.354,-63.059],[0,-52.607],[-0.007,-0.789],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[22.474,43.499]],"o":[[-23.284,44.02],[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.001,-51.586],[-33.276,-64.407]],"v":[[-144.055,-47.311],[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01],[-94.452,135.49],[-69.112,114.41],[-52.442,110.81],[-42.892,129.01],[-42.892,148.86],[-25.182,138.06],[-12.842,149.38],[-8.722,163.78],[25.217,122.07],[45.737,134.16],[61.728,96.39],[96.188,108.23],[105.448,132.92],[126.527,149.89],[138.288,119.03],[149.158,126.84],[154.818,145.78],[181.759,102.178],[145.899,-44.74]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.717999985639,0.705999995213,0.620000023935,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[201.509,179.53]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":78,"op":79,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"egg_t_74","parent":51,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[181.759,159.78,0]},"a":{"a":0,"k":[201.509,179.53,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":70,"s":[{"i":[[17.832,-9.166],[0,-102.587],[-0.007,-0.789],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[71.209,37.788]],"o":[[-72.075,37.047],[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.002,-101.78],[-18.32,-9.722]],"v":[[-56.248,-141.021],[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01],[-94.452,135.49],[-69.112,114.41],[-52.442,110.81],[-42.892,129.01],[-42.892,148.86],[-25.182,138.06],[-12.842,149.38],[-8.722,163.78],[25.217,122.07],[45.737,134.16],[61.728,96.39],[96.188,108.23],[105.448,132.92],[126.527,149.89],[138.288,119.03],[149.158,126.84],[154.818,145.78],[181.759,102.178],[58.442,-140.136]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":77,"s":[{"i":[[29.168,0.107],[0,-98.586],[-0.007,-0.789],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[66.814,41.184]],"o":[[-67.78,40.49],[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.002,-97.682],[-34.371,-1.52]],"v":[[-64.591,-136.387],[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01],[-94.452,135.49],[-69.112,114.41],[-52.442,110.81],[-42.892,129.01],[-42.892,148.86],[-25.182,138.06],[-12.842,149.38],[-8.722,163.78],[25.217,122.07],[45.737,134.16],[61.728,96.39],[96.188,108.23],[105.448,132.92],[126.527,149.89],[138.288,119.03],[149.158,126.84],[154.818,145.78],[181.759,102.178],[66.948,-135.26]],"c":false}]},{"t":160,"s":[{"i":[[17.832,-9.166],[0,-102.587],[-0.007,-0.789],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[71.209,37.788]],"o":[[-72.075,37.047],[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.002,-101.78],[-18.32,-9.722]],"v":[[-56.248,-141.021],[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01],[-94.452,135.49],[-69.112,114.41],[-52.442,110.81],[-42.892,129.01],[-42.892,148.86],[-25.182,138.06],[-12.842,149.38],[-8.722,163.78],[25.217,122.07],[45.737,134.16],[61.728,96.39],[96.188,108.23],[105.448,132.92],[126.527,149.89],[138.288,119.03],[149.158,126.84],[154.818,145.78],[181.759,102.178],[58.442,-140.136]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.717999985639,0.705999995213,0.620000023935,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[201.509,179.53]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":77,"op":78,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"egg_t_4","parent":51,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[181.759,159.78,0]},"a":{"a":0,"k":[201.509,179.53,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":1,"y":0},"t":70,"s":[{"i":[[99.14,0],[0,-127.967],[-0.007,-0.789],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[-99.14,0],[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.002,-127.966]],"v":[[0.25,-155.28],[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01],[-94.452,135.49],[-69.112,114.41],[-52.442,110.81],[-42.892,129.01],[-42.892,148.86],[-25.182,138.06],[-12.842,149.38],[-8.722,163.78],[25.217,122.07],[45.737,134.16],[61.728,96.39],[96.188,108.23],[105.448,132.92],[126.527,149.89],[138.288,119.03],[149.158,126.84],[154.818,145.78],[181.759,102.178]],"c":true}]},{"t":160,"s":[{"i":[[99.14,0],[0,-127.967],[-0.007,-0.789],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[-99.14,0],[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.002,-127.966]],"v":[[0.25,-155.28],[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01],[-94.452,135.49],[-69.112,114.41],[-52.442,110.81],[-42.892,129.01],[-42.892,148.86],[-25.182,138.06],[-12.842,149.38],[-8.722,163.78],[25.217,122.07],[45.737,134.16],[61.728,96.39],[96.188,108.23],[105.448,132.92],[126.527,149.89],[138.288,119.03],[149.158,126.84],[154.818,145.78],[181.759,102.178]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.717999985639,0.705999995213,0.620000023935,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[201.509,179.53]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":70,"op":77,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"egg_bl3","parent":51,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[107.034,99.923,0]},"a":{"a":0,"k":[18.048,23.191,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.749,-2.071],[2.071,-1.749],[1.749,2.072],[-2.072,1.75]],"o":[[1.749,2.071],[-2.071,1.75],[-1.75,-2.071],[2.071,-1.749]],"v":[[3.751,-3.168],[3.168,3.75],[-3.75,3.167],[-3.167,-3.751]],"c":true}},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[30.347,40.632]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-4.948,-5.859],[5.859,-4.948],[4.948,5.859],[-5.859,4.948]],"o":[[4.948,5.859],[-5.859,4.948],[-4.948,-5.859],[5.859,-4.948]],"v":[[10.609,-8.96],[8.96,10.609],[-10.609,8.959],[-8.96,-10.609]],"c":true}},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[15.806,15.807]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false}],"ip":0,"op":77,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"Shape Layer 4","parent":51,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":51,"s":[0]},{"t":55,"s":[100]}]},"r":{"a":0,"k":-10.372},"p":{"a":0,"k":[141.347,220.221,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-4.302,36.792],[-21.186,47.659],[-17.164,58.925],[16.01,39.441]],"c":true}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":2},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":true},{"ty":"fl","c":{"a":0,"k":[0.988235353956,0.960784373564,0.901960844152,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 1","bm":0,"hd":false}],"ip":78,"op":79,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":"Shape Layer 3","parent":51,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":51,"s":[0]},{"t":55,"s":[100]}]},"r":{"a":0,"k":-10.372},"p":{"a":0,"k":[131.116,281.997,0]},"a":{"a":0,"k":[-21.186,58.925,0]},"s":{"a":0,"k":[81.255,81.255,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[16.152,-6.03],[4.498,-1.206],[4.281,31.268],[-21.186,47.659],[-17.164,58.925],[16.01,39.441],[14.28,10.927],[24.404,2.971]],"c":true}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":2},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":true},{"ty":"fl","c":{"a":0,"k":[0.988235353956,0.960784373564,0.901960844152,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 1","bm":0,"hd":false}],"ip":0,"op":78,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":"egg_bl18","parent":51,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[130.808,146.134,0]},"a":{"a":0,"k":[103.948,123.542,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-17.63,60.68],[45.422,-2.369],[-30.653,-8.906]],"o":[[-61.54,-2.602],[7.242,32.059],[47.011,13.658]],"v":[[85.068,39.956],[-88.894,45.224],[-28.236,109.633]],"c":true}},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.957000014361,0.948999980852,0.929000016755,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[103.948,123.542]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":77,"op":78,"st":0,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":"egg_bl2","parent":51,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[130.808,146.134,0]},"a":{"a":0,"k":[103.948,123.542,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[17.63,-60.68],[47.011,13.658],[-17.629,60.679],[-47.01,-13.659]],"o":[[-17.63,60.68],[-47.01,-13.659],[17.63,-60.68],[47.011,13.658]],"v":[[86.068,37.456],[-28.236,109.633],[-86.069,-12.556],[35.469,-109.633]],"c":true}},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.957000014361,0.948999980852,0.929000016755,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[103.948,123.542]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":0,"op":77,"st":0,"bm":0},{"ddd":0,"ind":21,"ty":4,"nm":"egg_bl1","parent":51,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[241.403,207.828,0]},"a":{"a":0,"k":[21.324,22.678,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[8.288,-10.035],[6.939,5.73],[-8.287,10.036],[-6.939,-5.73]],"o":[[-8.288,10.035],[-6.939,-5.73],[8.288,-10.035],[6.939,5.73]],"v":[[12.621,11.117],[-13.356,16.698],[-12.787,-9.866],[14.135,-16.698]],"c":true}},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.957000014361,0.948999980852,0.929000016755,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[21.324,22.678]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":0,"op":78,"st":0,"bm":0},{"ddd":0,"ind":22,"ty":4,"nm":"egg_t_72","parent":51,"sr":1,"ks":{"o":{"a":0,"k":32},"r":{"a":0,"k":0},"p":{"a":0,"k":[297.327,158.314,0]},"a":{"a":0,"k":[65.94,147.105,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[35.745,5.225],[1.79,-3.99],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[-1.537,4.217],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-0.236,121.962],[-5.23,134.274],[10.71,147.106],[19.97,125.746],[34.34,127.056],[39,142.996],[47.526,129.197]],"c":true}},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.717999985639,0.705999995213,0.620000023935,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[65.94,147.106]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":82,"op":83,"st":0,"bm":0},{"ddd":0,"ind":23,"ty":4,"nm":"egg_t_71","parent":51,"sr":1,"ks":{"o":{"a":0,"k":32},"r":{"a":0,"k":0},"p":{"a":0,"k":[297.327,158.314,0]},"a":{"a":0,"k":[65.94,147.105,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[27.501,1],[4.329,-9.65],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[-2.801,10.955],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[5.508,103.349],[-5.23,134.274],[10.71,147.106],[22.47,116.246],[33.34,124.056],[39,142.996],[58.989,110.646]],"c":true}},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.717999985639,0.705999995213,0.620000023935,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[65.94,147.106]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":81,"op":82,"st":0,"bm":0},{"ddd":0,"ind":24,"ty":4,"nm":"egg_t_70","parent":51,"sr":1,"ks":{"o":{"a":0,"k":32},"r":{"a":0,"k":0},"p":{"a":0,"k":[297.327,158.314,0]},"a":{"a":0,"k":[65.94,147.105,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[16.773,0.973],[7.889,-17.588],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.297,5.472]],"o":[[-2.582,21.831],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,-5.477],[-16.484,-2.447]],"v":[[10.736,75.046],[-5.23,134.274],[10.71,147.106],[22.47,116.246],[33.34,124.056],[39,142.996],[65.94,99.396],[65.94,99.395],[65.493,82.966]],"c":true}},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.717999985639,0.705999995213,0.620000023935,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[65.94,147.106]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":80,"op":81,"st":0,"bm":0},{"ddd":0,"ind":25,"ty":4,"nm":"egg_t_69","parent":51,"sr":1,"ks":{"o":{"a":0,"k":32},"r":{"a":0,"k":0},"p":{"a":0,"k":[297.327,158.314,0]},"a":{"a":0,"k":[65.94,147.105,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[19.893,3.005],[0,-4.182],[11.258,-25.099],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[3.558,19.016]],"o":[[0.195,4.18],[0,33.566],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,-19.401],[-16.48,-5.097]],"v":[[12.116,33.439],[12.41,45.985],[-5.23,134.274],[10.71,147.106],[22.47,116.246],[33.34,124.056],[39,142.996],[65.94,99.396],[65.94,99.395],[60.488,41.541]],"c":true}},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.717999985639,0.705999995213,0.620000023935,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[65.94,147.106]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":79,"op":80,"st":0,"bm":0},{"ddd":0,"ind":26,"ty":4,"nm":"egg_t_68","parent":51,"sr":1,"ks":{"o":{"a":0,"k":32},"r":{"a":0,"k":0},"p":{"a":0,"k":[297.327,158.314,0]},"a":{"a":0,"k":[65.94,147.105,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,-27.386],[11.258,-25.099],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,33.566],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,-44.843],[0,0]],"v":[[0.487,-34.792],[12.41,45.985],[-5.23,134.274],[10.71,147.106],[22.47,116.246],[33.34,124.056],[39,142.996],[65.94,99.396],[65.94,99.395],[38.415,-30.065]],"c":true}},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.717999985639,0.705999995213,0.620000023935,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[65.94,147.106]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":78,"op":79,"st":0,"bm":0},{"ddd":0,"ind":27,"ty":4,"nm":"egg_t_67","parent":51,"sr":1,"ks":{"o":{"a":0,"k":32},"r":{"a":0,"k":0},"p":{"a":0,"k":[297.327,158.314,0]},"a":{"a":0,"k":[65.94,147.105,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-4.261,-4.788],[0,-67.44],[11.258,-25.099],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[63.059,43.619]],"o":[[39.36,44.23],[0,33.566],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,-94.149],[-7.81,-5.402]],"v":[[-52.695,-133.605],[12.41,45.985],[-5.23,134.274],[10.71,147.106],[22.47,116.246],[33.34,124.056],[39,142.996],[65.94,99.396],[65.94,99.395],[-41.709,-133.361]],"c":true}},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.717999985639,0.705999995213,0.620000023935,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[65.94,147.106]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":77,"op":78,"st":0,"bm":0},{"ddd":0,"ind":28,"ty":4,"nm":"egg_t_3","parent":51,"sr":1,"ks":{"o":{"a":0,"k":32},"r":{"a":0,"k":0},"p":{"a":0,"k":[297.327,158.314,0]},"a":{"a":0,"k":[65.94,147.105,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[75.56,33.82],[0,-74.74],[11.258,-25.099],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[46.73,43.02],[0,33.566],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,-105.81]],"v":[[-65.94,-147.105],[12.41,45.985],[-5.23,134.274],[10.71,147.106],[22.47,116.246],[33.34,124.056],[39,142.996],[65.94,99.396],[65.94,99.395]],"c":true}},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.717999985639,0.705999995213,0.620000023935,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[65.94,147.106]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":70,"op":77,"st":0,"bm":0},{"ddd":0,"ind":29,"ty":4,"nm":"egg_t_88","parent":51,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[181.76,168.724,0]},"a":{"a":0,"k":[167.715,150.835,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,4.149],[0,0],[0,0],[0,0],[0,0]],"v":[[13.989,122.368],[-42.143,123.219],[-43.143,135.665],[-25.433,124.865],[-13.093,136.185],[-8.973,150.585]],"c":true}},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.925,0.913999968884,0.882000014361,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[167.715,150.835]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":83,"op":84,"st":0,"bm":0},{"ddd":0,"ind":30,"ty":4,"nm":"egg_t_87","parent":51,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[181.76,168.724,0]},"a":{"a":0,"k":[167.715,150.835,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.902,3.081],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[55.427,1.098]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-45.958,-0.91]],"v":[[-140.757,112.198],[-136.003,122.295],[-121.103,140.295],[-102.062,115.815],[-94.703,122.295],[-76.863,107.715],[-48.192,107.116],[-43.143,115.815],[-43.143,135.665],[-25.433,124.865],[-13.093,136.185],[-8.973,150.585],[24.967,108.875],[45.487,120.965],[49.478,109.196],[105.438,113.035],[105.197,119.725],[126.277,136.695],[136.037,114.835],[148.907,116.145],[154.567,132.585],[162.976,118.214],[-2.957,106.947]],"c":true}},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.925,0.913999968884,0.882000014361,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[167.715,150.835]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":82,"op":83,"st":0,"bm":0},{"ddd":0,"ind":31,"ty":4,"nm":"egg_t_86","parent":51,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[181.76,168.724,0]},"a":{"a":0,"k":[167.715,150.835,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-0.042,-1.365],[-0.246,-3.49],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.227,5.271],[80.529,0.763]],"o":[[0.109,3.578],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.532,-5.068],[0.078,-1.821],[-86.592,-0.821]],"v":[[-167.343,94.936],[-166.807,105.537],[-160.693,111.445],[-148.353,96.066],[-136.003,122.295],[-121.103,140.295],[-102.062,115.815],[-94.703,122.295],[-69.363,101.215],[-52.692,97.616],[-43.143,115.815],[-43.143,135.665],[-25.433,124.865],[-13.093,136.185],[-8.973,150.585],[24.967,108.875],[45.487,120.965],[60.978,87.696],[95.938,95.035],[105.198,119.725],[126.277,136.695],[138.037,105.835],[148.907,113.645],[154.568,132.585],[166.079,113.954],[167.221,98.445],[10.072,86.869]],"c":true}},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.925,0.913999968884,0.882000014361,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[167.715,150.835]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":81,"op":82,"st":0,"bm":0},{"ddd":0,"ind":32,"ty":4,"nm":"egg_t_85","parent":51,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[181.76,168.724,0]},"a":{"a":0,"k":[167.715,150.835,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,-6.934],[-0.428,-6.06],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,9.295],[0,0],[81.51,1.64]],"o":[[0,0],[0,6.333],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.913,-8.701],[0,-5.458],[0,0],[-62.483,-1.257]],"v":[[-166.691,66.163],[-167.465,86.955],[-166.807,105.537],[-160.693,111.446],[-148.353,96.066],[-136.003,122.295],[-121.103,140.295],[-102.062,115.815],[-94.703,122.295],[-69.363,101.215],[-52.693,97.616],[-43.143,115.815],[-43.143,135.665],[-25.433,124.865],[-13.093,136.185],[-8.973,150.585],[24.967,108.875],[45.487,120.965],[61.478,83.196],[95.937,95.036],[105.197,119.725],[126.277,136.695],[138.037,105.835],[148.907,113.645],[154.567,132.585],[166.079,113.954],[167.465,86.955],[166.984,70.585],[-2.441,58.366]],"c":true}},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.925,0.913999968884,0.882000014361,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[167.715,150.835]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":80,"op":81,"st":0,"bm":0},{"ddd":0,"ind":33,"ty":4,"nm":"egg_t_84","parent":51,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[181.76,168.724,0]},"a":{"a":0,"k":[167.715,150.835,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,-21.293],[-0.428,-6.06],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,9.295],[0,0],[80.019,0.044]],"o":[[0,0],[0,6.333],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.913,-8.701],[0,-19.645],[0,0],[-67.007,-0.037]],"v":[[-160.405,23.649],[-167.465,86.955],[-166.807,105.537],[-160.693,111.445],[-148.353,96.066],[-136.003,122.295],[-121.103,140.295],[-102.062,115.815],[-94.703,122.295],[-69.363,101.215],[-52.693,97.615],[-43.143,115.815],[-43.143,135.665],[-25.433,124.865],[-13.093,136.185],[-8.973,150.585],[24.967,108.875],[45.487,120.965],[61.478,83.196],[95.937,95.036],[105.197,119.725],[126.277,136.695],[138.037,105.835],[148.907,113.645],[154.567,132.585],[166.079,113.954],[167.465,86.955],[161.432,28.46],[2.583,16.571]],"c":true}},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.925,0.913999968884,0.882000014361,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[167.715,150.835]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":79,"op":80,"st":0,"bm":0},{"ddd":0,"ind":34,"ty":4,"nm":"egg_t_83","parent":51,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[181.76,168.724,0]},"a":{"a":0,"k":[167.715,150.835,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[47.93,-2.289],[0,-46.846],[-0.428,-6.06],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,9.295],[18.576,38.6]],"o":[[-20.148,39.739],[0,6.333],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.913,-8.701],[0,-44.798],[-68.372,-15.543]],"v":[[-135.353,-46.697],[-167.465,86.955],[-166.807,105.537],[-160.693,111.445],[-148.353,96.066],[-136.003,122.295],[-121.103,140.295],[-102.062,115.815],[-94.703,122.295],[-69.363,101.215],[-52.693,97.616],[-43.143,115.815],[-43.143,135.665],[-25.433,124.865],[-13.093,136.185],[-8.973,150.585],[24.967,108.875],[45.487,120.965],[61.478,83.196],[95.937,95.035],[105.197,119.725],[126.277,136.695],[138.037,105.835],[148.907,113.645],[154.567,132.585],[166.079,113.954],[167.465,86.955],[137.948,-41.444]],"c":true}},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.925,0.913999968884,0.882000014361,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[167.715,150.835]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":78,"op":79,"st":0,"bm":0},{"ddd":0,"ind":35,"ty":4,"nm":"egg_t_82","parent":51,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[181.76,168.724,0]},"a":{"a":0,"k":[167.715,150.835,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[14.517,-0.497],[0,-103.316],[-0.428,-6.06],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,9.295],[74.533,26.022]],"o":[[-75.832,24.472],[0,6.333],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.913,-8.701],[0,-102.108],[-15.515,-1.388]],"v":[[-33.44,-145.227],[-167.465,86.955],[-166.807,105.537],[-160.693,111.446],[-148.353,96.065],[-136.003,122.296],[-121.103,140.296],[-102.062,115.816],[-94.703,122.296],[-69.363,101.215],[-52.693,97.616],[-43.143,115.816],[-43.143,135.665],[-25.433,124.866],[-13.093,136.186],[-8.973,150.585],[24.967,108.876],[45.487,120.965],[61.478,83.196],[95.937,95.035],[105.197,119.725],[126.277,136.696],[138.037,105.835],[148.907,113.645],[154.567,132.585],[166.079,113.954],[167.465,86.955],[36.092,-144.336]],"c":true}},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.925,0.913999968884,0.882000014361,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[167.715,150.835]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":77,"op":78,"st":0,"bm":0},{"ddd":0,"ind":36,"ty":4,"nm":"egg_t_2","parent":51,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[181.76,168.724,0]},"a":{"a":0,"k":[167.715,150.835,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[91.47,0],[0,-118.066],[-0.428,-6.06],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,9.295]],"o":[[-91.469,0],[0,6.333],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.913,-8.701],[0,-118.066]],"v":[[-0.001,-150.585],[-167.465,86.956],[-166.807,105.537],[-160.693,111.446],[-148.353,96.066],[-136.003,122.295],[-121.103,140.295],[-102.062,115.816],[-94.703,122.295],[-69.363,101.215],[-52.693,97.616],[-43.143,115.816],[-43.143,135.665],[-25.433,124.865],[-13.093,136.186],[-8.973,150.585],[24.967,108.876],[45.487,120.965],[61.478,83.196],[95.937,95.036],[105.197,119.725],[126.277,136.696],[138.037,105.835],[148.907,113.645],[154.567,132.585],[166.079,113.954],[167.465,86.956]],"c":true}},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.925,0.913999968884,0.882000014361,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[167.715,150.835]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":70,"op":77,"st":0,"bm":0},{"ddd":0,"ind":37,"ty":4,"nm":"egg_b_tr4","parent":40,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[9.999,39.154,0]},"a":{"a":0,"k":[42.686,10,0]},"s":{"a":0,"k":[80,80,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[15.64,-16.328],[-2.068,-9.128],[-16.343,12.486]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.717999985639,0.705999995213,0.620000023935,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[26.343,22.486]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tm","s":{"a":0,"k":0},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":50.666,"s":[0]},{"t":54,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"nm":"Trim Paths 1","hd":false}],"ip":0,"op":185,"st":0,"bm":0},{"ddd":0,"ind":38,"ty":4,"nm":"egg_b_tr3","parent":40,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[9.999,39.154,0]},"a":{"a":0,"k":[42.686,10,0]},"s":{"a":0,"k":[80,80,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[16.343,-12.486],[-1.365,-5.285],[-16.343,12.486]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.717999985639,0.705999995213,0.620000023935,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[26.343,22.486]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tm","s":{"a":0,"k":0},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":50.666,"s":[0]},{"t":54,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"nm":"Trim Paths 1","hd":false}],"ip":0,"op":185,"st":0,"bm":0},{"ddd":0,"ind":39,"ty":4,"nm":"egg_b_tr 4","parent":59,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[172.538,318.809,0]},"a":{"a":0,"k":[26.211,6.5,0]},"s":{"a":0,"k":[80,80,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[13.698,-49.098],[-4.388,-8.319],[-0.757,16.556],[4.372,24.411]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.717999985639,0.705999995213,0.620000023935,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[18.23,46.77]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tm","s":{"a":0,"k":0},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":47,"s":[0]},{"t":54,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"nm":"Trim Paths 1","hd":false}],"ip":0,"op":187,"st":0,"bm":0},{"ddd":0,"ind":40,"ty":4,"nm":"egg_b_tr 3","parent":59,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[172.538,318.809,0]},"a":{"a":0,"k":[26.211,6.5,0]},"s":{"a":0,"k":[80,80,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[6.418,-47.145],[-8.231,-7.616],[-0.758,16.556],[5.141,24.27]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.717999985639,0.705999995213,0.620000023935,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[18.23,46.77]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tm","s":{"a":0,"k":0},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":47,"s":[0]},{"t":54,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"nm":"Trim Paths 1","hd":false}],"ip":0,"op":187,"st":0,"bm":0},{"ddd":0,"ind":41,"ty":4,"nm":"Shape Layer 2","parent":59,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":51,"s":[0]},{"t":55,"s":[100]}]},"r":{"a":0,"k":-6.732},"p":{"a":0,"k":[184.257,315.806,0]},"a":{"a":0,"k":[22,104.25,0]},"s":{"a":0,"k":[70.899,70.899,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[13.25,104.25],[-11.75,144.5],[-31.5,149],[-52,163.25],[-51.843,172.029],[-44.5,174.25],[-26.5,158.75],[-17.75,155.75],[-15.75,174.25],[-9,184.75],[-1.5,188.75],[0,176.75],[-3.952,165.128],[-3.953,148.378],[22,107.75]],"c":true}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":2},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":true},{"ty":"fl","c":{"a":0,"k":[0.988235353956,0.960784373564,0.901960844152,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 1","bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":42,"ty":4,"nm":"egg_t_100","parent":51,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[181.759,159.78,0]},"a":{"a":0,"k":[201.509,179.53,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":70,"s":[{"i":[[99.14,0],[0,-127.967],[-0.007,-0.789],[0,0],[0,0],[0,0]],"o":[[-99.14,0],[0,0.793],[0,0],[0,0],[0,0],[0,0]],"v":[[0.25,-155.28],[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":83,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[17.278,131.827],[-43.892,132.01],[-42.892,148.86],[-25.182,138.06],[-12.842,149.38],[-8.722,163.78]],"c":true}]},{"t":160,"s":[{"i":[[99.14,0],[0,-127.967],[-0.007,-0.789],[0,0],[0,0],[0,0]],"o":[[-99.14,0],[0,0.793],[0,0],[0,0],[0,0],[0,0]],"v":[[0.25,-155.28],[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.717999985639,0.705999995213,0.620000023935,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":true},{"ty":"tr","p":{"a":0,"k":[201.509,179.53]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"fl","c":{"a":0,"k":[0.988235353956,0.960784373564,0.901960844152,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false}],"ip":83,"op":84,"st":0,"bm":0},{"ddd":0,"ind":43,"ty":4,"nm":"egg_t_99","parent":51,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[181.759,159.78,0]},"a":{"a":0,"k":[201.509,179.53,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":70,"s":[{"i":[[0,-127.967],[-0.007,-0.789],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":82,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[100.452,120.267],[105.448,132.92],[126.527,149.89],[135.788,123.53],[149.157,126.84],[154.818,145.78],[166.399,127.038]],"c":true}]},{"t":160,"s":[{"i":[[0,-127.967],[-0.007,-0.789],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.717999985639,0.705999995213,0.620000023935,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":true},{"ty":"tr","p":{"a":0,"k":[201.509,179.53]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"fl","c":{"a":0,"k":[0.988235353956,0.960784373564,0.901960844152,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false}],"ip":82,"op":83,"st":0,"bm":0},{"ddd":0,"ind":44,"ty":4,"nm":"egg_t_98","parent":51,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[181.759,159.78,0]},"a":{"a":0,"k":[201.509,179.53,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":70,"s":[{"i":[[99.14,0],[0,-127.967],[-0.007,-0.789],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[-99.14,0],[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[0.25,-155.28],[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01],[-94.452,135.49]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":82,"s":[{"i":[[-3.577,9.555],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[-44.168,-3.001],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[50.244,117.222],[-48.947,117.471],[-42.892,129.01],[-42.892,148.86],[-25.182,138.06],[-12.842,149.38],[-8.722,163.78],[25.218,122.07],[45.737,134.16]],"c":true}]},{"t":160,"s":[{"i":[[99.14,0],[0,-127.967],[-0.007,-0.789],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[-99.14,0],[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[0.25,-155.28],[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01],[-94.452,135.49]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.717999985639,0.705999995213,0.620000023935,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":true},{"ty":"tr","p":{"a":0,"k":[201.509,179.53]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"fl","c":{"a":0,"k":[0.988235353956,0.960784373564,0.901960844152,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false}],"ip":82,"op":83,"st":0,"bm":0},{"ddd":0,"ind":45,"ty":4,"nm":"egg_t_97","parent":51,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[181.759,159.78,0]},"a":{"a":0,"k":[201.509,179.53,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":70,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[-0.002,-127.966]],"v":[[105.448,132.92],[126.527,149.89],[138.288,119.03],[149.158,126.84],[154.818,145.78],[181.759,102.178]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":82,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-72.782,117.29],[-142.462,121.239],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01],[-94.452,135.49]],"c":true}]},{"t":160,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[-0.002,-127.966]],"v":[[105.448,132.92],[126.527,149.89],[138.288,119.03],[149.158,126.84],[154.818,145.78],[181.759,102.178]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.717999985639,0.705999995213,0.620000023935,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":true},{"ty":"tr","p":{"a":0,"k":[201.509,179.53]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"fl","c":{"a":0,"k":[0.988235353956,0.960784373564,0.901960844152,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false}],"ip":82,"op":83,"st":0,"bm":0},{"ddd":0,"ind":46,"ty":4,"nm":"egg_t_96","parent":51,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[181.759,159.78,0]},"a":{"a":0,"k":[201.509,179.53,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":70,"s":[{"i":[[99.14,0],[0,-127.967],[-0.007,-0.789],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[-99.14,0],[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[0.25,-155.28],[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01],[-98.274,132.126],[-94.453,135.49],[-69.112,114.41],[-52.442,110.81],[-42.892,129.01],[-42.892,148.86],[-25.182,138.06],[-12.842,149.38],[-8.723,163.78],[25.217,122.07],[45.737,134.16],[61.729,96.39],[96.188,108.23],[105.448,132.92],[126.527,149.89],[138.288,119.03],[149.158,126.84]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":81,"s":[{"i":[[-13.371,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[87.822,1.068],[-0.004,-0.401],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-90.868,-1.106],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[61.729,96.39],[96.188,108.23],[105.448,132.92],[126.527,149.89],[138.288,119.03],[149.158,126.84],[154.818,145.78],[177.243,109.487],[5.072,95.275],[-180.235,105.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01],[-94.452,135.49],[-69.113,114.41],[-52.442,110.81],[-42.892,129.01],[-42.892,148.86],[-25.182,138.06],[-12.842,149.38],[-8.722,163.78],[25.217,122.07],[45.737,134.16]],"c":true}]},{"t":160,"s":[{"i":[[99.14,0],[0,-127.967],[-0.007,-0.789],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[-99.14,0],[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[0.25,-155.28],[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01],[-98.274,132.126],[-94.453,135.49],[-69.112,114.41],[-52.442,110.81],[-42.892,129.01],[-42.892,148.86],[-25.182,138.06],[-12.842,149.38],[-8.723,163.78],[25.217,122.07],[45.737,134.16],[61.729,96.39],[96.188,108.23],[105.448,132.92],[126.527,149.89],[138.288,119.03],[149.158,126.84]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.717999985639,0.705999995213,0.620000023935,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":true},{"ty":"tr","p":{"a":0,"k":[201.509,179.53]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"fl","c":{"a":0,"k":[0.988235353956,0.960784373564,0.901960844152,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false}],"ip":81,"op":82,"st":0,"bm":0},{"ddd":0,"ind":47,"ty":4,"nm":"egg_t_95","parent":51,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[181.759,159.78,0]},"a":{"a":0,"k":[201.509,179.53,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":70,"s":[{"i":[[10.622,-118.401],[0,-9.147],[-0.007,-0.789],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.582,7.682]],"o":[[-0.818,9.115],[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,-7.699],[-9.094,-119.994]],"v":[[-180.021,74.765],[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01],[-94.452,135.49],[-69.112,114.41],[-52.442,110.81],[-42.892,129.01],[-42.892,148.86],[-25.182,138.06],[-12.842,149.38],[-8.722,163.78],[25.217,122.07],[45.737,134.16],[61.728,96.39],[96.188,108.23],[105.448,132.92],[126.527,149.89],[138.288,119.03],[149.158,126.84],[154.818,145.78],[181.759,102.178],[180.879,79.092]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":80,"s":[{"i":[[123.336,-12.013],[0,-8.21],[-0.007,-0.789],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.47,6.899]],"o":[[-0.661,8.188],[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,-6.911],[-154.472,-18.4]],"v":[[-180.26,77.567],[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01],[-94.452,135.49],[-69.112,114.41],[-52.442,110.81],[-42.892,129.01],[-42.892,148.86],[-25.182,138.06],[-12.842,149.38],[-8.722,163.78],[25.217,122.07],[45.737,134.16],[61.728,96.39],[96.188,108.23],[105.448,132.92],[126.527,149.89],[138.288,119.03],[149.158,126.84],[154.818,145.78],[181.759,102.178],[181.049,81.453]],"c":true}]},{"t":160,"s":[{"i":[[10.622,-118.401],[0,-9.147],[-0.007,-0.789],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.582,7.682]],"o":[[-0.818,9.115],[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,-7.699],[-9.094,-119.994]],"v":[[-180.021,74.765],[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01],[-94.452,135.49],[-69.112,114.41],[-52.442,110.81],[-42.892,129.01],[-42.892,148.86],[-25.182,138.06],[-12.842,149.38],[-8.722,163.78],[25.217,122.07],[45.737,134.16],[61.728,96.39],[96.188,108.23],[105.448,132.92],[126.527,149.89],[138.288,119.03],[149.158,126.84],[154.818,145.78],[181.759,102.178],[180.879,79.092]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.717999985639,0.705999995213,0.620000023935,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":true},{"ty":"tr","p":{"a":0,"k":[201.509,179.53]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"fl","c":{"a":0,"k":[0.988235353956,0.960784373564,0.901960844152,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false}],"ip":80,"op":81,"st":0,"bm":0},{"ddd":0,"ind":48,"ty":4,"nm":"egg_t_94","parent":51,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[181.759,159.78,0]},"a":{"a":0,"k":[201.509,179.53,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":70,"s":[{"i":[[23.972,-99.244],[0,-25.141],[-0.007,-0.789],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[5.146,22.785]],"o":[[-5.861,24.266],[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,-23.492],[-22.887,-101.326]],"v":[[-172.219,27.574],[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01],[-94.452,135.49],[-69.112,114.41],[-52.442,110.81],[-42.892,129.01],[-42.892,148.86],[-25.182,138.06],[-12.842,149.38],[-8.722,163.78],[25.217,122.07],[45.737,134.16],[61.728,96.39],[96.188,108.23],[105.448,132.92],[126.527,149.89],[138.288,119.03],[149.158,126.84],[154.818,145.78],[181.759,102.178],[173.836,32.357]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":79,"s":[{"i":[[99.994,-12.501],[0,-22.593],[-0.007,-0.789],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[4.187,20.601]],"o":[[-4.774,21.967],[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,-21.105],[-102.755,-13.847]],"v":[[-173.918,34.979],[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01],[-94.452,135.49],[-69.112,114.41],[-52.442,110.81],[-42.892,129.01],[-42.892,148.86],[-25.182,138.06],[-12.842,149.38],[-8.722,163.78],[25.217,122.07],[45.737,134.16],[61.728,96.39],[96.188,108.23],[105.448,132.92],[126.527,149.89],[138.288,119.03],[149.158,126.84],[154.818,145.78],[181.759,102.178],[175.331,39.325]],"c":true}]},{"t":160,"s":[{"i":[[23.972,-99.244],[0,-25.141],[-0.007,-0.789],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[5.146,22.785]],"o":[[-5.861,24.266],[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,-23.492],[-22.887,-101.326]],"v":[[-172.219,27.574],[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01],[-94.452,135.49],[-69.112,114.41],[-52.442,110.81],[-42.892,129.01],[-42.892,148.86],[-25.182,138.06],[-12.842,149.38],[-8.722,163.78],[25.217,122.07],[45.737,134.16],[61.728,96.39],[96.188,108.23],[105.448,132.92],[126.527,149.89],[138.288,119.03],[149.158,126.84],[154.818,145.78],[181.759,102.178],[173.836,32.357]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.717999985639,0.705999995213,0.620000023935,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":true},{"ty":"tr","p":{"a":0,"k":[201.509,179.53]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"fl","c":{"a":0,"k":[0.988235353956,0.960784373564,0.901960844152,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false}],"ip":79,"op":80,"st":0,"bm":0},{"ddd":0,"ind":49,"ty":4,"nm":"egg_t_93","parent":51,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[181.759,159.78,0]},"a":{"a":0,"k":[201.509,179.53,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":70,"s":[{"i":[[33.354,-63.059],[0,-52.607],[-0.007,-0.789],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[22.474,43.499]],"o":[[-23.284,44.02],[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.001,-51.586],[-33.276,-64.407]],"v":[[-144.055,-47.311],[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01],[-94.452,135.49],[-69.112,114.41],[-52.442,110.81],[-42.892,129.01],[-42.892,148.86],[-25.182,138.06],[-12.842,149.38],[-8.722,163.78],[25.217,122.07],[45.737,134.16],[61.728,96.39],[96.188,108.23],[105.448,132.92],[126.527,149.89],[138.288,119.03],[149.158,126.84],[154.818,145.78],[181.759,102.178],[145.899,-44.74]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":78,"s":[{"i":[[87.812,-6.089],[0,-47.771],[-0.007,-0.789],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[18.835,40.807]],"o":[[-19.545,41.38],[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.001,-46.813],[-98.323,-11.581]],"v":[[-150.236,-34.953],[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01],[-94.452,135.49],[-69.112,114.41],[-52.442,110.81],[-42.892,129.01],[-42.892,148.86],[-25.182,138.06],[-12.842,149.38],[-8.722,163.78],[25.217,122.07],[45.737,134.16],[61.728,96.39],[96.188,108.23],[105.448,132.92],[126.527,149.89],[138.288,119.03],[149.158,126.84],[154.818,145.78],[181.759,102.178],[151.9,-32.461]],"c":true}]},{"t":160,"s":[{"i":[[33.354,-63.059],[0,-52.607],[-0.007,-0.789],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[22.474,43.499]],"o":[[-23.284,44.02],[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.001,-51.586],[-33.276,-64.407]],"v":[[-144.055,-47.311],[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01],[-94.452,135.49],[-69.112,114.41],[-52.442,110.81],[-42.892,129.01],[-42.892,148.86],[-25.182,138.06],[-12.842,149.38],[-8.722,163.78],[25.217,122.07],[45.737,134.16],[61.728,96.39],[96.188,108.23],[105.448,132.92],[126.527,149.89],[138.288,119.03],[149.158,126.84],[154.818,145.78],[181.759,102.178],[145.899,-44.74]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.717999985639,0.705999995213,0.620000023935,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":true},{"ty":"tr","p":{"a":0,"k":[201.509,179.53]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"fl","c":{"a":0,"k":[0.988235353956,0.960784373564,0.901960844152,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false}],"ip":78,"op":79,"st":0,"bm":0},{"ddd":0,"ind":50,"ty":4,"nm":"egg_t_92","parent":51,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[181.759,159.78,0]},"a":{"a":0,"k":[201.509,179.53,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":70,"s":[{"i":[[17.832,-9.166],[0,-102.587],[-0.007,-0.789],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[71.209,37.788]],"o":[[-72.075,37.047],[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.002,-101.78],[-18.32,-9.722]],"v":[[-56.248,-141.021],[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01],[-94.452,135.49],[-69.112,114.41],[-52.442,110.81],[-42.892,129.01],[-42.892,148.86],[-25.182,138.06],[-12.842,149.38],[-8.722,163.78],[25.217,122.07],[45.737,134.16],[61.728,96.39],[96.188,108.23],[105.448,132.92],[126.527,149.89],[138.288,119.03],[149.158,126.84],[154.818,145.78],[181.759,102.178],[58.442,-140.136]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":77,"s":[{"i":[[29.168,0.107],[0,-98.586],[-0.007,-0.789],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[66.814,41.184]],"o":[[-67.78,40.49],[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.002,-97.682],[-34.371,-1.52]],"v":[[-64.591,-136.387],[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01],[-94.452,135.49],[-69.112,114.41],[-52.442,110.81],[-42.892,129.01],[-42.892,148.86],[-25.182,138.06],[-12.842,149.38],[-8.722,163.78],[25.217,122.07],[45.737,134.16],[61.728,96.39],[96.188,108.23],[105.448,132.92],[126.527,149.89],[138.288,119.03],[149.158,126.84],[154.818,145.78],[181.759,102.178],[66.948,-135.26]],"c":true}]},{"t":160,"s":[{"i":[[17.832,-9.166],[0,-102.587],[-0.007,-0.789],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[71.209,37.788]],"o":[[-72.075,37.047],[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.002,-101.78],[-18.32,-9.722]],"v":[[-56.248,-141.021],[-181.259,102.181],[-181.235,104.545],[-160.442,124.64],[-148.102,109.26],[-135.752,135.49],[-120.852,153.49],[-101.812,129.01],[-94.452,135.49],[-69.112,114.41],[-52.442,110.81],[-42.892,129.01],[-42.892,148.86],[-25.182,138.06],[-12.842,149.38],[-8.722,163.78],[25.217,122.07],[45.737,134.16],[61.728,96.39],[96.188,108.23],[105.448,132.92],[126.527,149.89],[138.288,119.03],[149.158,126.84],[154.818,145.78],[181.759,102.178],[58.442,-140.136]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.717999985639,0.705999995213,0.620000023935,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":true},{"ty":"tr","p":{"a":0,"k":[201.509,179.53]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"fl","c":{"a":0,"k":[0.988235353956,0.960784373564,0.901960844152,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false}],"ip":77,"op":78,"st":0,"bm":0},{"ddd":0,"ind":51,"ty":4,"nm":"egg_t_1","parent":4,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.301,"y":0},"t":75,"s":[60,-405.409,0],"to":[0,-59,0],"ti":[0,59,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.167,"y":0.167},"t":89,"s":[60,-759.409,0],"to":[0,0,0],"ti":[0,0,0]},{"t":150,"s":[60,-759.409,0]}]},"a":{"a":0,"k":[181.759,0.25,0]},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[1,1,0.333],"y":[0,0,0]},"t":75,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":82,"s":[100,100,100]},{"t":150,"s":[100,100,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":1,"y":0},"t":75,"s":[{"i":[[99.14,0],[0,-127.967],[-0.007,-0.789],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[-99.14,0],[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.002,-127.966]],"v":[[0,-159.53],[-181.509,97.931],[-181.485,100.295],[-160.692,120.39],[-148.352,105.01],[-136.002,131.24],[-121.102,149.24],[-102.062,124.76],[-94.702,131.24],[-69.362,110.16],[-52.692,106.56],[-43.142,124.76],[-43.142,144.61],[-25.432,133.81],[-13.092,145.13],[-8.972,159.53],[24.967,117.82],[45.487,129.91],[61.478,92.14],[95.938,103.98],[105.198,128.67],[126.277,145.64],[138.038,114.78],[148.908,122.59],[154.568,141.53],[181.509,97.928]],"c":true}]},{"t":160,"s":[{"i":[[99.14,0],[0,-127.967],[-0.007,-0.789],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[-99.14,0],[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.002,-127.966]],"v":[[0,-159.53],[-181.509,97.931],[-181.485,100.295],[-160.692,120.39],[-148.352,105.01],[-136.002,131.24],[-121.102,149.24],[-102.062,124.76],[-94.702,131.24],[-69.362,110.16],[-52.692,106.56],[-43.142,124.76],[-43.142,144.61],[-25.432,133.81],[-13.092,145.13],[-8.972,159.53],[24.967,117.82],[45.487,129.91],[61.478,92.14],[95.938,103.98],[105.198,128.67],[126.277,145.64],[138.038,114.78],[148.908,122.59],[154.568,141.53],[181.509,97.928]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.988235353956,0.960784373564,0.901960844152,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[181.759,159.78]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":70,"op":77,"st":0,"bm":0},{"ddd":0,"ind":52,"ty":4,"nm":"egg_t_7","parent":53,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[201.51,181.53,0]},"a":{"a":0,"k":[201.509,179.53,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":82,"s":[{"i":[[0,-127.967],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.002,-127.966]],"v":[[-181.259,94.681],[-160.442,117.14],[-148.102,101.76],[-135.752,127.99],[-120.852,145.99],[-101.812,121.51],[-94.452,127.99],[-69.112,106.91],[-52.442,103.31],[-42.892,121.51],[-42.892,141.36],[-25.182,130.56],[-12.842,141.88],[-8.722,156.28],[25.217,114.57],[45.737,126.66],[61.728,88.89],[96.188,100.73],[105.448,125.42],[126.527,142.39],[138.288,111.53],[149.158,119.34],[154.818,138.28],[181.759,94.678]],"c":false}]},{"t":85,"s":[{"i":[[0,-127.967],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.371,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0.793],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.002,-127.966]],"v":[[-181.259,94.681],[-160.442,117.14],[-148.102,101.76],[-135.752,127.99],[-120.852,145.99],[-101.812,121.51],[-94.452,127.99],[-69.112,106.91],[-52.442,103.31],[-42.892,121.51],[-42.892,141.36],[-25.182,130.56],[-12.842,141.88],[-8.722,156.28],[25.217,114.57],[45.737,126.66],[61.728,88.89],[96.188,100.73],[105.448,125.42],[126.527,142.39],[138.288,111.53],[149.158,119.34],[154.818,138.28],[181.759,94.678]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.717999985639,0.705999995213,0.620000023935,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[201.509,179.53]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":75,"op":184,"st":0,"bm":0},{"ddd":0,"ind":53,"ty":4,"nm":"egg_full_9","parent":59,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[181.76,229.454,0]},"a":{"a":0,"k":[201.51,251.204,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-127.967],[99.141,0],[0,127.967]],"o":[[0,127.967],[-99.14,0],[0,-127.967]],"v":[[181.51,26.257],[0,233.204],[-181.51,26.257]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.717999985639,0.705999995213,0.620000023935,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[201.51,251.204]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":-20,"op":184,"st":0,"bm":0},{"ddd":0,"ind":54,"ty":4,"nm":"egg_b_6","parent":59,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":14,"s":[0]},{"t":20,"s":[100],"h":1},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":47,"s":[0]},{"t":55,"s":[100]}]},"r":{"a":0,"k":0},"p":{"a":0,"k":[181.768,298.559,0]},"a":{"a":0,"k":[181.75,43.89,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0.58,-7.25],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.04,5.16],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.37,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,7.62],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.73,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.3,-4.99],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[181.5,-37.85],[180.63,-15.54],[158.77,18.91],[148.39,15.35],[141.79,-4.84],[129.71,26.02],[99.52,4.72],[90.01,-19.97],[67.13,-29.91],[50.93,9.95],[27.64,-3.8],[-12.96,43.64],[-19.95,19.84],[-28.57,12.01],[-52.18,24.2],[-52.18,-6.45],[-59.14,-17.06],[-70.26,-12.46],[-94.29,7.62],[-100.85,2.14],[-120.41,26.62],[-141.72,3.62],[-150.4,-14.61],[-159.87,-2.11],[-180.98,-20.26],[-181.5,-35.49],[-160.7,-15.39],[-148.36,-30.77],[-136.01,-4.54],[-121.11,13.46],[-102.07,-11.02],[-94.71,-4.54],[-69.37,-25.62],[-52.7,-29.22],[-43.15,-11.02],[-43.15,8.83],[-25.44,-1.97],[-13.1,9.35],[-8.98,23.75],[24.96,-17.96],[45.48,-5.87],[61.47,-43.64],[95.93,-31.8],[105.19,-7.11],[126.27,9.86],[138.03,-21],[148.9,-13.19],[154.56,5.75]],"c":true}},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.987999949736,0.961000031116,0.902000038297,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[181.75,43.89]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":47,"op":184,"st":0,"bm":0},{"ddd":0,"ind":55,"ty":4,"nm":"egg_b_4","parent":59,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":14,"s":[0]},{"t":20,"s":[100],"h":1}]},"r":{"a":0,"k":0},"p":{"a":0,"k":[181.768,298.559,0]},"a":{"a":0,"k":[181.75,43.89,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.37,16.96]],"o":[[-13.73,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[67.13,-29.91],[50.93,9.95],[27.64,-3.8],[-12.96,43.64],[-19.95,19.84],[-28.57,12.01],[-52.18,24.2],[-52.18,-6.45],[-59.14,-17.06],[-70.26,-12.46],[-69.37,-25.62],[-52.7,-29.22],[-43.15,-11.02],[-43.15,8.83],[-25.44,-1.97],[-13.1,9.35],[-8.98,23.75],[24.96,-17.96],[45.48,-5.87],[61.47,-43.64]],"c":true}},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.987999949736,0.961000031116,0.902000038297,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[181.75,43.89]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":-16,"op":184,"st":0,"bm":0},{"ddd":0,"ind":56,"ty":4,"nm":"egg_full_4","parent":59,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[181.76,231.454,0]},"a":{"a":0,"k":[201.51,251.204,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-127.967],[99.141,0],[0,127.967],[-99.14,0]],"o":[[0,127.967],[-99.14,0],[0,-127.967],[99.141,0]],"v":[[181.51,26.257],[0,231.204],[-181.51,26.257],[0,-229.204]],"c":true}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.717999985639,0.705999995213,0.620000023935,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[201.51,251.204]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":0,"op":70,"st":0,"bm":0},{"ddd":0,"ind":57,"ty":4,"nm":"egg_full_3","parent":59,"sr":1,"ks":{"o":{"a":0,"k":32},"r":{"a":0,"k":0},"p":{"a":0,"k":[182.672,236.934,0]},"a":{"a":0,"k":[180.595,225.725,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-105.81],[99.14,0],[12.65,108.53],[-63.35,0],[0,114],[46.73,43.02]],"o":[[0,127.97],[-90.5,0],[26.54,61.77],[88.53,0],[0,-74.74],[75.56,33.82]],"v":[[180.595,20.775],[-0.915,225.725],[-180.595,53.045],[-35.015,147.945],[127.065,-32.635],[48.715,-225.725]],"c":true}},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.717999985639,0.705999995213,0.620000023935,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[180.595,225.725]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":0,"op":70,"st":0,"bm":0},{"ddd":0,"ind":58,"ty":4,"nm":"egg_full_2","parent":59,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[181.76,230.454,0]},"a":{"a":0,"k":[167.715,213.566,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-118.066],[91.47,0],[0,118.066],[-91.469,0]],"o":[[0,118.066],[-91.469,0],[0,-118.066],[91.47,0]],"v":[[167.465,24.225],[-0.001,213.316],[-170.465,24.225],[-0.001,-213.316]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.925,0.913999968884,0.882000014361,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[167.715,213.566]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":0,"op":70,"st":0,"bm":0},{"ddd":0,"ind":59,"ty":4,"nm":"egg_full__0","parent":4,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[60,60,0]},"a":{"a":0,"k":[181.76,462.659,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-127.967],[99.141,0],[0,127.967],[-99.14,0]],"o":[[0,127.967],[-99.14,0],[0,-127.967],[99.141,0]],"v":[[181.51,26.257],[0,231.204],[-181.51,26.257],[0,-229.204]],"c":true}},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.987999949736,0.961000031116,0.902000038297,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[181.76,231.454]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":0,"op":70,"st":0,"bm":0},{"ddd":0,"ind":60,"ty":4,"nm":"egg_b_3","parent":62,"sr":1,"ks":{"o":{"a":0,"k":32},"r":{"a":0,"k":0},"p":{"a":0,"k":[182.85,108.515,0]},"a":{"a":0,"k":[180.4,102.475,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[99.14,0],[11.489,98.62],[-63.35,0],[-26.98,60.1],[0,0],[0,0],[0,0],[0,0]],"o":[[0,127.97],[-98.843,0],[26.54,61.77],[62.44,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[180.4,-102.475],[-1.11,102.475],[-180.4,-69.985],[-34.82,26.915],[109.59,-67.305],[125.17,-54.765],[136.93,-85.625],[147.8,-77.815],[153.46,-58.875]],"c":true}},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.717999985639,0.705999995213,0.620000023935,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[180.4,102.475]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":70,"op":188,"st":0,"bm":0},{"ddd":0,"ind":61,"ty":4,"nm":"egg_b_2","parent":62,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[181.75,108.515,0]},"a":{"a":0,"k":[181.75,102.725,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[99.14,0],[1,126.56],[0,0],[-86.32,0],[-12.45,107.48]],"o":[[0,127.97],[-98.53,0],[0,0],[10.18,111.57],[84.56,0],[0,0]],"v":[[181.5,-102.475],[-0.01,102.475],[-181.5,-100.115],[-171.29,-88.315],[-0.01,85.385],[170.58,-81.565]],"c":true}},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.987999949736,0.961000031116,0.902000038297,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[181.75,102.725]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":70,"op":188,"st":0,"bm":0},{"ddd":0,"ind":62,"ty":4,"nm":"egg_b_1","parent":3,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[57.778,68.636,0]},"a":{"a":0,"k":[181.75,105.62,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[99.14,0],[1,126.56],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-13.37,16.96],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,127.97],[-98.53,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[181.5,-99.58],[-0.01,105.37],[-181.5,-97.22],[-160.7,-77.12],[-148.36,-92.5],[-136.01,-66.27],[-121.11,-48.27],[-102.07,-72.75],[-94.71,-66.27],[-69.37,-87.35],[-52.7,-90.95],[-43.15,-72.75],[-43.15,-52.9],[-25.44,-63.7],[-13.1,-52.38],[-8.98,-37.98],[24.96,-79.69],[45.48,-67.6],[61.47,-105.37],[95.93,-93.53],[105.19,-68.84],[126.27,-51.87],[138.03,-82.73],[148.9,-74.92],[154.56,-55.98]],"c":true}},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.925,0.913999968884,0.882000014361,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[181.75,105.62]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":70,"op":188,"st":0,"bm":0},{"ddd":0,"ind":63,"ty":4,"nm":"beak2","parent":66,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[21.624,20.618,0]},"a":{"a":0,"k":[18.347,20.86,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":70,"s":[{"i":[[-1.828,-2.368],[0,0],[3.137,-10.389],[0,0],[0.913,1.794],[-0.878,10.652],[-2.73,-0.727]],"o":[[0,0],[-5.922,9.312],[0,0],[-1.692,1.09],[0.954,-11.939],[2.757,-1.154],[2.729,0.728]],"v":[[9.64,-14.264],[9.64,-14.264],[-4.586,18.72],[-4.599,18.734],[-9.64,17.372],[-5.552,-18.305],[2.794,-19.098]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":89.312,"s":[{"i":[[-1.828,-2.368],[0,0],[1.883,-5.692],[0,0],[0.913,1.794],[0.975,3.473],[-2.73,-0.727]],"o":[[0,0],[-4.156,4.062],[0,0],[-1.692,1.09],[0.934,-7.922],[2.757,-1.154],[2.729,0.728]],"v":[[9.64,-14.264],[9.64,-14.264],[-0.336,2.97],[-0.349,2.984],[-5.39,1.622],[-5.552,-18.305],[2.794,-19.098]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.333,"y":0},"t":94.463,"s":[{"i":[[-1.828,-2.368],[0,0],[3.137,-10.389],[0,0],[0.913,1.794],[-0.878,10.652],[-2.73,-0.727]],"o":[[0,0],[-5.922,9.312],[0,0],[-1.692,1.09],[0.954,-11.939],[2.757,-1.154],[2.729,0.728]],"v":[[9.64,-14.264],[9.64,-14.264],[-4.586,18.72],[-4.599,18.734],[-9.64,17.372],[-5.552,-18.305],[2.794,-19.098]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.666,"y":0},"t":108.625,"s":[{"i":[[-1.828,-2.368],[0,0],[-0.771,-5.51],[0,0],[0.913,1.794],[2.644,3.293],[-2.73,-0.727]],"o":[[0,0],[2.741,4.972],[0,0],[-1.692,1.09],[-7.117,-10.102],[2.757,-1.154],[2.729,0.728]],"v":[[14.606,-16.108],[15.317,-15.54],[23.63,9.077],[23.617,9.091],[19.306,8.575],[0,-18.956],[8.346,-19.749]],"c":true}]},{"i":{"x":0.382,"y":1},"o":{"x":0.167,"y":0.167},"t":121.5,"s":[{"i":[[-1.828,-2.368],[0,0],[3.137,-10.389],[0,0],[1.594,0.716],[-0.878,10.652],[-2.73,-0.727]],"o":[[0,0],[-5.922,9.312],[0,0],[-2.314,-0.062],[0.954,-11.939],[2.757,-1.154],[2.729,0.728]],"v":[[9.64,-14.264],[9.64,-14.264],[-2.426,8.701],[-2.439,8.715],[-7.48,7.353],[-5.552,-18.305],[2.794,-19.098]],"c":true}]},{"i":{"x":0.007,"y":1},"o":{"x":0.61,"y":0},"t":134.375,"s":[{"i":[[-1.828,-2.368],[0,0],[0.108,-0.668],[0,0],[0.913,1.794],[0.13,1.056],[-2.73,-0.727]],"o":[[0,0],[-3.643,9.427],[0,0],[-1.692,1.09],[-0.374,-5.681],[2.757,-1.154],[2.729,0.728]],"v":[[9.64,-14.264],[9.64,-14.264],[-22.071,11.277],[-22.084,11.291],[-27.125,9.929],[-5.552,-18.305],[2.794,-19.098]],"c":true}]},{"t":179,"s":[{"i":[[-1.828,-2.368],[0,0],[3.137,-10.389],[0,0],[1.594,0.716],[-0.878,10.652],[-2.73,-0.727]],"o":[[0,0],[-5.922,9.312],[0,0],[-2.314,-0.062],[0.954,-11.939],[2.757,-1.154],[2.729,0.728]],"v":[[9.64,-14.264],[9.64,-14.264],[-2.426,8.701],[-2.439,8.715],[-7.48,7.353],[-5.552,-18.305],[2.794,-19.098]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.948999980852,0.713999968884,0.141000007181,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[20.616,21.639]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":70,"s":[{"i":[[1.553,-1.014],[0,0],[0.919,1.803],[0,0],[-0.725,1.779],[-8.599,-2.292],[1.555,-10.337]],"o":[[0,0],[-1.696,1.107],[0,0],[-0.907,-1.779],[3.905,-9.592],[8.706,2.32],[-0.355,1.746]],"v":[[13.576,11.313],[-2.31,19.503],[-7.37,18.155],[-17.065,3.156],[-17.372,-2.414],[5.062,-18.319],[16.542,7.023]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":89.312,"s":[{"i":[[1.553,-1.014],[0,0],[0.919,1.803],[0,0],[-0.725,1.779],[-8.599,-2.292],[1.555,-10.337]],"o":[[0,0],[-1.696,1.107],[0,0],[-0.907,-1.779],[3.905,-9.592],[8.706,2.32],[-0.355,1.746]],"v":[[13.576,11.313],[1.94,3.753],[-3.12,2.405],[-17.065,3.156],[-17.372,-2.414],[5.062,-18.319],[16.542,7.023]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.333,"y":0},"t":94.463,"s":[{"i":[[1.553,-1.014],[0,0],[0.919,1.803],[0,0],[-0.725,1.779],[-8.599,-2.292],[1.555,-10.337]],"o":[[0,0],[-1.696,1.107],[0,0],[-0.907,-1.779],[3.905,-9.592],[8.706,2.32],[-0.355,1.746]],"v":[[13.576,11.313],[-2.31,19.503],[-7.37,18.155],[-17.065,3.156],[-17.372,-2.414],[5.062,-18.319],[16.542,7.023]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.666,"y":0},"t":108.625,"s":[{"i":[[-0.354,-2.379],[0,0],[4.672,1.076],[0,0],[-0.725,1.779],[-8.599,-2.292],[-2.304,-4.433]],"o":[[0.664,4.458],[-1.696,1.107],[0,0],[-0.907,-1.779],[3.905,-9.592],[8.706,2.32],[1.912,3.678]],"v":[[25.787,3.217],[25.906,9.86],[19.672,9.377],[-11.707,2.486],[-11.82,-3.065],[10.614,-18.97],[22.743,-6.638]],"c":true}]},{"i":{"x":0.382,"y":1},"o":{"x":0.167,"y":0.167},"t":121.5,"s":[{"i":[[1.553,-1.014],[0,0],[1.843,0.552],[0,0],[-0.725,1.779],[-8.599,-2.292],[1.555,-10.337]],"o":[[0,0],[-2.324,-0.28],[0,0],[-0.907,-1.779],[3.905,-9.592],[8.706,2.32],[-0.355,1.746]],"v":[[13.576,11.313],[-0.15,9.484],[-5.21,8.136],[-17.065,3.156],[-17.372,-2.414],[5.062,-18.319],[16.542,7.023]],"c":true}]},{"i":{"x":0.007,"y":1},"o":{"x":0.61,"y":0},"t":134.375,"s":[{"i":[[1.221,-1.209],[0,0],[0.919,1.803],[-2.124,4.06],[-2.045,2.04],[-8.599,-2.292],[1.555,-10.337]],"o":[[-0.236,0.994],[-1.696,1.107],[0,0],[2.109,-4.032],[5.644,-5.63],[8.706,2.32],[-0.355,1.746]],"v":[[14.093,11.775],[-19.795,12.06],[-24.855,10.712],[-22.958,2.829],[-15.758,-8.886],[5.062,-18.319],[16.542,7.023]],"c":true}]},{"t":179,"s":[{"i":[[1.553,-1.014],[0,0],[1.843,0.552],[0,0],[-0.725,1.779],[-8.599,-2.292],[1.555,-10.337]],"o":[[0,0],[-2.324,-0.28],[0,0],[-0.907,-1.779],[3.905,-9.592],[8.706,2.32],[-0.355,1.746]],"v":[[13.576,11.313],[-0.15,9.484],[-5.21,8.136],[-17.065,3.156],[-17.372,-2.414],[5.062,-18.319],[16.542,7.023]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.552999997606,0.086000001197,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[18.371,20.969]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false}],"ip":70,"op":188,"st":0,"bm":0},{"ddd":0,"ind":64,"ty":3,"nm":"NULL CONTROL","parent":78,"sr":1,"ks":{"o":{"a":0,"k":0},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":94.463,"s":[6.002]},{"i":{"x":[0.382],"y":[1]},"o":{"x":[0.666],"y":[0]},"t":108.625,"s":[-2.783]},{"i":{"x":[0.007],"y":[1]},"o":{"x":[0.61],"y":[0]},"t":134.375,"s":[8.998]},{"t":179,"s":[6.002]}]},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.333,"y":0},"t":94.463,"s":[97.22,142.747,0],"to":[6.798,1.668,0],"ti":[8.174,1.041,0]},{"i":{"x":0.382,"y":1},"o":{"x":0.666,"y":0},"t":108.625,"s":[138.01,152.756,0],"to":[-8.174,-1.041,0],"ti":[0.023,0.006,0]},{"i":{"x":0.007,"y":1},"o":{"x":0.61,"y":0},"t":134.375,"s":[48.177,136.503,0],"to":[-5.511,-1.436,0],"ti":[-8.529,-0.063,0]},{"t":179,"s":[97.22,142.747,0]}]},"a":{"a":0,"k":[60,60,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"ip":70,"op":188,"st":0,"bm":0},{"ddd":0,"ind":65,"ty":4,"nm":"Shape Layer 6","parent":66,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":22.631},"p":{"a":0,"k":[-58.833,24.044,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.333,"y":0},"t":94.463,"s":[{"i":[[2,3.375],[3.125,0.875],[-3.75,-7],[-2.987,-3.616],[-1.252,3.611]],"o":[[-11.875,4.375],[0.375,2.5],[3.75,7],[2.736,3.312],[0.696,-2.008]],"v":[[79.86,-33.288],[66.25,-32],[67.536,-26.283],[72.995,-17.937],[78.248,-18.765]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.666,"y":0},"t":108.625,"s":[{"i":[[2,3.375],[3.125,0.875],[-3.75,-7],[-6.509,-3.107],[1,1.875]],"o":[[-11.875,4.375],[0.375,2.5],[3.75,7],[5.5,2.625],[-1,-1.875]],"v":[[91.125,-36.875],[66.25,-32],[69,-27.5],[89.75,-10.125],[96.25,-11.625]],"c":true}]},{"i":{"x":0.382,"y":1},"o":{"x":0.167,"y":0.167},"t":121.5,"s":[{"i":[[2,3.375],[3.125,0.875],[-3.75,-7],[-2.987,-3.616],[-1.252,3.611]],"o":[[-11.875,4.375],[0.375,2.5],[3.75,7],[2.736,3.312],[0.696,-2.008]],"v":[[90.64,-32.738],[66.25,-32],[58.686,-24.647],[75.985,-4.507],[81.237,-5.335]],"c":true}]},{"i":{"x":0.007,"y":1},"o":{"x":0.61,"y":0},"t":134.375,"s":[{"i":[[2,3.375],[3.125,0.875],[-2.418,-7.564],[-2.555,-3.875],[-3.003,2.982]],"o":[[-11.875,4.375],[0.375,2.5],[1.051,3.288],[3.648,5.534],[4.954,-4.919]],"v":[[88.173,-28.956],[66.25,-32],[60.605,-22.558],[64.925,-9.393],[72.835,-6.897]],"c":true}]},{"t":179,"s":[{"i":[[2,3.375],[3.125,0.875],[-3.75,-7],[-2.987,-3.616],[-1.252,3.611]],"o":[[-11.875,4.375],[0.375,2.5],[3.75,7],[2.736,3.312],[0.696,-2.008]],"v":[[90.64,-32.738],[66.25,-32],[58.686,-24.647],[75.985,-4.507],[81.237,-5.335]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.807843197093,0.458823559331,0,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":3},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.611642156863,0.043521406136,0.043521406136,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 1","bm":0,"hd":false}],"ip":89,"op":196,"st":0,"bm":0},{"ddd":0,"ind":66,"ty":4,"nm":"beak1","parent":64,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":-6.002},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":70,"s":[60,60,0],"to":[-0.697,-6.63,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":89.055,"s":[55.817,20.219,0],"to":[0,0,0],"ti":[-0.697,-6.63,0]},{"i":{"x":0,"y":0},"o":{"x":0.167,"y":0.167},"t":94.463,"s":[60,60,0],"to":[0,0,0],"ti":[0,0,0]},{"t":179,"s":[60,60,0]}]},"a":{"a":0,"k":[19.915,25.962,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.333,"y":0},"t":94.463,"s":[{"i":[[0.235,-0.882],[4.834,-3.642],[3.479,0.927],[2.18,4.669],[-1.57,5.888],[-9.487,-2.529],[1.556,-10.336]],"o":[[-1.486,5.573],[-4.445,3.349],[-3.263,-0.87],[-2.669,-5.717],[2.849,-10.689],[8.705,2.321],[-0.136,0.927]],"v":[[17.557,4.873],[6.907,19.51],[-5.889,23.777],[-14.445,14.64],[-16.813,-4.288],[6.63,-23.183],[18.109,2.158]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.666,"y":0},"t":108.625,"s":[{"i":[[0.235,-0.882],[1.19,-3.323],[3.68,3.492],[2.18,4.669],[-1.57,5.888],[-9.487,-2.529],[1.556,-10.336]],"o":[[-1.358,5.092],[-3.374,2.565],[-2.88,-2.733],[-2.669,-5.717],[2.849,-10.689],[8.705,2.321],[-0.136,0.927]],"v":[[16.389,0.201],[13.447,27.399],[-3.875,20.566],[-9.373,10.267],[-11.261,-4.94],[12.182,-23.835],[23.661,1.507]],"c":true}]},{"i":{"x":0.382,"y":1},"o":{"x":0.167,"y":0.167},"t":121.5,"s":[{"i":[[0.222,-0.882],[4.573,-3.642],[3.291,0.927],[3.12,9.735],[-1.485,5.888],[-8.974,-2.529],[1.472,-10.336]],"o":[[-1.406,5.573],[-4.205,3.349],[-3.087,-0.87],[-1.915,-5.976],[2.695,-10.689],[8.235,2.321],[-0.129,0.927]],"v":[[17.912,5.604],[6.791,25.373],[-6.375,32.466],[-15.833,18.159],[-15.758,-3.822],[7.575,-22.453],[18.434,2.889]],"c":true}]},{"i":{"x":0.007,"y":1},"o":{"x":0.61,"y":0},"t":134.375,"s":[{"i":[[-0.075,-0.91],[2.837,-3.44],[3.262,-0.922],[5.204,4.51],[-1.435,5.381],[-9.487,-2.529],[1.556,-10.336]],"o":[[0.317,3.838],[-3.541,4.294],[-6.744,1.906],[-0.166,-3.014],[2.849,-10.689],[8.705,2.321],[-0.136,0.927]],"v":[[17.557,4.873],[12.2,17.103],[0.373,23.136],[-15.378,20.963],[-16.813,-4.288],[6.63,-23.183],[18.109,2.159]],"c":true}]},{"t":179,"s":[{"i":[[0.222,-0.882],[4.573,-3.642],[3.291,0.927],[3.12,9.735],[-1.485,5.888],[-8.974,-2.529],[1.472,-10.336]],"o":[[-1.406,5.573],[-4.205,3.349],[-3.087,-0.87],[-1.915,-5.976],[2.695,-10.689],[8.235,2.321],[-0.129,0.927]],"v":[[17.912,5.604],[6.791,25.373],[-6.375,32.466],[-15.833,18.159],[-15.758,-3.822],[7.575,-22.453],[18.434,2.889]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.583999992819,0.226999993418,0.011999999776,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[19.915,25.963]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":70,"op":190,"st":0,"bm":0},{"ddd":0,"ind":67,"ty":4,"nm":"beak_shad","parent":66,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[23.104,40.172,0]},"a":{"a":0,"k":[22.318,28.428,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.333,"y":0},"t":94.463,"s":[{"i":[[0,0],[0.325,-12.821],[-13.76,-2.314],[8.575,29.159]],"o":[[0,0],[-0.282,11.143],[18.343,3.086],[0,0]],"v":[[-15.174,-28.178],[-21.786,-7.822],[-5.876,25.092],[13.492,-26.524]],"c":true}]},{"i":{"x":0.382,"y":1},"o":{"x":0.666,"y":0},"t":108.625,"s":[{"i":[[0,0],[4.393,-13.371],[-13.76,-2.314],[8.575,29.159]],"o":[[0,0],[-3.479,10.59],[18.343,3.086],[0,0]],"v":[[-5.756,-32.905],[-22.483,-9.725],[-9.497,13.625],[12.795,-28.427]],"c":true}]},{"i":{"x":0.007,"y":1},"o":{"x":0.61,"y":0},"t":134.375,"s":[{"i":[[0,0],[0.325,-12.821],[-13.76,-2.314],[8.575,29.159]],"o":[[0,0],[-0.282,11.143],[18.343,3.086],[0,0]],"v":[[-15.174,-28.178],[-21.786,-7.822],[0.835,21.455],[13.492,-26.524]],"c":true}]},{"t":179,"s":[{"i":[[0,0],[0.325,-12.821],[-13.76,-2.314],[8.575,29.159]],"o":[[0,0],[-0.282,11.143],[18.343,3.086],[0,0]],"v":[[-15.174,-28.178],[-21.786,-7.822],[-5.876,25.092],[13.492,-26.524]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.987999949736,0.795999983245,0.113999998803,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[22.317,28.428]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":70,"op":190,"st":0,"bm":0},{"ddd":0,"ind":68,"ty":4,"nm":"eye_l_bl2","parent":70,"sr":1,"ks":{"o":{"a":1,"k":[{"t":89.312,"s":[0],"h":1},{"t":93.176,"s":[100],"h":1},{"t":141.113,"s":[0],"h":1},{"t":146.262,"s":[100],"h":1},{"t":153.988,"s":[0],"h":1},{"t":159.13671875,"s":[100],"h":1}]},"r":{"a":0,"k":0},"p":{"a":0,"k":[20.782,11.647,0]},"a":{"a":0,"k":[9.274,6.623,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":89.312,"s":[{"i":[[1.39,-1.603],[4.591,1.224],[0.081,0.849],[-4.591,-1.224]],"o":[[0.205,-0.083],[-4.591,-1.224],[-0.156,-2.117],[4.591,1.224]],"v":[[7.479,9.653],[-0.257,5.082],[-9.148,5.221],[0.038,4.351]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":98.324,"s":[{"i":[[0.546,-2.05],[4.591,1.224],[-0.877,3.292],[-4.591,-1.224]],"o":[[-0.858,3.22],[-4.591,-1.224],[0.547,-2.051],[4.591,1.224]],"v":[[8.479,3.153],[-0.007,1.582],[-8.148,-1.279],[1.789,-5.149]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":137.25,"s":[{"i":[[0.546,-2.05],[4.591,1.224],[-0.877,3.292],[-4.591,-1.224]],"o":[[-0.858,3.22],[-4.591,-1.224],[0.547,-2.051],[4.591,1.224]],"v":[[8.479,3.153],[-0.007,1.582],[-8.148,-1.279],[1.789,-5.149]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":143.488,"s":[{"i":[[1.39,-1.603],[4.591,1.224],[0.081,0.849],[-4.591,-1.224]],"o":[[0.205,-0.083],[-4.591,-1.224],[-0.156,-2.117],[4.591,1.224]],"v":[[7.479,9.653],[-0.257,5.082],[-9.148,5.221],[0.038,4.351]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":149.729,"s":[{"i":[[0.546,-2.05],[4.591,1.224],[-0.877,3.292],[-4.591,-1.224]],"o":[[-0.858,3.22],[-4.591,-1.224],[0.547,-2.051],[4.591,1.224]],"v":[[8.479,3.153],[-0.007,1.582],[-8.148,-1.279],[1.789,-5.149]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":155.969,"s":[{"i":[[1.39,-1.603],[4.591,1.224],[0.081,0.849],[-4.591,-1.224]],"o":[[0.205,-0.083],[-4.591,-1.224],[-0.156,-2.117],[4.591,1.224]],"v":[[7.479,9.653],[-0.257,5.082],[-9.148,5.221],[0.038,4.351]],"c":true}]},{"t":163,"s":[{"i":[[0.546,-2.05],[4.591,1.224],[-0.877,3.292],[-4.591,-1.224]],"o":[[-0.858,3.22],[-4.591,-1.224],[0.547,-2.051],[4.591,1.224]],"v":[[8.479,3.153],[-0.007,1.582],[-8.148,-1.279],[1.789,-5.149]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.961000031116,0.961000031116,0.961000031116,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[9.274,6.623]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":70,"op":190,"st":0,"bm":0},{"ddd":0,"ind":69,"ty":4,"nm":"eye_l_bl1","parent":70,"sr":1,"ks":{"o":{"a":1,"k":[{"t":89.312,"s":[0],"h":1},{"t":93.176,"s":[100],"h":1},{"t":141.113,"s":[0],"h":1},{"t":146.262,"s":[100],"h":1},{"t":153.988,"s":[0],"h":1},{"t":159.13671875,"s":[100],"h":1}]},"r":{"a":0,"k":0},"p":{"a":0,"k":[17.514,28.882,0]},"a":{"a":0,"k":[12.335,11.569,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":89.312,"s":[{"i":[[0.154,-0.694],[6.231,1.661],[-0.839,1.802],[-6.231,-1.661]],"o":[[-0.846,0.306],[-6.231,-1.661],[0.221,-0.762],[6.231,1.661]],"v":[[12.298,-5.972],[1.515,-11.092],[-9.02,-11.403],[1.737,-10.929]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":98.324,"s":[{"i":[[1.788,-6.706],[6.231,1.661],[-1.066,3.998],[-6.231,-1.661]],"o":[[-1.066,3.999],[-6.231,-1.661],[1.71,-6.416],[6.231,1.661]],"v":[[10.298,0.778],[-3.486,9.658],[-11.02,-4.903],[-0.264,-2.429]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":137.25,"s":[{"i":[[1.788,-6.706],[6.231,1.661],[-1.066,3.998],[-6.231,-1.661]],"o":[[-1.066,3.999],[-6.231,-1.661],[1.71,-6.416],[6.231,1.661]],"v":[[10.298,0.778],[-3.486,9.658],[-11.02,-4.903],[-0.264,-2.429]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":143.488,"s":[{"i":[[0.154,-0.694],[6.231,1.661],[-0.839,1.802],[-6.231,-1.661]],"o":[[-0.846,0.306],[-6.231,-1.661],[0.221,-0.762],[6.231,1.661]],"v":[[12.298,-5.972],[1.515,-11.092],[-9.02,-11.403],[1.737,-10.929]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":149.729,"s":[{"i":[[1.788,-6.706],[6.231,1.661],[-1.066,3.998],[-6.231,-1.661]],"o":[[-1.066,3.999],[-6.231,-1.661],[1.71,-6.416],[6.231,1.661]],"v":[[10.298,0.778],[-3.486,9.658],[-11.02,-4.903],[-0.264,-2.429]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":155.969,"s":[{"i":[[0.154,-0.694],[6.231,1.661],[-0.839,1.802],[-6.231,-1.661]],"o":[[-0.846,0.306],[-6.231,-1.661],[0.221,-0.762],[6.231,1.661]],"v":[[12.298,-5.972],[1.515,-11.092],[-9.02,-11.403],[1.737,-10.929]],"c":true}]},{"t":163,"s":[{"i":[[1.788,-6.706],[6.231,1.661],[-1.066,3.998],[-6.231,-1.661]],"o":[[-1.066,3.999],[-6.231,-1.661],[1.71,-6.416],[6.231,1.661]],"v":[[10.298,0.778],[-3.486,9.658],[-11.02,-4.903],[-0.264,-2.429]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.282000014361,0.286000001197,0.286000001197,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[12.335,11.57]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":70,"op":190,"st":0,"bm":0},{"ddd":0,"ind":70,"ty":4,"nm":"eye_l","parent":66,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.333,"y":0},"t":94.463,"s":[-10.692,-13.618,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.666,"y":0},"t":108.625,"s":[-9.449,-12.553,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.382,"y":1},"o":{"x":0.167,"y":0.167},"t":121.5,"s":[-10.692,-13.618,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.007,"y":1},"o":{"x":0.61,"y":0},"t":134.375,"s":[-0.953,-12.908,0],"to":[0,0,0],"ti":[0,0,0]},{"t":179,"s":[-10.692,-13.618,0]}]},"a":{"a":0,"k":[18.32,22.44,0]},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":94.463,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.621,0.621,0.621],"y":[0,0,0]},"t":108.625,"s":[100,100,100]},{"i":{"x":[0.382,0.382,0.382],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0,0]},"t":121.5,"s":[100,100,100]},{"i":{"x":[0.007,0.007,0.007],"y":[1,1,1]},"o":{"x":[0.61,0.61,0.61],"y":[0,0,0]},"t":134.375,"s":[80,100,100]},{"t":179,"s":[100,100,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":89.312,"s":[{"i":[[3.909,-2.445],[8.357,2.228],[1.027,4.56],[-8.357,-2.228]],"o":[[-3.986,2.493],[-8.356,-2.227],[-1.151,-5.112],[8.357,2.227]],"v":[[15.132,4.033],[0.929,-1.788],[-15.132,-4.033],[3.072,-7.212]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":98.324,"s":[{"i":[[2.939,-11.025],[8.357,2.228],[-2.939,11.024],[-8.357,-2.228]],"o":[[-2.939,11.025],[-8.356,-2.227],[2.939,-11.025],[8.357,2.227]],"v":[[15.132,4.033],[-5.322,19.962],[-15.132,-4.033],[5.322,-19.962]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":137.25,"s":[{"i":[[2.939,-11.025],[8.357,2.228],[-2.939,11.024],[-8.357,-2.228]],"o":[[-2.939,11.025],[-8.356,-2.227],[2.939,-11.025],[8.357,2.227]],"v":[[15.132,4.033],[-5.322,19.962],[-15.132,-4.033],[5.322,-19.962]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":143.488,"s":[{"i":[[3.909,-2.445],[8.357,2.228],[1.027,4.56],[-8.357,-2.228]],"o":[[-3.986,2.493],[-8.356,-2.227],[-1.151,-5.112],[8.357,2.227]],"v":[[15.132,4.033],[0.929,-1.788],[-15.132,-4.033],[3.072,-7.212]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":149.729,"s":[{"i":[[2.939,-11.025],[8.357,2.228],[-2.939,11.024],[-8.357,-2.228]],"o":[[-2.939,11.025],[-8.356,-2.227],[2.939,-11.025],[8.357,2.227]],"v":[[15.132,4.033],[-5.322,19.962],[-15.132,-4.033],[5.322,-19.962]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":155.969,"s":[{"i":[[3.909,-2.445],[8.357,2.228],[1.027,4.56],[-8.357,-2.228]],"o":[[-3.986,2.493],[-8.356,-2.227],[-1.151,-5.112],[8.357,2.227]],"v":[[15.132,4.033],[0.929,-1.788],[-15.132,-4.033],[3.072,-7.212]],"c":true}]},{"t":163,"s":[{"i":[[2.939,-11.025],[8.357,2.228],[-2.939,11.024],[-8.357,-2.228]],"o":[[-2.939,11.025],[-8.356,-2.227],[2.939,-11.025],[8.357,2.227]],"v":[[15.132,4.033],[-5.322,19.962],[-15.132,-4.033],[5.322,-19.962]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.067000003889,0.067000003889,0.067000003889,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[18.32,22.44]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":70,"op":190,"st":0,"bm":0},{"ddd":0,"ind":71,"ty":4,"nm":"eye_r_bl2","parent":73,"sr":1,"ks":{"o":{"a":1,"k":[{"t":89.312,"s":[0],"h":1},{"t":93.176,"s":[100],"h":1},{"t":141.113,"s":[0],"h":1},{"t":146.262,"s":[100],"h":1},{"t":153.988,"s":[0],"h":1},{"t":159.13671875,"s":[100],"h":1}]},"r":{"a":0,"k":0},"p":{"a":0,"k":[20.782,11.647,0]},"a":{"a":0,"k":[9.274,6.623,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":89.312,"s":[{"i":[[0.261,-0.794],[4.591,1.224],[0.137,0.138],[-4.591,-1.224]],"o":[[-0.315,1.263],[-4.591,-1.224],[-0.163,-1.359],[4.591,1.224]],"v":[[7.729,9.403],[-0.007,4.582],[-11.148,4.471],[-0.462,4.601]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":98.324,"s":[{"i":[[0.546,-2.05],[4.591,1.224],[-0.877,3.292],[-4.591,-1.224]],"o":[[-0.858,3.22],[-4.591,-1.224],[0.547,-2.051],[4.591,1.224]],"v":[[8.479,3.153],[-0.007,1.582],[-8.147,-1.279],[1.789,-5.149]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":137.25,"s":[{"i":[[0.546,-2.05],[4.591,1.224],[-0.877,3.292],[-4.591,-1.224]],"o":[[-0.858,3.22],[-4.591,-1.224],[0.547,-2.051],[4.591,1.224]],"v":[[8.479,3.153],[-0.007,1.582],[-8.147,-1.279],[1.789,-5.149]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":143.488,"s":[{"i":[[0.261,-0.794],[4.591,1.224],[0.137,0.138],[-4.591,-1.224]],"o":[[-0.315,1.263],[-4.591,-1.224],[-0.163,-1.359],[4.591,1.224]],"v":[[7.729,9.403],[-0.007,4.582],[-11.148,4.471],[-0.462,4.601]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":149.729,"s":[{"i":[[0.546,-2.05],[4.591,1.224],[-0.877,3.292],[-4.591,-1.224]],"o":[[-0.858,3.22],[-4.591,-1.224],[0.547,-2.051],[4.591,1.224]],"v":[[8.479,3.153],[-0.007,1.582],[-8.147,-1.279],[1.789,-5.149]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":155.969,"s":[{"i":[[0.261,-0.794],[4.591,1.224],[0.137,0.138],[-4.591,-1.224]],"o":[[-0.315,1.263],[-4.591,-1.224],[-0.163,-1.359],[4.591,1.224]],"v":[[7.729,9.403],[-0.007,4.582],[-11.148,4.471],[-0.462,4.601]],"c":true}]},{"t":163,"s":[{"i":[[0.546,-2.05],[4.591,1.224],[-0.877,3.292],[-4.591,-1.224]],"o":[[-0.858,3.22],[-4.591,-1.224],[0.547,-2.051],[4.591,1.224]],"v":[[8.479,3.153],[-0.007,1.582],[-8.147,-1.279],[1.789,-5.149]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.961000031116,0.961000031116,0.961000031116,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[9.274,6.623]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":70,"op":190,"st":0,"bm":0},{"ddd":0,"ind":72,"ty":4,"nm":"eye_r_bl1","parent":73,"sr":1,"ks":{"o":{"a":1,"k":[{"t":89.312,"s":[0],"h":1},{"t":93.176,"s":[100],"h":1},{"t":141.113,"s":[0],"h":1},{"t":146.262,"s":[100],"h":1},{"t":153.988,"s":[0],"h":1},{"t":159.13671875,"s":[100],"h":1}]},"r":{"a":0,"k":0},"p":{"a":0,"k":[17.514,28.882,0]},"a":{"a":0,"k":[12.336,11.57,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":89.312,"s":[{"i":[[1.867,-0.418],[6.231,1.661],[-0.355,1.246],[-6.231,-1.661]],"o":[[-1.54,0.345],[-6.231,-1.661],[0.277,-0.223],[6.231,1.661]],"v":[[11.048,-4.972],[1.015,-10.592],[-10.019,-10.653],[0.987,-11.179]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":98.324,"s":[{"i":[[1.788,-6.706],[6.231,1.661],[-1.066,3.998],[-6.231,-1.661]],"o":[[-1.066,3.999],[-6.231,-1.661],[1.71,-6.416],[6.231,1.661]],"v":[[10.298,0.778],[-3.486,9.658],[-11.02,-4.903],[-0.263,-2.429]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":137.25,"s":[{"i":[[1.788,-6.706],[6.231,1.661],[-1.066,3.998],[-6.231,-1.661]],"o":[[-1.066,3.999],[-6.231,-1.661],[1.71,-6.416],[6.231,1.661]],"v":[[10.298,0.778],[-3.486,9.658],[-11.02,-4.903],[-0.263,-2.429]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":143.488,"s":[{"i":[[1.867,-0.418],[6.231,1.661],[-0.355,1.246],[-6.231,-1.661]],"o":[[-1.54,0.345],[-6.231,-1.661],[0.277,-0.223],[6.231,1.661]],"v":[[11.048,-4.972],[1.015,-10.592],[-10.019,-10.653],[0.987,-11.179]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":149.729,"s":[{"i":[[1.788,-6.706],[6.231,1.661],[-1.066,3.998],[-6.231,-1.661]],"o":[[-1.066,3.999],[-6.231,-1.661],[1.71,-6.416],[6.231,1.661]],"v":[[10.298,0.778],[-3.486,9.658],[-11.02,-4.903],[-0.263,-2.429]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":155.969,"s":[{"i":[[1.867,-0.418],[6.231,1.661],[-0.355,1.246],[-6.231,-1.661]],"o":[[-1.54,0.345],[-6.231,-1.661],[0.277,-0.223],[6.231,1.661]],"v":[[11.048,-4.972],[1.015,-10.592],[-10.019,-10.653],[0.987,-11.179]],"c":true}]},{"t":163,"s":[{"i":[[1.788,-6.706],[6.231,1.661],[-1.066,3.998],[-6.231,-1.661]],"o":[[-1.066,3.999],[-6.231,-1.661],[1.71,-6.416],[6.231,1.661]],"v":[[10.298,0.778],[-3.486,9.658],[-11.02,-4.903],[-0.263,-2.429]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.282000014361,0.286000001197,0.286000001197,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[12.335,11.57]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":70,"op":190,"st":0,"bm":0},{"ddd":0,"ind":73,"ty":4,"nm":"eye_r","parent":66,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.333,"y":0},"t":94.463,"s":[67.002,7.093,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.666,"y":0},"t":108.625,"s":[58.626,-0.605,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.382,"y":1},"o":{"x":0.167,"y":0.167},"t":121.5,"s":[67.002,7.093,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.007,"y":1},"o":{"x":0.61,"y":0},"t":134.375,"s":[67.261,7.284,0],"to":[0,0,0],"ti":[0,0,0]},{"t":179,"s":[67.002,7.093,0]}]},"a":{"a":0,"k":[18.32,22.439,0]},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":94.463,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,1,1]},"o":{"x":[0.621,0.621,0.621],"y":[0,0,0]},"t":108.625,"s":[80,100,100]},{"i":{"x":[0.382,0.382,0.382],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":121.5,"s":[100,100,100]},{"i":{"x":[0.007,0.007,0.007],"y":[1,1,1]},"o":{"x":[0.61,0.61,0.61],"y":[0,0,0]},"t":134.375,"s":[100,100,100]},{"t":179,"s":[100,100,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":89.312,"s":[{"i":[[2.634,-3.48],[8.357,2.228],[1.332,4.35],[-8.357,-2.228]],"o":[[-3.431,4.533],[-8.356,-2.227],[-1.216,-3.968],[8.357,2.227]],"v":[[15.132,4.033],[0.179,-2.788],[-15.131,-4.033],[2.321,-6.712]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":98.324,"s":[{"i":[[2.939,-11.025],[8.357,2.228],[-2.939,11.024],[-8.357,-2.228]],"o":[[-2.939,11.025],[-8.356,-2.227],[2.939,-11.025],[8.357,2.227]],"v":[[15.132,4.033],[-5.321,19.962],[-15.131,-4.033],[5.321,-19.962]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":137.25,"s":[{"i":[[2.939,-11.025],[8.357,2.228],[-2.939,11.024],[-8.357,-2.228]],"o":[[-2.939,11.025],[-8.356,-2.227],[2.939,-11.025],[8.357,2.227]],"v":[[15.132,4.033],[-5.321,19.962],[-15.131,-4.033],[5.321,-19.962]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":143.488,"s":[{"i":[[2.634,-3.48],[8.357,2.228],[1.332,4.35],[-8.357,-2.228]],"o":[[-3.431,4.533],[-8.356,-2.227],[-1.216,-3.968],[8.357,2.227]],"v":[[15.132,4.033],[0.179,-2.788],[-15.131,-4.033],[2.321,-6.712]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":149.729,"s":[{"i":[[2.939,-11.025],[8.357,2.228],[-2.939,11.024],[-8.357,-2.228]],"o":[[-2.939,11.025],[-8.356,-2.227],[2.939,-11.025],[8.357,2.227]],"v":[[15.132,4.033],[-5.321,19.962],[-15.131,-4.033],[5.321,-19.962]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":155.969,"s":[{"i":[[2.634,-3.48],[8.357,2.228],[1.332,4.35],[-8.357,-2.228]],"o":[[-3.431,4.533],[-8.356,-2.227],[-1.216,-3.968],[8.357,2.227]],"v":[[15.132,4.033],[0.179,-2.788],[-15.131,-4.033],[2.321,-6.712]],"c":true}]},{"t":163,"s":[{"i":[[2.939,-11.025],[8.357,2.228],[-2.939,11.024],[-8.357,-2.228]],"o":[[-2.939,11.025],[-8.356,-2.227],[2.939,-11.025],[8.357,2.227]],"v":[[15.132,4.033],[-5.321,19.962],[-15.131,-4.033],[5.321,-19.962]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.067000003889,0.067000003889,0.067000003889,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[18.32,22.44]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":70,"op":190,"st":0,"bm":0},{"ddd":0,"ind":74,"ty":4,"nm":"head_bl","parent":78,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":1,"k":[{"i":{"x":[0.453],"y":[1]},"o":{"x":[0.773],"y":[0]},"t":82.875,"s":[0]},{"i":{"x":[0.382],"y":[1]},"o":{"x":[0.62],"y":[0]},"t":108.625,"s":[6.555]},{"i":{"x":[0.007],"y":[1]},"o":{"x":[0.61],"y":[0]},"t":134.375,"s":[0]},{"t":179,"s":[6.555]}]},"p":{"a":1,"k":[{"i":{"x":0.453,"y":1},"o":{"x":0.773,"y":0},"t":82.875,"s":[139.506,32.601,0],"to":[1.655,1.515,0],"ti":[0,0,0]},{"i":{"x":0.382,"y":1},"o":{"x":0.62,"y":0},"t":108.625,"s":[149.436,41.692,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.007,"y":1},"o":{"x":0.61,"y":0},"t":134.375,"s":[139.506,32.601,0],"to":[0,0,0],"ti":[-1.655,-1.515,0]},{"t":179,"s":[149.436,41.692,0]}]},"a":{"a":0,"k":[25.789,20.981,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-6.378,-3.534]],"o":[[0,0],[0,0]],"v":[[-5.29,-2.599],[5.29,2.599]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[20.29,17.599]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-1.313,-0.891]],"o":[[1.243,0.787],[0,0]],"v":[[-1.919,-1.258],[1.919,1.258]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[34.659,25.704]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false}],"ip":70,"op":190,"st":0,"bm":0},{"ddd":0,"ind":75,"ty":4,"nm":"head4","parent":78,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[103.985,91.496,0]},"a":{"a":0,"k":[117.329,111.246,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-3.696,13.867],[58.314,15.545],[13.471,-50.535],[-5.642,-12.859],[-11.388,-10.339]],"o":[[14.991,-7.265],[13.272,-49.788],[-59.056,-15.742],[-3.456,12.963],[0,0],[0,0]],"v":[[52.787,91.246],[84.057,54.218],[23.35,-75.504],[-93.873,6.787],[-90.094,46.283],[-72.377,71.821]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.808000033509,0.458999992819,0,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[117.329,111.246]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.453],"y":[1]},"o":{"x":[0.773],"y":[0]},"t":82.875,"s":[0]},{"i":{"x":[0.382],"y":[1]},"o":{"x":[0.62],"y":[0]},"t":108.625,"s":[0]},{"i":{"x":[0.007],"y":[1]},"o":{"x":[0.61],"y":[0]},"t":134.375,"s":[0]},{"t":179,"s":[0]}]},"e":{"a":1,"k":[{"i":{"x":[0.453],"y":[1]},"o":{"x":[0.773],"y":[0]},"t":82.875,"s":[100]},{"i":{"x":[0.382],"y":[1]},"o":{"x":[0.62],"y":[0]},"t":108.625,"s":[94]},{"i":{"x":[0.007],"y":[1]},"o":{"x":[0.61],"y":[0]},"t":134.375,"s":[100]},{"t":179,"s":[94]}]},"o":{"a":0,"k":0},"m":1,"nm":"Trim Paths 1","hd":false}],"ip":70,"op":190,"st":0,"bm":0},{"ddd":0,"ind":76,"ty":4,"nm":"head3","parent":78,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[113.858,59.375,0]},"a":{"a":0,"k":[60.724,41.946,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[4.216,-15.817],[31.07,8.282],[-4.217,15.817],[-31.023,-8.457]],"o":[[-4.216,15.817],[-31.07,-8.283],[4.216,-15.817],[31.962,8.712]],"v":[[56.258,19.771],[-7.634,33.414],[-56.257,-10.222],[10.601,-33.239]],"c":true}},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.991999966491,0.991999966491,0.616000007181,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[60.724,41.946]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":70,"op":190,"st":0,"bm":0},{"ddd":0,"ind":77,"ty":4,"nm":"head2","parent":78,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[103.527,87.848,0]},"a":{"a":0,"k":[82.548,74.918,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[9.177,-34.428],[39.206,9.704],[-6.819,25.581],[-46.907,-12.504]],"o":[[-6.819,25.581],[-49.703,-12.303],[9.315,-34.944],[46.318,12.347]],"v":[[73.121,40.486],[-14.262,64.964],[-75.479,-0.4],[21.027,-62.164]],"c":true}},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.902000038297,0.234999997008,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[82.548,74.918]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":70,"op":190,"st":0,"bm":0},{"ddd":0,"ind":78,"ty":4,"nm":"head1","parent":82,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":1,"k":[{"i":{"x":[0.453],"y":[1]},"o":{"x":[0.773],"y":[0]},"t":82.875,"s":[0]},{"i":{"x":[0.382],"y":[1]},"o":{"x":[0.62],"y":[0]},"t":108.625,"s":[-20.676]},{"i":{"x":[0.007],"y":[1]},"o":{"x":[0.61],"y":[0]},"t":134.375,"s":[0]},{"t":179,"s":[-20.676]}]},"p":{"a":1,"k":[{"i":{"x":0.453,"y":1},"o":{"x":0.773,"y":0},"t":82.875,"s":[124.041,75.846,0],"to":[3.333,0,0],"ti":[0,0,0]},{"i":{"x":0.382,"y":1},"o":{"x":0.62,"y":0},"t":108.625,"s":[144.041,75.846,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.007,"y":1},"o":{"x":0.61,"y":0},"t":134.375,"s":[124.041,75.846,0],"to":[0,0,0],"ti":[-3.333,0,0]},{"t":179,"s":[144.041,75.846,0]}]},"a":{"a":0,"k":[100.375,195.015,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[13.272,-49.788],[49.134,13.098],[-9.861,36.993],[-59.057,-15.742]],"o":[[-9.861,36.993],[-49.134,-13.097],[13.471,-50.535],[58.314,15.545]],"v":[[87.26,43.46],[-20.142,88.907],[-90.671,-3.972],[26.553,-86.262]],"c":true}},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.987999949736,0.795999983245,0.113999998803,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[100.782,102.255]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":70,"op":190,"st":0,"bm":0},{"ddd":0,"ind":79,"ty":4,"nm":"body4","parent":82,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[122.654,122.223,0]},"a":{"a":0,"k":[142.404,141.973,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-66.537],[67.602,0],[0,49.438],[-81.253,0]],"o":[[0,49.438],[-67.602,0],[0,-67.536],[80.233,0]],"v":[[122.404,24.542],[0,121.973],[-122.404,24.542],[0,-121.972]],"c":true}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.808000033509,0.458999992819,0,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[142.404,141.973]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":70,"op":190,"st":0,"bm":0},{"ddd":0,"ind":80,"ty":4,"nm":"body3","parent":82,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[120.726,53.422,0]},"a":{"a":0,"k":[92.328,39.364,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-24.938,-25.244],[44.659,0],[11.674,24.528],[-41.222,0]],"o":[[-11.941,24.289],[-44.957,0],[25.61,-37.204],[40.817,0]],"v":[[92.079,-6.395],[1.971,39.114],[-92.079,-1.91],[1.971,-39.114]],"c":true}},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.663000009574,0.071000005685,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[92.328,39.364]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":70,"op":190,"st":0,"bm":0},{"ddd":0,"ind":81,"ty":4,"nm":"body2","parent":82,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[122.654,82.349,0]},"a":{"a":0,"k":[87.4,49.029,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-29.679],[50.826,0],[0,25.413],[-47.996,0]],"o":[[0,25.413],[-50.825,0],[0,-28.565],[47.927,0]],"v":[[87.15,5.752],[-0.001,48.779],[-87.15,5.752],[-0.001,-48.779]],"c":true}},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.987999949736,0.875,0.224000010771,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[87.4,49.029]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":70,"op":190,"st":0,"bm":0},{"ddd":0,"ind":82,"ty":4,"nm":"body1","parent":3,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":1,"k":[{"i":{"x":[0.453],"y":[1]},"o":{"x":[0.773],"y":[0]},"t":82.875,"s":[-4]},{"i":{"x":[0.382],"y":[1]},"o":{"x":[0.62],"y":[0]},"t":108.625,"s":[6.83]},{"i":{"x":[0.007],"y":[1]},"o":{"x":[0.61],"y":[0]},"t":134.375,"s":[-4]},{"t":179,"s":[0]}]},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":70,"s":[67.584,171.386,0],"to":[0,-9.333,0],"ti":[0,9.333,0]},{"i":{"x":0,"y":0},"o":{"x":0.167,"y":0.167},"t":89.312,"s":[67.584,115.386,0],"to":[0,0,0],"ti":[0,0,0]},{"t":179,"s":[67.584,115.386,0]}]},"a":{"a":0,"k":[122.654,244.195,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-66.537],[67.602,0],[0,49.438],[-81.253,0]],"o":[[0,49.438],[-67.602,0],[0,-67.536],[80.233,0]],"v":[[122.404,24.542],[0,121.973],[-122.404,24.542],[0,-121.973]],"c":true}},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.987999949736,0.795999983245,0.113999998803,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[122.654,122.223]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":70,"op":190,"st":0,"bm":0},{"ddd":0,"ind":83,"ty":4,"nm":"wing_r4","parent":88,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[88.898,65.006,0]},"a":{"a":0,"k":[90.221,63.386,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":91.887,"s":[{"i":[[-22.559,17.979],[-30.942,-4.12],[-3.037,-15.396],[36.756,0.551]],"o":[[0,0],[52.631,7.008],[3.483,17.655],[-34.454,-0.517]],"v":[[-67.412,-44.501],[-18.895,-53.049],[61.467,-52.565],[-33.624,14.61]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":98.324,"s":[{"i":[[-22.559,17.979],[-29.54,-10.087],[3.158,-11.365],[33.255,-9.026]],"o":[[0,0],[42.069,14.367],[-2.773,9.981],[-33.255,9.026]],"v":[[-67.412,-44.501],[-18.895,-53.049],[47.313,11.257],[-33.624,14.61]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":104.762,"s":[{"i":[[-22.559,17.979],[-30.942,-4.12],[-3.037,-15.396],[36.756,0.551]],"o":[[0,0],[52.631,7.008],[3.483,17.655],[-34.454,-0.517]],"v":[[-67.412,-44.501],[-18.895,-53.049],[61.467,-52.565],[-33.624,14.61]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":111.199,"s":[{"i":[[-22.559,17.979],[-29.54,-10.087],[3.158,-11.365],[33.255,-9.026]],"o":[[0,0],[42.069,14.367],[-2.773,9.981],[-33.255,9.026]],"v":[[-67.412,-44.501],[-18.895,-53.049],[47.313,11.257],[-33.624,14.61]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":117.637,"s":[{"i":[[-22.559,17.979],[-30.942,-4.12],[-3.037,-15.396],[36.756,0.551]],"o":[[0,0],[52.631,7.008],[3.483,17.655],[-34.454,-0.517]],"v":[[-67.412,-44.501],[-18.895,-53.049],[61.467,-52.565],[-33.624,14.61]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0},"t":124.074,"s":[{"i":[[-22.559,17.979],[-29.54,-10.087],[3.158,-11.365],[33.255,-9.026]],"o":[[0,0],[42.069,14.367],[-2.773,9.981],[-33.255,9.026]],"v":[[-67.412,-44.501],[-18.895,-53.049],[47.313,11.257],[-33.624,14.61]],"c":true}]},{"t":179,"s":[{"i":[[-22.559,17.979],[-29.54,-10.087],[3.158,-11.365],[33.255,-9.026]],"o":[[0,0],[42.069,14.367],[-2.773,9.981],[-33.255,9.026]],"v":[[-67.412,-44.501],[-18.895,-53.049],[47.313,11.257],[-33.624,14.61]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.808000033509,0.458999992819,0,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[90.221,63.386]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":76,"op":190,"st":0,"bm":0},{"ddd":0,"ind":84,"ty":4,"nm":"wing_r3","parent":88,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[84.717,30.786,0]},"a":{"a":0,"k":[50.514,39.922,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":91.887,"s":[{"i":[[0,0],[-26.186,3.797]],"o":[[0,0],[0,0]],"v":[[-21.999,-10.559],[33.374,-12.153]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":98.324,"s":[{"i":[[0,0],[-21.858,-21.337]],"o":[[0,0],[0,0]],"v":[[-23.014,-12.422],[23.014,12.422]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":104.762,"s":[{"i":[[0,0],[-26.186,3.797]],"o":[[0,0],[0,0]],"v":[[-21.999,-10.559],[33.374,-12.153]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":111.199,"s":[{"i":[[0,0],[-21.858,-21.337]],"o":[[0,0],[0,0]],"v":[[-23.014,-12.422],[23.014,12.422]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":117.637,"s":[{"i":[[0,0],[-26.186,3.797]],"o":[[0,0],[0,0]],"v":[[-21.999,-10.559],[33.374,-12.153]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":124.074,"s":[{"i":[[0,0],[-21.858,-21.337]],"o":[[0,0],[0,0]],"v":[[-23.014,-12.422],[23.014,12.422]],"c":false}]},{"t":179,"s":[{"i":[[0,0],[-21.858,-21.337]],"o":[[0,0],[0,0]],"v":[[-23.014,-12.422],[23.014,12.422]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.995999983245,0.902000038297,0.234999997008,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":11},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[50.514,39.922]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":76,"op":190,"st":0,"bm":0},{"ddd":0,"ind":85,"ty":4,"nm":"wing_r2","parent":88,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[75.174,39.177,0]},"a":{"a":0,"k":[65.77,39.179,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":91.887,"s":[{"i":[[-10.869,-14.243],[-8.842,7.045],[-27.243,-2.537],[-10.226,-3.612],[-0.687,2.477],[47.214,4.823],[0,0]],"o":[[-4.376,-11.157],[0,0],[39.19,3.65],[5.054,-0.088],[3.161,-11.364],[-28.886,-2.951],[-13.15,10.49]],"v":[[-52.283,25.876],[-46.975,-4.999],[-4.458,-12.492],[69.508,-17.811],[73.092,-27.568],[-6.611,-26.531],[-52.37,-20.296]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":98.324,"s":[{"i":[[-10.869,-14.243],[-8.842,7.045],[-25.893,-8.84],[-3.366,-13.37],[-0.687,2.477],[42.065,14.368],[0,0]],"o":[[-4.376,-11.157],[0,0],[32.123,10.971],[5.054,-0.088],[3.161,-11.364],[-29.542,-10.085],[-13.15,10.49]],"v":[[-52.283,25.876],[-46.975,-4.999],[-4.458,-12.492],[53.33,38.93],[62.359,35.467],[-3.845,-28.844],[-52.37,-20.296]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":104.762,"s":[{"i":[[-10.869,-14.243],[-8.842,7.045],[-27.243,-2.537],[-10.226,-3.612],[-0.687,2.477],[47.214,4.823],[0,0]],"o":[[-4.376,-11.157],[0,0],[39.19,3.65],[5.054,-0.088],[3.161,-11.364],[-28.886,-2.951],[-13.15,10.49]],"v":[[-52.283,25.876],[-46.975,-4.999],[-4.458,-12.492],[69.508,-17.811],[73.092,-27.568],[-6.611,-26.531],[-52.37,-20.296]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":111.199,"s":[{"i":[[-10.869,-14.243],[-8.842,7.045],[-25.893,-8.84],[-3.366,-13.37],[-0.687,2.477],[42.065,14.368],[0,0]],"o":[[-4.376,-11.157],[0,0],[32.123,10.971],[5.054,-0.088],[3.161,-11.364],[-29.542,-10.085],[-13.15,10.49]],"v":[[-52.283,25.876],[-46.975,-4.999],[-4.458,-12.492],[53.33,38.93],[62.359,35.467],[-3.845,-28.844],[-52.37,-20.296]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":117.637,"s":[{"i":[[-10.869,-14.243],[-8.842,7.045],[-27.243,-2.537],[-10.226,-3.612],[-0.687,2.477],[47.214,4.823],[0,0]],"o":[[-4.376,-11.157],[0,0],[39.19,3.65],[5.054,-0.088],[3.161,-11.364],[-28.886,-2.951],[-13.15,10.49]],"v":[[-52.283,25.876],[-46.975,-4.999],[-4.458,-12.492],[69.508,-17.811],[73.092,-27.568],[-6.611,-26.531],[-52.37,-20.296]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":124.074,"s":[{"i":[[-10.869,-14.243],[-8.842,7.045],[-25.893,-8.84],[-3.366,-13.37],[-0.687,2.477],[42.065,14.368],[0,0]],"o":[[-4.376,-11.157],[0,0],[32.123,10.971],[5.054,-0.088],[3.161,-11.364],[-29.542,-10.085],[-13.15,10.49]],"v":[[-52.283,25.876],[-46.975,-4.999],[-4.458,-12.492],[53.33,38.93],[62.359,35.467],[-3.845,-28.844],[-52.37,-20.296]],"c":true}]},{"t":179,"s":[{"i":[[-10.869,-14.243],[-8.842,7.045],[-25.893,-8.84],[-3.366,-13.37],[-0.687,2.477],[42.065,14.368],[0,0]],"o":[[-4.376,-11.157],[0,0],[32.123,10.971],[5.054,-0.088],[3.161,-11.364],[-29.542,-10.085],[-13.15,10.49]],"v":[[-52.283,25.876],[-46.975,-4.999],[-4.458,-12.492],[53.33,38.93],[62.359,35.467],[-3.845,-28.844],[-52.37,-20.296]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.987999949736,0.795999983245,0.113999998803,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[65.77,39.18]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":76,"op":190,"st":0,"bm":0},{"ddd":0,"ind":86,"ty":3,"nm":"NULL CONTROL","parent":3,"sr":1,"ks":{"o":{"a":0,"k":0},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.453,"y":1},"o":{"x":0.773,"y":0},"t":82.875,"s":[52.416,-56.006,0],"to":[4.667,0,0],"ti":[-0.667,0,0]},{"i":{"x":0.382,"y":1},"o":{"x":0.62,"y":0},"t":108.625,"s":[80.416,-56.006,0],"to":[0.667,0,0],"ti":[2.167,0,0]},{"i":{"x":0.007,"y":1},"o":{"x":0.61,"y":0},"t":134.375,"s":[56.416,-56.006,0],"to":[-2.167,0,0],"ti":[-1.833,0,0]},{"t":179,"s":[67.416,-56.006,0]}]},"a":{"a":0,"k":[60,60,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"ip":70,"op":190,"st":0,"bm":0},{"ddd":0,"ind":87,"ty":3,"nm":"NULL CONTROL","parent":86,"sr":1,"ks":{"o":{"a":0,"k":0},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":70,"s":[35.411]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":89.312,"s":[-3.748]},{"t":179,"s":[-3.748]}]},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":70,"s":[98.066,119.369,0],"to":[0,-11.667,0],"ti":[0,11.667,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.167,"y":0.167},"t":89.312,"s":[98.066,49.369,0],"to":[0,0,0],"ti":[0,0,0]},{"t":179,"s":[98.066,49.369,0]}]},"a":{"a":0,"k":[60,60,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"ip":70,"op":190,"st":0,"bm":0},{"ddd":0,"ind":88,"ty":4,"nm":"wing_r1","parent":87,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":89.312,"s":[-25.358]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":95.75,"s":[10.739]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":102.188,"s":[-25.358]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":108.625,"s":[10.739]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":115.062,"s":[-25.358]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":121.5,"s":[7.704]},{"t":179,"s":[7.704]}]},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":82.875,"s":[60,60,0],"to":[6.667,0,0],"ti":[-6.667,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":89.312,"s":[100,60,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.167,"y":0.167},"t":98.324,"s":[100,60,0],"to":[0,0,0],"ti":[0,0,0]},{"t":179,"s":[100,60,0]}]},"a":{"a":0,"k":[13.816,43.208,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":91.887,"s":[{"i":[[-22.559,17.979],[-30.942,-4.12],[-3.037,-15.396],[36.756,0.551]],"o":[[0,0],[52.631,7.008],[3.483,17.655],[-34.454,-0.517]],"v":[[-47.662,-24.751],[0.855,-33.299],[81.217,-32.815],[-13.874,34.36]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":98.324,"s":[{"i":[[-22.559,17.979],[-29.54,-10.087],[3.158,-11.365],[33.255,-9.026]],"o":[[0,0],[42.069,14.367],[-2.773,9.981],[-33.255,9.026]],"v":[[-47.662,-24.751],[0.855,-33.299],[67.063,31.007],[-13.874,34.36]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":104.762,"s":[{"i":[[-22.559,17.979],[-30.942,-4.12],[-3.037,-15.396],[36.756,0.551]],"o":[[0,0],[52.631,7.008],[3.483,17.655],[-34.454,-0.517]],"v":[[-47.662,-24.751],[0.855,-33.299],[81.217,-32.815],[-13.874,34.36]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":111.199,"s":[{"i":[[-22.559,17.979],[-29.54,-10.087],[3.158,-11.365],[33.255,-9.026]],"o":[[0,0],[42.069,14.367],[-2.773,9.981],[-33.255,9.026]],"v":[[-47.662,-24.751],[0.855,-33.299],[67.063,31.007],[-13.874,34.36]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":117.637,"s":[{"i":[[-22.559,17.979],[-30.942,-4.12],[-3.037,-15.396],[36.756,0.551]],"o":[[0,0],[52.631,7.008],[3.483,17.655],[-34.454,-0.517]],"v":[[-47.662,-24.751],[0.855,-33.299],[81.217,-32.815],[-13.874,34.36]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":124.074,"s":[{"i":[[-22.559,17.979],[-29.54,-10.087],[3.158,-11.365],[33.255,-9.026]],"o":[[0,0],[42.069,14.367],[-2.773,9.981],[-33.255,9.026]],"v":[[-47.662,-24.751],[0.855,-33.299],[67.063,31.007],[-13.874,34.36]],"c":true}]},{"t":179,"s":[{"i":[[-22.559,17.979],[-29.54,-10.087],[3.158,-11.365],[33.255,-9.026]],"o":[[0,0],[42.069,14.367],[-2.773,9.981],[-33.255,9.026]],"v":[[-47.662,-24.751],[0.855,-33.299],[67.063,31.007],[-13.874,34.36]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.666999966491,0.071000005685,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[70.471,43.636]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":76,"op":190,"st":0,"bm":0},{"ddd":0,"ind":89,"ty":4,"nm":"wing_l4","parent":93,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[68.46,47.555,0]},"a":{"a":0,"k":[88.21,67.305,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":91.887,"s":[{"i":[[24.496,15.235],[28.69,-12.299],[-2.268,-13.172],[-55.682,3.877]],"o":[[0,0],[-44.491,19.072],[1.757,10.209],[34.375,-2.394]],"v":[[43.714,-31.002],[-5.467,-33.851],[-83.747,-13.32],[17.025,31.635]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":98.324,"s":[{"i":[[24.496,15.235],[28.167,-13.453],[-4.457,-10.921],[-34.079,-5.099]],"o":[[0,0],[-40.115,19.158],[3.914,9.591],[34.079,5.1]],"v":[[43.714,-31.002],[-5.467,-33.851],[-63.753,37.713],[17.025,31.635]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":104.762,"s":[{"i":[[24.496,15.235],[28.69,-12.299],[-2.268,-13.172],[-55.682,3.877]],"o":[[0,0],[-44.491,19.072],[1.757,10.209],[34.375,-2.394]],"v":[[43.714,-31.002],[-5.467,-33.851],[-83.747,-13.32],[17.025,31.635]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":111.199,"s":[{"i":[[24.496,15.235],[28.167,-13.453],[-4.457,-10.921],[-34.079,-5.099]],"o":[[0,0],[-40.115,19.158],[3.914,9.591],[34.079,5.1]],"v":[[43.714,-31.002],[-5.467,-33.851],[-63.753,37.713],[17.025,31.635]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":117.637,"s":[{"i":[[24.496,15.235],[28.69,-12.299],[-2.268,-13.172],[-55.682,3.877]],"o":[[0,0],[-44.491,19.072],[1.757,10.209],[34.375,-2.394]],"v":[[43.714,-31.002],[-5.467,-33.851],[-83.747,-13.32],[17.025,31.635]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":124.074,"s":[{"i":[[24.496,15.235],[28.167,-13.453],[-4.457,-10.921],[-34.079,-5.099]],"o":[[0,0],[-40.115,19.158],[3.914,9.591],[34.079,5.1]],"v":[[43.714,-31.002],[-5.467,-33.851],[-63.753,37.713],[17.025,31.635]],"c":true}]},{"t":179,"s":[{"i":[[24.496,15.235],[28.167,-13.453],[-4.457,-10.921],[-34.079,-5.099]],"o":[[0,0],[-40.115,19.158],[3.914,9.591],[34.079,5.1]],"v":[[43.714,-31.002],[-5.467,-33.851],[-63.753,37.713],[17.025,31.635]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.808000033509,0.458999992819,0,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[88.21,67.305]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":76,"op":190,"st":0,"bm":0},{"ddd":0,"ind":90,"ty":4,"nm":"wing_l3","parent":93,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[67.223,25.602,0]},"a":{"a":0,"k":[49.357,37.615,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":91.887,"s":[{"i":[[0,0],[-14.525,-1.794]],"o":[[13.36,-4.762],[0,0]],"v":[[-23.298,5.736],[16.026,-6.364]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":98.324,"s":[{"i":[[0,0],[-20.743,-3.772]],"o":[[0,0],[0,0]],"v":[[-21.857,10.114],[21.857,-6.343]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":104.762,"s":[{"i":[[0,0],[-14.525,-1.794]],"o":[[13.36,-4.762],[0,0]],"v":[[-23.298,5.736],[16.026,-6.364]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":111.199,"s":[{"i":[[0,0],[-20.743,-3.772]],"o":[[0,0],[0,0]],"v":[[-21.857,10.114],[21.857,-6.343]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":117.637,"s":[{"i":[[0,0],[-14.525,-1.794]],"o":[[13.36,-4.762],[0,0]],"v":[[-23.298,5.736],[16.026,-6.364]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":124.074,"s":[{"i":[[0,0],[-20.743,-3.772]],"o":[[0,0],[0,0]],"v":[[-21.857,10.114],[21.857,-6.343]],"c":false}]},{"t":179,"s":[{"i":[[0,0],[-20.743,-3.772]],"o":[[0,0],[0,0]],"v":[[-21.857,10.114],[21.857,-6.343]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.995999983245,0.902000038297,0.234999997008,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":11},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[49.357,37.615]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":76,"op":190,"st":0,"bm":0},{"ddd":0,"ind":91,"ty":4,"nm":"wing_l2","parent":93,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[63.424,44.203,0]},"a":{"a":0,"k":[63.425,44.205,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":91.887,"s":[{"i":[[9.14,-15.41],[9.6,5.97],[25.341,-10.455],[17.759,1.762],[0.97,2.38],[-40.11,19.16],[0,0]],"o":[[3.05,-11.59],[0,0],[-31.379,12.946],[-5.03,0.5],[-4.46,-10.92],[28.17,-13.45],[14.28,8.89]],"v":[[54.035,18.215],[45.175,-11.835],[1.052,-16.054],[-73.26,-4.569],[-76.092,-12.594],[-0.435,-30.505],[48.755,-27.655]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":98.324,"s":[{"i":[[9.14,-15.41],[9.6,5.97],[24.689,-11.79],[1.79,-13.67],[0.97,2.38],[-40.11,19.16],[0,0]],"o":[[3.05,-11.59],[0,0],[-30.63,14.63],[-5.03,0.5],[-4.46,-10.92],[28.17,-13.45],[14.28,8.89]],"v":[[54.035,18.215],[45.175,-11.835],[2.075,-14.335],[-49.345,43.455],[-58.715,41.065],[-0.435,-30.505],[48.755,-27.655]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":104.762,"s":[{"i":[[9.14,-15.41],[9.6,5.97],[25.341,-10.455],[17.759,1.762],[0.97,2.38],[-40.11,19.16],[0,0]],"o":[[3.05,-11.59],[0,0],[-31.379,12.946],[-5.03,0.5],[-4.46,-10.92],[28.17,-13.45],[14.28,8.89]],"v":[[54.035,18.215],[45.175,-11.835],[1.052,-16.054],[-73.26,-4.569],[-76.092,-12.594],[-0.435,-30.505],[48.755,-27.655]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":111.199,"s":[{"i":[[9.14,-15.41],[9.6,5.97],[24.689,-11.79],[1.79,-13.67],[0.97,2.38],[-40.11,19.16],[0,0]],"o":[[3.05,-11.59],[0,0],[-30.63,14.63],[-5.03,0.5],[-4.46,-10.92],[28.17,-13.45],[14.28,8.89]],"v":[[54.035,18.215],[45.175,-11.835],[2.075,-14.335],[-49.345,43.455],[-58.715,41.065],[-0.435,-30.505],[48.755,-27.655]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":117.637,"s":[{"i":[[9.14,-15.41],[9.6,5.97],[25.341,-10.455],[17.759,1.762],[0.97,2.38],[-40.11,19.16],[0,0]],"o":[[3.05,-11.59],[0,0],[-31.379,12.946],[-5.03,0.5],[-4.46,-10.92],[28.17,-13.45],[14.28,8.89]],"v":[[54.035,18.215],[45.175,-11.835],[1.052,-16.054],[-73.26,-4.569],[-76.092,-12.594],[-0.435,-30.505],[48.755,-27.655]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":124.074,"s":[{"i":[[9.14,-15.41],[9.6,5.97],[24.689,-11.79],[1.79,-13.67],[0.97,2.38],[-40.11,19.16],[0,0]],"o":[[3.05,-11.59],[0,0],[-30.63,14.63],[-5.03,0.5],[-4.46,-10.92],[28.17,-13.45],[14.28,8.89]],"v":[[54.035,18.215],[45.175,-11.835],[2.075,-14.335],[-49.345,43.455],[-58.715,41.065],[-0.435,-30.505],[48.755,-27.655]],"c":true}]},{"t":179,"s":[{"i":[[9.14,-15.41],[9.6,5.97],[24.689,-11.79],[1.79,-13.67],[0.97,2.38],[-40.11,19.16],[0,0]],"o":[[3.05,-11.59],[0,0],[-30.63,14.63],[-5.03,0.5],[-4.46,-10.92],[28.17,-13.45],[14.28,8.89]],"v":[[54.035,18.215],[45.175,-11.835],[2.075,-14.335],[-49.345,43.455],[-58.715,41.065],[-0.435,-30.505],[48.755,-27.655]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.987999949736,0.795999983245,0.113999998803,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[63.425,44.205]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":76,"op":190,"st":0,"bm":0},{"ddd":0,"ind":92,"ty":3,"nm":"NULL CONTROL","parent":86,"sr":1,"ks":{"o":{"a":0,"k":0},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":70,"s":[-52.273]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":89.312,"s":[-3.748]},{"t":179,"s":[-3.748]}]},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":70,"s":[21.934,140.631,0],"to":[0,-11.667,0],"ti":[0,11.667,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.167,"y":0.167},"t":89.312,"s":[21.934,70.631,0],"to":[0,0,0],"ti":[0,0,0]},{"t":179,"s":[21.934,70.631,0]}]},"a":{"a":0,"k":[60,60,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"ip":70,"op":190,"st":0,"bm":0},{"ddd":0,"ind":93,"ty":4,"nm":"wing_l1","parent":92,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":89.312,"s":[44.874]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":95.75,"s":[16.506]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":102.188,"s":[44.874]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":108.625,"s":[16.506]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":115.062,"s":[44.874]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":121.5,"s":[15.391]},{"t":179,"s":[15.391]}]},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":82.875,"s":[60,60,0],"to":[-6.667,0,0],"ti":[6.667,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":89.312,"s":[20,60,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.167,"y":0.167},"t":98.324,"s":[20,60,0],"to":[0,0,0],"ti":[0,0,0]},{"t":179,"s":[20,60,0]}]},"a":{"a":0,"k":[123.721,48.108,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":91.887,"s":[{"i":[[24.496,15.235],[28.167,-13.453],[-2.055,-11.615],[-34.193,-0.139]],"o":[[0,0],[-40.115,19.158],[5.28,29.839],[34.458,0.141]],"v":[[43.714,-31.002],[-5.467,-33.851],[-81.666,-15.139],[17.025,31.635]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":98.324,"s":[{"i":[[24.496,15.235],[28.167,-13.453],[-4.457,-10.921],[-34.079,-5.099]],"o":[[0,0],[-40.115,19.158],[3.914,9.591],[34.079,5.1]],"v":[[43.714,-31.002],[-5.467,-33.851],[-63.753,37.713],[17.025,31.635]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":104.762,"s":[{"i":[[24.496,15.235],[28.167,-13.453],[-2.055,-11.615],[-34.193,-0.139]],"o":[[0,0],[-40.115,19.158],[5.28,29.839],[34.458,0.141]],"v":[[43.714,-31.002],[-5.467,-33.851],[-81.666,-15.139],[17.025,31.635]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":111.199,"s":[{"i":[[24.496,15.235],[28.167,-13.453],[-4.457,-10.921],[-34.079,-5.099]],"o":[[0,0],[-40.115,19.158],[3.914,9.591],[34.079,5.1]],"v":[[43.714,-31.002],[-5.467,-33.851],[-63.753,37.713],[17.025,31.635]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":117.637,"s":[{"i":[[24.496,15.235],[28.167,-13.453],[-2.055,-11.615],[-34.193,-0.139]],"o":[[0,0],[-40.115,19.158],[5.28,29.839],[34.458,0.141]],"v":[[43.714,-31.002],[-5.467,-33.851],[-81.666,-15.139],[17.025,31.635]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":124.074,"s":[{"i":[[24.496,15.235],[28.167,-13.453],[-4.457,-10.921],[-34.079,-5.099]],"o":[[0,0],[-40.115,19.158],[3.914,9.591],[34.079,5.1]],"v":[[43.714,-31.002],[-5.467,-33.851],[-63.753,37.713],[17.025,31.635]],"c":true}]},{"t":179,"s":[{"i":[[24.496,15.235],[28.167,-13.453],[-4.457,-10.921],[-34.079,-5.099]],"o":[[0,0],[-40.115,19.158],[3.914,9.591],[34.079,5.1]],"v":[[43.714,-31.002],[-5.467,-33.851],[-63.753,37.713],[17.025,31.635]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.666999966491,0.071000005685,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[68.46,47.555]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":76,"op":190,"st":0,"bm":0},{"ddd":0,"ind":94,"ty":4,"nm":"egg_back1","parent":3,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[56.065,23.756,0]},"a":{"a":0,"k":[204.214,88.403,0]},"s":{"a":0,"k":[99,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.887,123.603],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-53.828,-27.429]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[53.829,27.428]],"v":[[184.403,-53.325],[176.443,-42.625],[166.1,-57.987],[153.26,-40.297],[130.529,-68.403],[97.475,-34.649],[34.529,-47.146],[-17.352,-34.649],[-48.443,-51.526],[-107.592,-41.414],[-143.414,-60.99],[-162.613,-47.146],[-178.786,-52.84],[-130.385,40.283]],"c":true}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.40800000359,0.313999998803,0.176000004189,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[204.214,88.403]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.887,123.603],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-53.828,-27.429]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[53.829,27.428]],"v":[[184.403,-53.325],[176.443,-42.625],[166.1,-57.987],[153.26,-40.297],[130.529,-68.403],[97.475,-34.649],[34.529,-47.146],[-17.352,-34.649],[-48.443,-51.526],[-107.592,-41.414],[-143.414,-60.99],[-162.613,-47.146],[-178.786,-52.84],[-130.385,40.283]],"c":true}},"nm":"Path 1","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.592000026329,0.455000005984,0.224000010771,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[204.214,88.403]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false}],"ip":76,"op":190,"st":0,"bm":0}]} \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/wallet_gem.tgs b/TMessagesProj/src/main/res/raw/wallet_gem.tgs deleted file mode 100644 index 4326e1e52..000000000 --- a/TMessagesProj/src/main/res/raw/wallet_gem.tgs +++ /dev/null @@ -1 +0,0 @@ -{"tgs":1,"v":"5.5.2","fr":60,"ip":0,"op":180,"w":512,"h":512,"nm":"Static crystal v2","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"sr":1,"ks":{"p":{"a":0,"k":[185,336,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[0,0],[0,0],[0,0],[0,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[-44.459,0],[0,-44.459],[44.459,0],[0,44.459]],"o":[[44.459,0],[0,44.459],[-44.459,0],[0,-44.459]],"v":[[0,-80.5],[80.5,0],[0,80.5],[-80.5,0]],"c":true}]},{"t":29,"s":[{"i":[[-68.759,0],[0,-51.915],[68.759,0],[0,51.915]],"o":[[68.759,0],[0,51.915],[-68.759,0],[0,-51.915]],"v":[[0,-94],[124.5,0],[0,94],[-124.5,0]],"c":true}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":7,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":16,"s":[3]},{"t":26,"s":[0]}]},"lc":1,"lj":1,"ml":4,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[85,-96]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":7,"op":35,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"sr":1,"ks":{"p":{"a":0,"k":[185,336,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[52,-92.5],[-35,-91]],"c":false}},"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[87,-64],[87,-7]],"c":false}},"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[117,-95.5],[208.5,-95.5]],"c":false}},"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[84.5,-127],[84.5,-184]],"c":false}},"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"st","c":{"a":0,"k":[0.760784373564,0.909803981407,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":6,"s":[0]},{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":13,"s":[4]},{"t":34,"s":[0]}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":7,"s":[0]},{"t":22,"s":[100]}]},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":16,"s":[0]},{"t":33,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"hd":false},{"ty":"tr","p":{"a":0,"k":[84.5,-95.25]},"a":{"a":0,"k":[84.5,-95.25]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":35,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"sr":1,"ks":{"p":{"a":0,"k":[218.077,299.023,0]},"a":{"a":0,"k":[289.077,219.023,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0.975],[0.808,0.006],[0.01,-0.827],[-0.78,0.017]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-0.018,-0.79],[-0.716,0.08],[0.027,0.79],[0.716,0.023]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7,"s":[{"i":[[0,73.226],[60.682,0.436],[0.778,-62.125],[-58.629,1.3]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-1.37,-59.334],[-53.771,6.047],[2.02,59.334],[53.771,1.695]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[2.086,115.5],[87.931,-2.472],[-1.804,-94.293],[-98,1.5]],"o":[[1.586,99],[87.431,-0.972],[5.196,-94.793],[-72.25,0.25]],"v":[[-1.37,-101.646],[-80.216,6.326],[2.02,101.646],[80.216,1.354]],"c":true}]},{"t":26,"s":[{"i":[[0,0.975],[0.808,0.006],[0.01,-0.827],[-0.78,0.017]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-0.018,-0.79],[-0.716,0.08],[0.027,0.79],[0.716,0.023]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[340.784,159.146]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":27,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"refId":"comp_0","sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":131,"s":[0]},{"t":166,"s":[92]}]},"p":{"a":0,"k":[121,124,0]},"a":{"a":0,"k":[268,243,0]},"s":{"a":0,"k":[46,46,100]}},"ao":0,"w":512,"h":512,"ip":131,"op":166,"st":131,"bm":0},{"ddd":0,"ind":2,"ty":0,"refId":"comp_0","sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":100,"s":[0]},{"t":135,"s":[92]}]},"p":{"a":0,"k":[376,160,0]},"a":{"a":0,"k":[268,243,0]},"s":{"a":0,"k":[46,46,100]}},"ao":0,"w":512,"h":512,"ip":100,"op":135,"st":100,"bm":0},{"ddd":0,"ind":3,"ty":0,"refId":"comp_0","sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":41,"s":[0]},{"t":76,"s":[45]}]},"p":{"a":0,"k":[141,158,0]},"a":{"a":0,"k":[268,243,0]},"s":{"a":0,"k":[84,84,100]}},"ao":0,"w":512,"h":512,"ip":41,"op":76,"st":41,"bm":0},{"ddd":0,"ind":4,"ty":0,"refId":"comp_0","sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":27,"s":[0]},{"t":62,"s":[92]}]},"p":{"a":0,"k":[171,258,0]},"a":{"a":0,"k":[268,243,0]},"s":{"a":0,"k":[46,46,100]}},"ao":0,"w":512,"h":512,"ip":27,"op":62,"st":27,"bm":0},{"ddd":0,"ind":5,"ty":0,"refId":"comp_0","sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":7,"s":[0]},{"t":42,"s":[45]}]},"p":{"a":0,"k":[375,156,0]},"a":{"a":0,"k":[268,243,0]},"s":{"a":0,"k":[114,114,100]}},"ao":0,"w":512,"h":512,"ip":7,"op":42,"st":7,"bm":0},{"ddd":0,"ind":6,"ty":4,"sr":1,"ks":{"p":{"a":0,"k":[263.818,273.48,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[187.438,-58.125],[159.438,-109.75],[135.5,-153.813],[100.563,-167.125],[57.938,-183.875],[-6.313,-183.875],[-68,-183.875],[-107.563,-168.313],[-145.688,-153.188],[-169.688,-106.688],[-195.063,-57.25],[-167,-22.438],[-5,177.875],[161.688,-27.438]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0,0.345098048449,0.686274528503,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":-53,"bm":0},{"ddd":0,"ind":7,"ty":4,"sr":1,"ks":{"o":{"a":0,"k":60},"p":{"a":0,"k":[256.226,243.689,0]},"a":{"a":0,"k":[0.226,-19.811,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-149,-31.5],[-82,-2.237],[89.028,-1.869],[149.452,-28.903],[87.915,-9.21],[-80.255,-9.099],[-149,-31.5]],"c":false}},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":-54,"bm":0},{"ddd":0,"ind":8,"ty":4,"sr":1,"ks":{"o":{"a":0,"k":60},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":90,"s":[460.47,130.909,0],"to":[0,0,0],"ti":[0,0,0]},{"t":149,"s":[75.47,130.909,0]}]},"a":{"a":0,"k":[246.47,130.909,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":106,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-45.667,26.969],[-47.1,28.032],[-46.724,27.986],[-46.408,27.954],[-46.41,27.957],[-45.657,26.971]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":108,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-11.511,4.199],[-46.725,30.302],[-37.482,29.174],[-29.725,28.398],[-29.756,28.46],[-11.282,4.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":109,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[7.239,-9.551],[-51.475,33.052],[-38.857,31.424],[-31.1,30.648],[-10.506,15.335],[7.468,-9.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":110,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[7.989,-12.989],[-51.475,33.052],[-38.857,31.424],[-31.1,30.648],[17.244,-9.665],[12.968,-11.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":116,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[28.864,-26.864],[-61.975,42.802],[-49.357,41.174],[-42.1,41.023],[38.119,-23.54],[33.843,-25.313]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":118,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[34.614,-32.489],[-61.975,42.802],[-50.732,44.174],[-42.35,42.273],[43.869,-29.165],[39.593,-30.938]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":119,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[37.239,-34.989],[-61.35,41.677],[-50.107,43.049],[-42.6,43.648],[46.494,-31.665],[42.218,-33.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":121,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[42.489,-40.739],[-58.1,40.365],[-46.857,41.736],[-39.35,42.335],[51.744,-37.415],[47.468,-39.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":122,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[39.614,-40.739],[-56.85,39.24],[-45.607,40.611],[-38.1,41.21],[54.432,-40.603],[48.655,-40.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":131,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[39.614,-40.739],[-44.85,27.865],[-33.607,29.236],[-26.1,29.835],[54.432,-40.603],[48.655,-40.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":132,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[39.614,-40.739],[-39.475,23.865],[-36.232,28.486],[-26.1,29.835],[54.432,-40.603],[48.655,-40.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":133,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[39.614,-40.739],[-34.85,20.115],[-28.982,27.986],[-24.85,28.335],[54.432,-40.603],[48.655,-40.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":134,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[39.614,-40.739],[-29.975,15.615],[-25.857,21.486],[-22.35,26.585],[54.432,-40.603],[48.655,-40.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":135,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[39.614,-40.739],[-25.6,11.615],[-21.482,17.486],[-17.975,22.585],[54.432,-40.603],[48.655,-40.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":136,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[35.989,-37.739],[-21.35,8.115],[-17.232,13.986],[-13.725,19.085],[54.432,-40.603],[44.905,-41.313]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":137,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[29.739,-32.739],[-17.1,4.49],[-12.982,10.361],[-9.475,15.46],[54.432,-40.603],[52.405,-41.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":138,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[21.864,-27.364],[-13.35,1.24],[-9.232,7.111],[-5.725,12.21],[52.432,-38.853],[49.53,-38.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":143,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[2.739,-10.864],[2.775,-11.01],[6.893,-5.139],[10.4,-0.04],[33.307,-22.353],[30.405,-21.688]],"c":true}]},{"t":148,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[13.741,-10.437],[13.742,-10.441],[13.851,-10.285],[13.945,-10.149],[14.555,-10.744],[14.478,-10.726]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[274.242,130.909]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":105,"s":[0]},{"t":106,"s":[83.914],"h":1},{"t":147,"s":[83.914],"h":1},{"t":148,"s":[0],"h":1}]},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":96,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-60.827,30.249],[-60.581,30.003],[-60.803,30.013],[-60.696,30.246],[-61.024,30.252],[-60.684,29.879]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":101,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-7.702,-6.626],[-69.206,35.878],[-36.928,30.638],[-7.571,-6.629],[-7.899,-6.623],[-7.559,-6.996]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":103,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-3.827,-10.876],[-73.456,38.753],[-25.053,30.888],[-24.446,30.871],[4.476,-6.248],[4.816,-6.621]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":104,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-1.452,-12.626],[-73.456,38.753],[-61.928,37.513],[-27.571,32.371],[-1.899,10.752],[11.441,-7.121]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":105,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[1.298,-14.251],[-75.331,40.753],[-63.303,38.263],[-31.696,34.121],[10.726,4.377],[18.816,-7.121]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":106,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[4.298,-16.751],[-75.706,42.003],[-63.678,39.513],[-32.071,35.371],[25.851,-7.623],[12.316,-12.621]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":111,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[19.993,-27.724],[-80.767,47.213],[-61.859,45.068],[-40.283,42.48],[41.545,-18.595],[28.01,-23.593]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":112,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[23.132,-29.918],[-81.929,45.105],[-61.495,46.179],[-41.925,43.902],[44.684,-20.79],[31.149,-25.788]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":113,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[26.27,-32.112],[-80.487,44.018],[-61.131,47.289],[-43.567,45.324],[47.823,-22.984],[34.288,-27.982]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":114,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[29.409,-34.307],[-77.456,42.878],[-48.053,46.972],[-45.21,46.746],[50.962,-25.179],[37.427,-30.177]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":115,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[32.548,-36.501],[-75.706,42.003],[-65.928,43.263],[-44.321,46.621],[54.101,-27.373],[40.566,-32.371]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":116,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[34.923,-38.126],[-73.769,40.828],[-63.991,42.088],[-42.383,45.446],[56.851,-30.623],[38.441,-37.996]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":117,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[34.659,-37.946],[-71.831,39.653],[-62.053,40.913],[-40.446,44.271],[60.67,-33.137],[48.052,-38.121]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":118,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[34.395,-37.765],[-69.894,38.478],[-60.116,39.738],[-38.508,43.096],[63.599,-35.917],[57.741,-37.902]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":119,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[35.382,-38.085],[-67.956,37.303],[-58.178,38.563],[-36.571,41.921],[65.242,-37.946],[55.413,-37.737]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":125,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[34.173,-38.251],[-56.331,30.253],[-46.553,31.513],[-24.946,34.871],[64.476,-37.873],[40.941,-38.121]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":126,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[34.173,-38.251],[-49.706,25.753],[-46.553,31.513],[-24.446,33.746],[64.476,-37.873],[40.941,-38.121]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":127,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[34.173,-38.251],[-44.456,19.378],[-36.928,30.763],[-23.571,31.996],[64.476,-37.873],[40.941,-38.121]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":128,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[34.173,-38.251],[-38.956,14.503],[-27.678,30.513],[-22.946,31.371],[64.476,-37.873],[40.941,-38.121]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":129,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[34.173,-38.251],[-33.081,9.878],[-21.803,26.513],[-19.571,29.496],[64.476,-37.873],[40.941,-38.121]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":130,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[30.423,-34.001],[-27.831,5.003],[-16.553,21.638],[-14.321,24.621],[64.476,-37.873],[40.941,-38.121]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":131,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[18.923,-26.501],[-22.112,1.784],[-11.178,17.826],[-8.946,20.808],[64.476,-37.873],[51.816,-38.496]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":132,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[11.506,-20.626],[-16.394,-1.435],[-5.803,14.013],[-3.571,16.996],[64.476,-37.873],[59.191,-38.621]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":133,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[1.09,-13.314],[-10.675,-4.654],[-0.428,10.201],[1.804,13.183],[64.476,-37.873],[63.441,-37.246]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":134,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-4.827,-8.126],[-4.956,-7.872],[4.947,6.388],[7.179,9.371],[56.976,-31.873],[-4.559,-8.496]],"c":true}]},{"t":139,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[27.923,-8.251],[27.794,-7.997],[27.804,-8.511],[28.137,-7.729],[27.851,-8.123],[28.191,-8.621]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[231.013,128.136]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":95,"s":[0]},{"t":96,"s":[83.914],"h":1},{"t":139,"s":[83.914],"h":1},{"t":140,"s":[0],"h":1}]},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":90,"op":149,"st":36,"bm":0},{"ddd":0,"ind":9,"ty":4,"sr":1,"ks":{"o":{"a":0,"k":60},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[460.47,130.909,0],"to":[0,0,0],"ti":[0,0,0]},{"t":59,"s":[75.47,130.909,0]}]},"a":{"a":0,"k":[246.47,130.909,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-45.667,26.969],[-47.1,28.032],[-46.724,27.986],[-46.408,27.954],[-46.41,27.957],[-45.657,26.971]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-11.511,4.199],[-46.725,30.302],[-37.482,29.174],[-29.725,28.398],[-29.756,28.46],[-11.282,4.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[7.239,-9.551],[-51.475,33.052],[-38.857,31.424],[-31.1,30.648],[-10.506,15.335],[7.468,-9.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[7.989,-12.989],[-51.475,33.052],[-38.857,31.424],[-31.1,30.648],[17.244,-9.665],[12.968,-11.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[28.864,-26.864],[-61.975,42.802],[-49.357,41.174],[-42.1,41.023],[38.119,-23.54],[33.843,-25.313]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[34.614,-32.489],[-61.975,42.802],[-50.732,44.174],[-42.35,42.273],[43.869,-29.165],[39.593,-30.938]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":29,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[37.239,-34.989],[-61.35,41.677],[-50.107,43.049],[-42.6,43.648],[46.494,-31.665],[42.218,-33.438]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[42.489,-40.739],[-58.1,40.365],[-46.857,41.736],[-39.35,42.335],[51.744,-37.415],[47.468,-39.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[39.614,-40.739],[-56.85,39.24],[-45.607,40.611],[-38.1,41.21],[54.432,-40.603],[48.655,-40.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":41,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[39.614,-40.739],[-44.85,27.865],[-33.607,29.236],[-26.1,29.835],[54.432,-40.603],[48.655,-40.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":42,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[39.614,-40.739],[-39.475,23.865],[-36.232,28.486],[-26.1,29.835],[54.432,-40.603],[48.655,-40.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[39.614,-40.739],[-34.85,20.115],[-28.982,27.986],[-24.85,28.335],[54.432,-40.603],[48.655,-40.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":44,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[39.614,-40.739],[-29.975,15.615],[-25.857,21.486],[-22.35,26.585],[54.432,-40.603],[48.655,-40.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[39.614,-40.739],[-25.6,11.615],[-21.482,17.486],[-17.975,22.585],[54.432,-40.603],[48.655,-40.813]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":46,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[35.989,-37.739],[-21.35,8.115],[-17.232,13.986],[-13.725,19.085],[54.432,-40.603],[44.905,-41.313]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":47,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[29.739,-32.739],[-17.1,4.49],[-12.982,10.361],[-9.475,15.46],[54.432,-40.603],[52.405,-41.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":48,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[21.864,-27.364],[-13.35,1.24],[-9.232,7.111],[-5.725,12.21],[52.432,-38.853],[49.53,-38.188]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":53,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[2.739,-10.864],[2.775,-11.01],[6.893,-5.139],[10.4,-0.04],[33.307,-22.353],[30.405,-21.688]],"c":true}]},{"t":58,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[13.741,-10.437],[13.742,-10.441],[13.851,-10.285],[13.945,-10.149],[14.555,-10.744],[14.478,-10.726]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[274.242,130.909]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":15,"s":[0]},{"t":16,"s":[83.914],"h":1},{"t":57,"s":[83.914],"h":1},{"t":58,"s":[0],"h":1}]},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-60.827,30.249],[-60.581,30.003],[-60.803,30.013],[-60.696,30.246],[-61.024,30.252],[-60.684,29.879]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-7.702,-6.626],[-69.206,35.878],[-36.928,30.638],[-7.571,-6.629],[-7.899,-6.623],[-7.559,-6.996]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-3.827,-10.876],[-73.456,38.753],[-25.053,30.888],[-24.446,30.871],[4.476,-6.248],[4.816,-6.621]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-1.452,-12.626],[-73.456,38.753],[-61.928,37.513],[-27.571,32.371],[-1.899,10.752],[11.441,-7.121]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[1.298,-14.251],[-75.331,40.753],[-63.303,38.263],[-31.696,34.121],[10.726,4.377],[18.816,-7.121]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[4.298,-16.751],[-75.706,42.003],[-63.678,39.513],[-32.071,35.371],[25.851,-7.623],[12.316,-12.621]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[19.993,-27.724],[-80.767,47.213],[-61.859,45.068],[-40.283,42.48],[41.545,-18.595],[28.01,-23.593]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[23.132,-29.918],[-81.929,45.105],[-61.495,46.179],[-41.925,43.902],[44.684,-20.79],[31.149,-25.788]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[26.27,-32.112],[-80.487,44.018],[-61.131,47.289],[-43.567,45.324],[47.823,-22.984],[34.288,-27.982]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[29.409,-34.307],[-77.456,42.878],[-48.053,46.972],[-45.21,46.746],[50.962,-25.179],[37.427,-30.177]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[32.548,-36.501],[-75.706,42.003],[-65.928,43.263],[-44.321,46.621],[54.101,-27.373],[40.566,-32.371]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[34.923,-38.126],[-73.769,40.828],[-63.991,42.088],[-42.383,45.446],[56.851,-30.623],[38.441,-37.996]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[34.659,-37.946],[-71.831,39.653],[-62.053,40.913],[-40.446,44.271],[60.67,-33.137],[48.052,-38.121]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[34.395,-37.765],[-69.894,38.478],[-60.116,39.738],[-38.508,43.096],[63.599,-35.917],[57.741,-37.902]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":29,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[35.382,-38.085],[-67.956,37.303],[-58.178,38.563],[-36.571,41.921],[65.242,-37.946],[55.413,-37.737]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":35,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[34.173,-38.251],[-56.331,30.253],[-46.553,31.513],[-24.946,34.871],[64.476,-37.873],[40.941,-38.121]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":36,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[34.173,-38.251],[-49.706,25.753],[-46.553,31.513],[-24.446,33.746],[64.476,-37.873],[40.941,-38.121]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[34.173,-38.251],[-44.456,19.378],[-36.928,30.763],[-23.571,31.996],[64.476,-37.873],[40.941,-38.121]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[34.173,-38.251],[-38.956,14.503],[-27.678,30.513],[-22.946,31.371],[64.476,-37.873],[40.941,-38.121]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":39,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[34.173,-38.251],[-33.081,9.878],[-21.803,26.513],[-19.571,29.496],[64.476,-37.873],[40.941,-38.121]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[30.423,-34.001],[-27.831,5.003],[-16.553,21.638],[-14.321,24.621],[64.476,-37.873],[40.941,-38.121]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":41,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[18.923,-26.501],[-22.112,1.784],[-11.178,17.826],[-8.946,20.808],[64.476,-37.873],[51.816,-38.496]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":42,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[11.506,-20.626],[-16.394,-1.435],[-5.803,14.013],[-3.571,16.996],[64.476,-37.873],[59.191,-38.621]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[1.09,-13.314],[-10.675,-4.654],[-0.428,10.201],[1.804,13.183],[64.476,-37.873],[63.441,-37.246]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":44,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-4.827,-8.126],[-4.956,-7.872],[4.947,6.388],[7.179,9.371],[56.976,-31.873],[-4.559,-8.496]],"c":true}]},{"t":49,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[27.923,-8.251],[27.794,-7.997],[27.804,-8.511],[28.137,-7.729],[27.851,-8.123],[28.191,-8.621]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[231.013,128.136]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":5,"s":[0]},{"t":6,"s":[83.914],"h":1},{"t":49,"s":[83.914],"h":1},{"t":50,"s":[0],"h":1}]},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":59,"st":-54,"bm":0},{"ddd":0,"ind":10,"ty":4,"sr":1,"ks":{"o":{"a":0,"k":38},"p":{"a":0,"k":[258.883,270.477,0]}},"ao":0,"ef":[{"ty":5,"nm":"Refraction3: Path 1 [1.1.0]","np":3,"mn":"ADBE Layer Control","ix":1,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":10}}]},{"ty":5,"nm":"Refraction3: Path 1 [1.1.1]","np":3,"mn":"ADBE Layer Control","ix":2,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":10}}]},{"ty":5,"nm":"Refraction3: Path 1 [1.1.2]","np":3,"mn":"ADBE Layer Control","ix":3,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":10}}]},{"ty":5,"nm":"Refraction3: Path 1 [1.1.3]","np":3,"mn":"ADBE Layer Control","ix":4,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":10}}]},{"ty":5,"nm":"Refraction3: Path 1 [1.1.4]","np":3,"mn":"ADBE Layer Control","ix":5,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":10}}]},{"ty":5,"nm":"Refraction3: Path 1 [1.1.5]","np":3,"mn":"ADBE Layer Control","ix":6,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":10}}]},{"ty":5,"nm":"Refraction3: Path 1 [1.1.6]","np":3,"mn":"ADBE Layer Control","ix":7,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":10}}]},{"ty":5,"nm":"Refraction3: Path 1 [1.1.7]","np":3,"mn":"ADBE Layer Control","ix":8,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":10}}]},{"ty":5,"nm":"Refraction3: Path 1 [1.1.8]","np":3,"mn":"ADBE Layer Control","ix":9,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":10}}]},{"ty":5,"nm":"Refraction3: Path 1 [1.1.9]","np":3,"mn":"ADBE Layer Control","ix":10,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":10}}]},{"ty":5,"nm":"Refraction3: Path 1 [1.1.10]","np":3,"mn":"ADBE Layer Control","ix":11,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":10}}]},{"ty":5,"nm":"Refraction3: Path 1 [1.1.11]","np":3,"mn":"ADBE Layer Control","ix":12,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":10}}]},{"ty":5,"nm":"Refraction3: Path 1 [1.1.12]","np":3,"mn":"ADBE Layer Control","ix":13,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":10}}]},{"ty":5,"nm":"Refraction3: Path 1 [1.1.13]","np":3,"mn":"ADBE Layer Control","ix":14,"en":1,"ef":[{"ty":10,"nm":"Layer","mn":"ADBE Layer Control-0001","ix":1,"v":{"a":0,"k":10}}]}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[158.889,-55.278],[137.002,-29.193],[-4.682,145.322],[-142.382,-24.943],[-166.236,-54.534],[-144.667,-96.556],[-124.267,-136.081],[-91.861,-148.937],[-58.232,-162.165],[-5.798,-162.165],[48.814,-162.165],[85.046,-147.928],[114.743,-136.612],[135.09,-99.159]],"c":true}},"hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[187.438,-58.125],[159.438,-109.75],[135.5,-153.813],[100.563,-167.125],[57.938,-183.875],[-6.313,-183.875],[-68,-183.875],[-107.563,-168.313],[-145.688,-153.188],[-169.688,-106.688],[-195.063,-57.25],[-167,-22.438],[-5,177.875],[161.688,-27.438]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.407843142748,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[5,3]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":-45,"bm":0},{"ddd":0,"ind":11,"ty":4,"parent":23,"sr":1,"ks":{"p":{"a":0,"k":[50,45.136,0]},"a":{"a":0,"k":[2.844,-58.422,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[3.063,-151.813],[-73.688,-114.5],[-92.688,-32.063],[-39.969,34.969],[45.969,34.969],[98.375,-31.875],[79.75,-114.625]],"c":true}},"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[-0.785]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[83]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0.302]},"t":17,"s":[80]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":65,"s":[30]},{"t":71,"s":[30],"h":1},{"i":{"x":[0.667],"y":[-0.785]},"o":{"x":[0.333],"y":[0]},"t":90,"s":[83]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0.302]},"t":107,"s":[80]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":155,"s":[30]},{"t":161,"s":[30],"h":1}]},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[83]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":56,"s":[30]},{"t":71,"s":[30],"h":1},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":90,"s":[83]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":146,"s":[30]},{"t":161,"s":[30],"h":1}]},"o":{"a":0,"k":0},"m":1,"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":25,"s":[7]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":65,"s":[0]},{"t":71,"s":[0],"h":1},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":90,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":115,"s":[7]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":155,"s":[0]},{"t":161,"s":[0],"h":1}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[2.821,-58.482]},"a":{"a":0,"k":[2.821,-58.482]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[3.063,-151.813],[-73.688,-114.5],[-92.688,-32.063],[-39.969,34.969],[45.969,34.969],[98.375,-31.875],[79.75,-114.625]],"c":true}},"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":0,"s":[83]},{"i":{"x":[0.667],"y":[0.405]},"o":{"x":[0.333],"y":[0]},"t":11,"s":[83]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0.308]},"t":28,"s":[74]},{"t":71,"s":[30],"h":1},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":90,"s":[83]},{"i":{"x":[0.667],"y":[0.405]},"o":{"x":[0.333],"y":[0]},"t":101,"s":[83]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0.308]},"t":118,"s":[74]},{"t":161,"s":[30],"h":1}]},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":0,"s":[83]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":11,"s":[83]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":67,"s":[30]},{"t":71,"s":[30],"h":1},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":90,"s":[83]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":101,"s":[83]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":157,"s":[30]},{"t":161,"s":[30],"h":1}]},"o":{"a":0,"k":0},"m":1,"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":11,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":29,"s":[7]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":67,"s":[0]},{"t":71,"s":[0],"h":1},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":90,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":101,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":119,"s":[7]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":157,"s":[0]},{"t":161,"s":[0],"h":1}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[2.821,-58.482]},"a":{"a":0,"k":[2.821,-58.482]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[3.063,-151.813],[-73.688,-114.5],[-92.688,-32.063],[-39.969,34.969],[45.969,34.969],[98.375,-31.875],[79.75,-114.625]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.780392216701,0.917647118662,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":2},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"fl","c":{"a":0,"k":[0.780392156863,0.917395258885,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[2.821,-58.482]},"a":{"a":0,"k":[2.821,-58.482]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"sr":1,"ks":{"p":{"a":0,"k":[256,256,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[87.026,1.269],[2.292,-80.673],[115.252,-97.418]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.42320601635,0.740996802858,0.980320344373,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"sr":1,"ks":{"p":{"a":0,"k":[256,256,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-84.471,0.659],[-111.503,-97.987],[2.292,-80.673]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.771705371356,0.917365882923,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"sr":1,"ks":{"p":{"a":0,"k":[256,256,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[192.985,-39.49],[115.24,-97.422],[144.613,-134.935]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.401431835762,0.701156937215,0.939309183031,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":4,"sr":1,"ks":{"p":{"a":0,"k":[256,256,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-187.998,-40.957],[-111.503,-97.987],[-137.44,-135.961]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.39285218964,0.715820345201,0.934450002022,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":4,"sr":1,"ks":{"p":{"a":0,"k":[256,256,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-111.503,-97.987],[-187.998,-40.957],[-84.471,0.659]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.476593143181,0.817378533559,0.998591971537,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"st","c":{"a":0,"k":[0.476593143181,0.817378533559,0.998591971537,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":2},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"sr":1,"ks":{"p":{"a":0,"k":[256,256,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[115.252,-97.418],[87.026,1.269],[193.006,-39.488]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.477048305085,0.776855779552,0.99823178306,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"st","c":{"a":0,"k":[0.477048305085,0.776855779552,0.99823178306,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":2},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":4,"sr":1,"ks":{"p":{"a":0,"k":[256,256,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.292,-80.673],[-84.471,0.659],[87.026,1.269]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.317647069693,0.68235296011,0.956862807274,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"st","c":{"a":0,"k":[0.317647069693,0.68235296011,0.956862807274,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":2},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":4,"sr":1,"ks":{"p":{"a":0,"k":[256,256,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[87.031,1.25],[193,-39.5]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.201815529306,0.666228074266,0.988046579465,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"st","c":{"a":0,"k":[0.201815529306,0.666228074266,0.988046579465,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":2},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":20,"ty":4,"sr":1,"ks":{"p":{"a":0,"k":[256,256,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-188,-40.938],[-84.5,0.688]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.318858607023,0.755127458619,0.986062703271,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"st","c":{"a":0,"k":[0.318858607023,0.755127458619,0.986062703271,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":2},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":21,"ty":4,"sr":1,"ks":{"p":{"a":0,"k":[256,256,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.668,194.973],[-84.5,0.688],[87,1.25]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.47058826685,0.850980460644,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"st","c":{"a":0,"k":[0.47058826685,0.850980460644,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":2},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":22,"ty":3,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":0,"k":[259,130.5,0]},"a":{"a":0,"k":[50,50,0]},"s":{"a":0,"k":[147.548,45.504,100]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":23,"ty":3,"parent":22,"sr":1,"ks":{"o":{"a":0,"k":0},"r":{"a":0,"k":26.26},"p":{"a":0,"k":[50,50,0]},"a":{"a":0,"k":[50,50,0]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":24,"ty":3,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":0,"k":[259,202.5,0]},"a":{"a":0,"k":[50,50,0]},"s":{"a":0,"k":[199.429,61.504,100]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":25,"ty":3,"parent":24,"sr":1,"ks":{"o":{"a":0,"k":0},"r":{"a":0,"k":0.66},"p":{"a":0,"k":[50,50,0]},"a":{"a":0,"k":[50,50,0]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0}]} \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/wallet_money.tgs b/TMessagesProj/src/main/res/raw/wallet_money.tgs deleted file mode 100644 index c33c535f3..000000000 --- a/TMessagesProj/src/main/res/raw/wallet_money.tgs +++ /dev/null @@ -1 +0,0 @@ -{"tgs":1,"v":"5.5.2","fr":60,"ip":0,"op":180,"w":512,"h":512,"nm":"money","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"sr":1,"ks":{"o":{"a":0,"k":55},"r":{"a":0,"k":-45.291},"p":{"a":0,"k":[604.503,194.239,0]},"a":{"a":0,"k":[173,-184,0]},"s":{"a":0,"k":[131,93.9,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.952941176471,0.971764658012,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":18},"lc":1,"lj":1,"ml":4,"bm":0,"hd":false},{"ty":"fl","c":{"a":0,"k":[0.690195958755,0.690195958755,0.690195958755,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[173,-184],[-37,-184]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.952941179276,0.971764683723,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":-3,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":7.895,"s":[8]},{"t":20,"s":[0]}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":3,"s":[0]},{"t":20,"s":[100]}]},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":-3,"s":[0]},{"t":16,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"hd":false}],"ip":0,"op":20,"st":-33,"bm":0},{"ddd":0,"ind":2,"ty":4,"sr":1,"ks":{"o":{"a":0,"k":55},"r":{"a":0,"k":-45.291},"p":{"a":0,"k":[604.503,194.239,0]},"a":{"a":0,"k":[173,-184,0]},"s":{"a":0,"k":[131,93.9,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.952941176471,0.971764658012,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":18},"lc":1,"lj":1,"ml":4,"bm":0,"hd":false},{"ty":"fl","c":{"a":0,"k":[0.690195958755,0.690195958755,0.690195958755,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[173,-184],[-37,-184]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.952941179276,0.971764683723,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":176,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":186.895,"s":[8]},{"t":199,"s":[0]}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":182,"s":[0]},{"t":199,"s":[100]}]},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":176,"s":[0]},{"t":195,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"hd":false}],"ip":176,"op":179,"st":146,"bm":0},{"ddd":0,"ind":3,"ty":4,"sr":1,"ks":{"o":{"a":0,"k":55},"r":{"a":0,"k":-45.291},"p":{"a":0,"k":[422.503,406.239,0]},"a":{"a":0,"k":[173,-184,0]},"s":{"a":0,"k":[131,93.9,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.952941176471,0.971764658012,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":18},"lc":1,"lj":1,"ml":4,"bm":0,"hd":false},{"ty":"fl","c":{"a":0,"k":[0.690195958755,0.690195958755,0.690195958755,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[173,-184],[-37,-184]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.952941179276,0.971764683723,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":-11,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":-0.105,"s":[8]},{"t":12,"s":[0]}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":-5,"s":[0]},{"t":12,"s":[100]}]},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":-11,"s":[0]},{"t":8,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"hd":false}],"ip":0,"op":12,"st":-41,"bm":0},{"ddd":0,"ind":4,"ty":4,"sr":1,"ks":{"o":{"a":0,"k":55},"r":{"a":0,"k":-45.291},"p":{"a":0,"k":[422.503,406.239,0]},"a":{"a":0,"k":[173,-184,0]},"s":{"a":0,"k":[131,93.9,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.952941176471,0.971764658012,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":18},"lc":1,"lj":1,"ml":4,"bm":0,"hd":false},{"ty":"fl","c":{"a":0,"k":[0.690195958755,0.690195958755,0.690195958755,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[173,-184],[-37,-184]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.952941179276,0.971764683723,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":168,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":178.895,"s":[8]},{"t":191,"s":[0]}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":174,"s":[0]},{"t":191,"s":[100]}]},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":168,"s":[0]},{"t":187,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"hd":false}],"ip":168,"op":179,"st":138,"bm":0},{"ddd":0,"ind":5,"ty":4,"sr":1,"ks":{"o":{"a":0,"k":55},"r":{"a":0,"k":-45.291},"p":{"a":0,"k":[377.503,149.239,0]},"a":{"a":0,"k":[173,-184,0]},"s":{"a":0,"k":[131,93.9,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.952941176471,0.971764658012,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":18},"lc":1,"lj":1,"ml":4,"bm":0,"hd":false},{"ty":"fl","c":{"a":0,"k":[0.690195958755,0.690195958755,0.690195958755,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[173,-184],[-37,-184]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.952941179276,0.971764683723,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":-19,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":-8.105,"s":[8]},{"t":4,"s":[0]}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":-13,"s":[0]},{"t":4,"s":[100]}]},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":-19,"s":[0]},{"t":0,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"hd":false}],"ip":0,"op":4,"st":-49,"bm":0},{"ddd":0,"ind":6,"ty":4,"sr":1,"ks":{"o":{"a":0,"k":55},"r":{"a":0,"k":-45.291},"p":{"a":0,"k":[377.503,149.239,0]},"a":{"a":0,"k":[173,-184,0]},"s":{"a":0,"k":[131,93.9,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.952941176471,0.971764658012,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":18},"lc":1,"lj":1,"ml":4,"bm":0,"hd":false},{"ty":"fl","c":{"a":0,"k":[0.690195958755,0.690195958755,0.690195958755,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[173,-184],[-37,-184]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.952941179276,0.971764683723,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":160,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":170.895,"s":[8]},{"t":183,"s":[0]}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":166,"s":[0]},{"t":183,"s":[100]}]},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":160,"s":[0]},{"t":179,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"hd":false}],"ip":160,"op":179,"st":130,"bm":0},{"ddd":0,"ind":7,"ty":4,"sr":1,"ks":{"o":{"a":0,"k":55},"r":{"a":0,"k":-45.291},"p":{"a":0,"k":[511.503,103.239,0]},"a":{"a":0,"k":[173,-184,0]},"s":{"a":0,"k":[131,93.9,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.952941176471,0.971764658012,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":18},"lc":1,"lj":1,"ml":4,"bm":0,"hd":false},{"ty":"fl","c":{"a":0,"k":[0.690195958755,0.690195958755,0.690195958755,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[173,-184],[-37,-184]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.952941179276,0.971764683723,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":72,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":82.895,"s":[8]},{"t":95,"s":[0]}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":78,"s":[0]},{"t":95,"s":[100]}]},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":72,"s":[0]},{"t":91,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"hd":false}],"ip":72,"op":95,"st":42,"bm":0},{"ddd":0,"ind":8,"ty":4,"sr":1,"ks":{"o":{"a":0,"k":55},"r":{"a":0,"k":-45.291},"p":{"a":0,"k":[462.503,416.239,0]},"a":{"a":0,"k":[173,-184,0]},"s":{"a":0,"k":[131,93.9,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.952941176471,0.971764658012,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":18},"lc":1,"lj":1,"ml":4,"bm":0,"hd":false},{"ty":"fl","c":{"a":0,"k":[0.690195958755,0.690195958755,0.690195958755,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[173,-184],[-37,-184]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.952941179276,0.971764683723,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":56,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":66.895,"s":[8]},{"t":79,"s":[0]}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":62,"s":[0]},{"t":79,"s":[100]}]},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":56,"s":[0]},{"t":75,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"hd":false}],"ip":56,"op":79,"st":26,"bm":0},{"ddd":0,"ind":9,"ty":4,"sr":1,"ks":{"o":{"a":0,"k":55},"r":{"a":0,"k":-45.291},"p":{"a":0,"k":[545.503,149.239,0]},"a":{"a":0,"k":[173,-184,0]},"s":{"a":0,"k":[131,93.9,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.952941176471,0.971764658012,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":18},"lc":1,"lj":1,"ml":4,"bm":0,"hd":false},{"ty":"fl","c":{"a":0,"k":[0.690195958755,0.690195958755,0.690195958755,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[173,-184],[-37,-184]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.952941179276,0.971764683723,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":40,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":50.895,"s":[8]},{"t":63,"s":[0]}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":46,"s":[0]},{"t":63,"s":[100]}]},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":40,"s":[0]},{"t":59,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"hd":false}],"ip":40,"op":63,"st":10,"bm":0},{"ddd":0,"ind":10,"ty":4,"sr":1,"ks":{"o":{"a":0,"k":55},"r":{"a":0,"k":-45.291},"p":{"a":0,"k":[376,278,0]},"a":{"a":0,"k":[173,-184,0]},"s":{"a":0,"k":[131,93.9,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.952941176471,0.971764658012,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":18},"lc":1,"lj":1,"ml":4,"bm":0,"hd":false},{"ty":"fl","c":{"a":0,"k":[0.690195958755,0.690195958755,0.690195958755,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[173,-184],[-37,-184]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.952941179276,0.971764683723,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":24,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":34.895,"s":[8]},{"t":47,"s":[0]}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[0]},{"t":47,"s":[100]}]},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":24,"s":[0]},{"t":43,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"hd":false}],"ip":24,"op":47,"st":-6,"bm":0},{"ddd":0,"ind":11,"ty":4,"sr":1,"ks":{"o":{"a":0,"k":55},"r":{"a":0,"k":-45.291},"p":{"a":0,"k":[619,248,0]},"a":{"a":0,"k":[173,-184,0]},"s":{"a":0,"k":[131,93.9,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.952941176471,0.971764658012,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":18},"lc":1,"lj":1,"ml":4,"bm":0,"hd":false},{"ty":"fl","c":{"a":0,"k":[0.690195958755,0.690195958755,0.690195958755,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[173,-184],[-37,-184]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.952941179276,0.971764683723,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":8,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":18.895,"s":[8]},{"t":31,"s":[0]}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":14,"s":[0]},{"t":31,"s":[100]}]},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":8,"s":[0]},{"t":27,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"hd":false}],"ip":8,"op":31,"st":-22,"bm":0},{"ddd":0,"ind":12,"ty":4,"sr":1,"ks":{"o":{"a":0,"k":55},"r":{"a":0,"k":-45.291},"p":{"a":0,"k":[622,351,0]},"a":{"a":0,"k":[173,-184,0]},"s":{"a":0,"k":[131,93.9,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.952941176471,0.971764658012,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":18},"lc":1,"lj":1,"ml":4,"bm":0,"hd":false},{"ty":"fl","c":{"a":0,"k":[0.690195958755,0.690195958755,0.690195958755,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[173,-184],[-37,-184]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.952941179276,0.971764683723,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":10.895,"s":[8]},{"t":23,"s":[0]}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":6,"s":[0]},{"t":23,"s":[100]}]},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":19,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"hd":false}],"ip":0,"op":23,"st":-30,"bm":0},{"ddd":0,"ind":13,"ty":3,"parent":16,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":0,"k":[-18.182,-14.81,0]},"s":{"a":0,"k":[119.617,148.745,100]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":3,"parent":13,"sr":1,"ks":{"o":{"a":0,"k":0},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":40,"s":[-151.83]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":72,"s":[-161.209]},{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":109,"s":[-142.109]},{"t":158,"s":[-151.83]}]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":3,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":76,"s":[362,378,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[370,394,0],"to":[0,0,0],"ti":[0,0,0]},{"t":136,"s":[362,378,0]}]},"s":{"a":0,"k":[88,88,100]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":3,"parent":15,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-31,"s":[-10,-10,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":0.526},"o":{"x":0.333,"y":0},"t":-11,"s":[-10,10,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0.524},"t":0,"s":[-10,-1.495,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":9,"s":[-10,-10,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":29,"s":[-10,10,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":49,"s":[-10,-10,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":68,"s":[-10,20,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.433,"y":0},"t":87,"s":[-10,-40,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":122,"s":[-10,51.057,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":0.311},"o":{"x":0.54,"y":0},"t":164,"s":[-10,10,0],"to":[0,0,0],"ti":[0,0,0]},{"t":180,"s":[-10,-1.495,0]}]},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":0,"s":[95,105,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":21,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":41,"s":[95,105,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":62,"s":[100,100,100]},{"i":{"x":[0.16,0.16,0.16],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":77,"s":[95,110,100]},{"i":{"x":[0.16,0.16,0.16],"y":[1,1,1]},"o":{"x":[0.33,0.33,0.33],"y":[0,0,0]},"t":102,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.54,0.54,0.54],"y":[0,0,0]},"t":155,"s":[100,100,100]},{"t":180,"s":[95,105,100]}]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"parent":16,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-35,"s":[24]},{"i":{"x":[0.667],"y":[0.734]},"o":{"x":[0.333],"y":[0]},"t":-15,"s":[-24]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0.6]},"t":0,"s":[26.821]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":5,"s":[34.321]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":25,"s":[-42.184]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":45,"s":[24]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":61,"s":[-50]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":75,"s":[25]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":96,"s":[-24.718]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":125,"s":[5.632]},{"i":{"x":[0.667],"y":[0.519]},"o":{"x":[0.54],"y":[0]},"t":155,"s":[-20]},{"t":180,"s":[26.821]}]},"p":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":40,"s":[77.1,24.262,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":72,"s":[77.1,10.508,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.588,"y":0.748},"o":{"x":0.404,"y":0},"t":108,"s":[55.478,26.025,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.561,"y":1},"o":{"x":0.248,"y":0.737},"t":136,"s":[80.919,25.828,0],"to":[0,0,0],"ti":[0,0,0]},{"t":158,"s":[77.1,24.262,0]}]},"a":{"a":0,"k":[77.1,24.262,0]},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":76,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":108,"s":[81.797,100,100]},{"t":136,"s":[100,100,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[12.171,-4.945],[0,0],[9.242,-2.126],[0,0],[9.986,17.473],[6.449,1.455],[-3.524,5.632],[1.474,13.867]],"o":[[0,0],[-12.171,4.945],[0,0],[-9.242,2.126],[0,0],[0,0],[-6.449,-1.455],[0,0],[0,0]],"v":[[232.1,53.081],[222.931,75.331],[198.728,65.786],[187.811,83.522],[169.988,66.319],[144.861,61.147],[128.962,58.095],[124.16,42.773],[110.935,29.389]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[12.424,4.268],[0,0],[8.364,4.469],[0,0],[-3.156,15.137],[5.777,3.214],[-4.968,4.41],[-2.493,13.72]],"o":[[0,0],[-12.424,-4.268],[0,0],[-8.364,-4.469],[0,0],[0,0],[-5.777,-3.214],[0,0],[0,0]],"v":[[204.461,100.277],[182.93,111.028],[170.954,87.931],[151.071,94.13],[150.952,68.962],[136.404,64.409],[125.806,64.122],[128.037,44.645],[117.913,33.087]],"c":false}]},{"i":{"x":0.67,"y":1},"o":{"x":0.333,"y":0},"t":40,"s":[{"i":[[0,0],[12.171,-4.945],[0,0],[9.242,-2.126],[0,0],[9.986,17.473],[6.449,1.455],[-3.524,5.632],[1.474,13.867]],"o":[[0,0],[-12.171,4.945],[0,0],[-9.242,2.126],[0,0],[0,0],[-6.449,-1.455],[0,0],[0,0]],"v":[[232.1,53.081],[222.931,75.331],[198.728,65.786],[187.811,83.522],[169.988,66.319],[144.861,61.147],[128.962,58.095],[124.16,42.773],[110.935,29.389]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.88,"y":0},"t":53,"s":[{"i":[[0,0],[12.424,4.268],[0,0],[8.364,4.469],[0,0],[-3.156,15.137],[5.777,3.214],[-4.968,4.41],[-2.493,13.72]],"o":[[0,0],[-12.424,-4.268],[0,0],[-8.364,-4.469],[0,0],[0,0],[-5.777,-3.214],[0,0],[0,0]],"v":[[204.461,100.277],[182.93,111.028],[170.954,87.931],[151.071,94.13],[150.952,68.962],[136.404,64.409],[125.806,64.122],[128.037,44.645],[117.913,33.087]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":71,"s":[{"i":[[0,0],[10.772,-7.519],[0,0],[8.767,-3.616],[0,0],[9.986,17.473],[6.449,1.455],[-3.524,5.632],[1.474,13.867]],"o":[[0,0],[-10.772,7.519],[0,0],[-8.767,3.616],[0,0],[0,0],[-6.449,-1.455],[0,0],[0,0]],"v":[[238.777,40.616],[234.767,64.345],[209.05,60.401],[198.33,82.445],[177.922,68.406],[144.861,61.147],[128.962,58.095],[124.16,42.773],[110.935,29.389]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79,"s":[{"i":[[0,0],[12.424,4.268],[0,0],[8.364,4.469],[0,0],[-3.156,15.137],[5.777,3.214],[-4.968,4.41],[-2.493,13.72]],"o":[[0,0],[-12.424,-4.268],[0,0],[-8.364,-4.469],[0,0],[0,0],[-5.777,-3.214],[0,0],[0,0]],"v":[[204.461,100.277],[182.93,111.028],[170.954,87.931],[151.071,94.13],[150.952,68.962],[136.404,64.409],[125.806,64.122],[128.037,44.645],[117.913,33.087]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":106,"s":[{"i":[[0,0],[12.171,-4.945],[0,0],[9.242,-2.126],[0,0],[9.986,17.473],[6.449,1.455],[-3.524,5.632],[1.474,13.867]],"o":[[0,0],[-12.171,4.945],[0,0],[-9.242,2.126],[0,0],[0,0],[-6.449,-1.455],[0,0],[0,0]],"v":[[232.1,53.081],[222.931,75.331],[198.728,65.786],[187.811,83.522],[169.988,66.319],[144.861,61.147],[128.962,58.095],[124.16,42.773],[110.935,29.389]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":155,"s":[{"i":[[0,0],[13.124,0.593],[0,0],[9.285,1.931],[0,0],[1.238,15.413],[6.449,1.455],[-3.524,5.632],[1.474,13.867]],"o":[[0,0],[-13.124,-0.593],[0,0],[-9.285,-1.931],[0,0],[0,0],[-6.449,-1.455],[0,0],[0,0]],"v":[[211.5,68.951],[193.872,85.334],[175.872,66.549],[158.543,78.1],[149.583,62.277],[136.094,53.717],[125.844,56.428],[122.495,37.112],[109.525,28.876]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[12.171,-4.945],[0,0],[9.242,-2.126],[0,0],[9.986,17.473],[6.449,1.455],[-3.524,5.632],[1.474,13.867]],"o":[[0,0],[-12.171,4.945],[0,0],[-9.242,2.126],[0,0],[0,0],[-6.449,-1.455],[0,0],[0,0]],"v":[[232.1,53.081],[222.931,75.331],[198.728,65.786],[187.811,83.522],[169.988,66.319],[144.861,61.147],[128.962,58.095],[124.16,42.773],[110.935,29.389]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.549019634724,0.572549045086,0.517647087574,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-10.224,2.482]],"o":[[0,0],[0,0]],"v":[[124.16,42.773],[138.408,33.624]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[-10.509,-0.5]],"o":[[0,0],[0,0]],"v":[[128.037,44.645],[144.286,39.882]],"c":false}]},{"i":{"x":0.67,"y":1},"o":{"x":0.333,"y":0},"t":40,"s":[{"i":[[0,0],[-10.224,2.482]],"o":[[0,0],[0,0]],"v":[[124.16,42.773],[138.408,33.624]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.88,"y":0},"t":53,"s":[{"i":[[0,0],[-10.509,-0.5]],"o":[[0,0],[0,0]],"v":[[128.037,44.645],[144.286,39.882]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":71,"s":[{"i":[[0,0],[-10.224,2.482]],"o":[[0,0],[0,0]],"v":[[124.16,42.773],[138.408,33.624]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79,"s":[{"i":[[0,0],[-10.509,-0.5]],"o":[[0,0],[0,0]],"v":[[128.037,44.645],[144.286,39.882]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":106,"s":[{"i":[[0,0],[-10.224,2.482]],"o":[[0,0],[0,0]],"v":[[124.16,42.773],[138.408,33.624]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":155,"s":[{"i":[[0,0],[-10.224,2.482]],"o":[[0,0],[0,0]],"v":[[122.495,37.112],[136.744,27.963]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[-10.224,2.482]],"o":[[0,0],[0,0]],"v":[[124.16,42.773],[138.408,33.624]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.741176486015,0.752941191196,0.705882370472,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-9.178,7.859]],"o":[[0,0],[0,0]],"v":[[144.861,61.147],[151.447,40.725]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[-11.939,1.86]],"o":[[0,0],[0,0]],"v":[[136.404,64.409],[152.743,50.5]],"c":false}]},{"i":{"x":0.67,"y":1},"o":{"x":0.333,"y":0},"t":40,"s":[{"i":[[0,0],[-9.178,7.859]],"o":[[0,0],[0,0]],"v":[[144.861,61.147],[151.447,40.725]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.88,"y":0},"t":53,"s":[{"i":[[0,0],[-11.939,1.86]],"o":[[0,0],[0,0]],"v":[[136.404,64.409],[152.743,50.5]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":71,"s":[{"i":[[0,0],[-9.178,7.859]],"o":[[0,0],[0,0]],"v":[[144.861,61.147],[151.447,40.725]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79,"s":[{"i":[[0,0],[-11.939,1.86]],"o":[[0,0],[0,0]],"v":[[136.404,64.409],[152.743,50.5]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":106,"s":[{"i":[[0,0],[-9.178,7.859]],"o":[[0,0],[0,0]],"v":[[144.861,61.147],[151.447,40.725]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":155,"s":[{"i":[[0,0],[-10.931,5.149]],"o":[[0,0],[0,0]],"v":[[136.094,53.717],[147.851,35.767]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[-9.178,7.859]],"o":[[0,0],[0,0]],"v":[[144.861,61.147],[151.447,40.725]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.741176486015,0.752941191196,0.705882370472,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-7.667,9.657]],"o":[[0,0],[0,0]],"v":[[169.988,66.319],[176.112,43.607]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[-11.78,3.642]],"o":[[0,0],[0,0]],"v":[[150.952,68.962],[164.811,61.135]],"c":false}]},{"i":{"x":0.67,"y":1},"o":{"x":0.333,"y":0},"t":40,"s":[{"i":[[0,0],[-7.667,9.657]],"o":[[0,0],[0,0]],"v":[[169.988,66.319],[176.112,43.607]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.88,"y":0},"t":53,"s":[{"i":[[0,0],[-11.78,3.642]],"o":[[0,0],[0,0]],"v":[[150.952,68.962],[164.811,61.135]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":71,"s":[{"i":[[0,0],[-5.975,10.786]],"o":[[0,0],[0,0]],"v":[[177.922,68.406],[180.229,44.996]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79,"s":[{"i":[[0,0],[-11.78,3.642]],"o":[[0,0],[0,0]],"v":[[150.952,68.962],[164.811,61.135]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":106,"s":[{"i":[[0,0],[-7.667,9.657]],"o":[[0,0],[0,0]],"v":[[169.988,66.319],[176.112,43.607]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":155,"s":[{"i":[[0,0],[-10.276,6.814]],"o":[[0,0],[0,0]],"v":[[149.583,62.277],[162.427,42.57]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[-7.667,9.657]],"o":[[0,0],[0,0]],"v":[[169.988,66.319],[176.112,43.607]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.741176486015,0.752941191196,0.705882370472,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-2.086,13.821]],"o":[[0,0],[0,0]],"v":[[198.728,65.786],[194.439,42.175]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[-10.653,9.05]],"o":[[0,0],[0,0]],"v":[[170.954,87.931],[183.232,67.313]],"c":false}]},{"i":{"x":0.67,"y":1},"o":{"x":0.333,"y":0},"t":40,"s":[{"i":[[0,0],[-2.086,13.821]],"o":[[0,0],[0,0]],"v":[[198.728,65.786],[194.439,42.175]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.88,"y":0},"t":53,"s":[{"i":[[0,0],[-10.653,9.05]],"o":[[0,0],[0,0]],"v":[[170.954,87.931],[183.232,67.313]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":71,"s":[{"i":[[0,0],[1.029,13.94]],"o":[[0,0],[0,0]],"v":[[209.05,60.401],[199.636,38.327]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79,"s":[{"i":[[0,0],[-10.653,9.05]],"o":[[0,0],[0,0]],"v":[[170.954,87.931],[183.232,67.313]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":106,"s":[{"i":[[0,0],[-2.086,13.821]],"o":[[0,0],[0,0]],"v":[[198.728,65.786],[194.439,42.175]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":155,"s":[{"i":[[0,0],[-7.67,11.685]],"o":[[0,0],[0,0]],"v":[[175.872,66.549],[181.842,43.306]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[-2.086,13.821]],"o":[[0,0],[0,0]],"v":[[198.728,65.786],[194.439,42.175]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.741176486015,0.752941191196,0.705882370472,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[-15.003,13.234],[0.155,11.415],[0,0],[-3.211,11.847],[-14.126,-1.269],[-17.991,3.942],[-21.734,-13.728],[-13.654,-15.901],[-2.071,-24.27],[43.574,62.857],[23.089,-9.45],[-0.24,7.547],[19.837,-0.264],[-3.62,11.163],[15.785,2.795],[0,0],[5.109,5.76]],"o":[[0,0],[-0.123,-9.062],[0,0],[2.939,-10.841],[12.427,1.117],[17.991,-3.942],[21.734,13.728],[13.654,15.901],[2.071,24.27],[0,0],[-20.466,8.376],[0,0],[-20.594,0.274],[0,0],[-24.672,-4.369],[0,0],[-8.31,-9.369]],"v":[[76.391,74.875],[59.069,59.249],[67.83,39.902],[62.117,22.32],[90.897,6.756],[137.583,2.532],[195.253,11.074],[239.875,63.269],[275.849,135.568],[216.093,121.755],[202.518,175.572],[168.101,130.406],[150.532,170.731],[126.26,120.588],[97.967,150.442],[85.726,118.732],[65.594,116.304]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[-15.003,13.234],[0.155,11.415],[0,0],[-3.211,11.847],[-14.126,-1.269],[-23.117,-0.595],[-7.366,-24.629],[0.153,-20.959],[14.384,-19.658],[6.171,40.254],[14.528,7.253],[-2.357,7.173],[8.621,4.185],[-6.619,9.69],[7.638,5.157],[0,0],[5.109,5.76]],"o":[[0,0],[-0.123,-9.062],[0,0],[2.939,-10.841],[12.427,1.117],[23.117,0.595],[7.366,24.629],[-0.153,20.959],[-14.384,19.658],[0,0],[-12.877,-6.429],[0,0],[-8.95,-4.345],[0,0],[-11.938,-8.06],[0,0],[-8.31,-9.369]],"v":[[74.129,67.933],[57.789,53.995],[67.83,39.902],[62.117,22.32],[90.897,6.756],[145.343,5.893],[204.279,44.4],[203.629,113.066],[179.924,208.381],[141.329,167.268],[109.972,195.322],[100.421,155.104],[73.634,162.492],[78.57,131.356],[58.266,136.2],[66.672,108.927],[49.595,110.879]],"c":true}]},{"i":{"x":0.67,"y":1},"o":{"x":0.333,"y":0},"t":40,"s":[{"i":[[-15.003,13.234],[0.155,11.415],[0,0],[-3.211,11.847],[-14.126,-1.269],[-17.991,3.942],[-21.734,-13.728],[-13.654,-15.901],[-2.071,-24.27],[43.574,62.857],[23.089,-9.45],[-0.24,7.547],[19.837,-0.264],[-3.62,11.163],[15.785,2.795],[0,0],[5.109,5.76]],"o":[[0,0],[-0.123,-9.062],[0,0],[2.939,-10.841],[12.427,1.117],[17.991,-3.942],[21.734,13.728],[13.654,15.901],[2.071,24.27],[0,0],[-20.466,8.376],[0,0],[-20.594,0.274],[0,0],[-24.672,-4.369],[0,0],[-8.31,-9.369]],"v":[[76.391,74.875],[59.069,59.249],[67.83,39.902],[62.117,22.32],[90.897,6.756],[137.583,2.532],[195.253,11.074],[239.875,63.269],[275.849,135.568],[216.093,121.755],[202.518,175.572],[168.101,130.406],[150.532,170.731],[126.26,120.588],[97.967,150.442],[85.726,118.732],[65.594,116.304]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.88,"y":0},"t":53,"s":[{"i":[[-15.003,13.234],[0.155,11.415],[0,0],[-3.211,11.847],[-14.126,-1.269],[-23.117,-0.595],[-7.366,-24.629],[0.153,-20.959],[14.384,-19.658],[6.171,40.254],[14.528,7.253],[-2.357,7.173],[8.621,4.185],[-6.619,9.69],[7.638,5.157],[0,0],[5.109,5.76]],"o":[[0,0],[-0.123,-9.062],[0,0],[2.939,-10.841],[12.427,1.117],[23.117,0.595],[7.366,24.629],[-0.153,20.959],[-14.384,19.658],[0,0],[-12.877,-6.429],[0,0],[-8.95,-4.345],[0,0],[-11.938,-8.06],[0,0],[-8.31,-9.369]],"v":[[74.129,67.933],[57.789,53.995],[67.83,39.902],[62.117,22.32],[90.897,6.756],[145.343,5.893],[204.279,44.4],[203.629,113.066],[179.924,208.381],[141.329,167.268],[109.972,195.322],[100.421,155.104],[73.634,162.492],[78.57,131.356],[58.266,136.2],[66.672,108.927],[49.595,110.879]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":71,"s":[{"i":[[-15.003,13.234],[0.155,11.415],[0,0],[-3.211,11.847],[-14.126,-1.269],[-17.991,3.942],[-21.734,-13.728],[-16.839,-12.48],[-7.397,-23.208],[43.574,62.857],[21.221,-13.117],[1.004,7.484],[19.837,-0.264],[-3.62,11.163],[15.785,2.795],[0,0],[5.109,5.76]],"o":[[0,0],[-0.123,-9.062],[0,0],[2.939,-10.841],[12.427,1.117],[17.991,-3.942],[21.734,13.728],[16.839,12.48],[7.397,23.208],[0,0],[-18.81,11.627],[0,0],[-20.594,0.274],[0,0],[-24.672,-4.369],[0,0],[-8.31,-9.369]],"v":[[76.391,74.875],[59.069,59.249],[67.83,39.902],[62.117,22.32],[90.897,6.756],[137.583,2.532],[195.253,11.074],[248.617,48.827],[299.717,111.358],[238.06,118.521],[227.97,170.824],[186.597,131.93],[150.532,170.731],[126.26,120.588],[97.967,150.442],[85.726,118.732],[65.594,116.304]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79,"s":[{"i":[[-15.003,13.234],[0.155,11.415],[0,0],[-3.211,11.847],[-14.126,-1.269],[-23.117,-0.595],[-7.366,-24.629],[0.153,-20.959],[14.384,-19.658],[6.171,40.254],[14.528,7.253],[-2.357,7.173],[8.621,4.185],[-6.619,9.69],[7.638,5.157],[0,0],[5.109,5.76]],"o":[[0,0],[-0.123,-9.062],[0,0],[2.939,-10.841],[12.427,1.117],[23.117,0.595],[7.366,24.629],[-0.153,20.959],[-14.384,19.658],[0,0],[-12.877,-6.429],[0,0],[-8.95,-4.345],[0,0],[-11.938,-8.06],[0,0],[-8.31,-9.369]],"v":[[74.129,67.933],[57.789,53.995],[67.83,39.902],[62.117,22.32],[90.897,6.756],[145.343,5.893],[204.279,44.4],[203.629,113.066],[179.924,208.381],[141.329,167.268],[109.972,195.322],[100.421,155.104],[73.634,162.492],[78.57,131.356],[58.266,136.2],[66.672,108.927],[49.595,110.879]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":106,"s":[{"i":[[-15.003,13.234],[0.155,11.415],[0,0],[-3.211,11.847],[-14.126,-1.269],[-17.991,3.942],[-21.734,-13.728],[-13.654,-15.901],[-2.071,-24.27],[43.574,62.857],[23.089,-9.45],[-0.24,7.547],[19.837,-0.264],[-3.62,11.163],[15.785,2.795],[0,0],[5.109,5.76]],"o":[[0,0],[-0.123,-9.062],[0,0],[2.939,-10.841],[12.427,1.117],[17.991,-3.942],[21.734,13.728],[13.654,15.901],[2.071,24.27],[0,0],[-20.466,8.376],[0,0],[-20.594,0.274],[0,0],[-24.672,-4.369],[0,0],[-8.31,-9.369]],"v":[[76.391,74.875],[59.069,59.249],[67.83,39.902],[62.117,22.32],[90.897,6.756],[137.583,2.532],[195.253,11.074],[239.875,63.269],[275.849,135.568],[216.093,121.755],[202.518,175.572],[168.101,130.406],[150.532,170.731],[126.26,120.588],[97.967,150.442],[85.726,118.732],[65.594,116.304]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":155,"s":[{"i":[[-15.003,13.234],[0.155,11.415],[0,0],[-3.211,11.847],[-14.126,-1.269],[-17.991,3.942],[-14.009,-21.554],[-5.76,-20.152],[8.261,-22.914],[17.265,36.883],[15.983,2.864],[-0.24,7.547],[9.451,1.586],[-3.62,11.163],[8.782,2.795],[0,0],[5.109,5.76]],"o":[[0,0],[-0.123,-9.062],[0,0],[2.939,-10.841],[12.427,1.117],[17.991,-3.942],[14.009,21.554],[5.76,20.152],[-8.261,22.914],[0,0],[-14.167,-2.539],[0,0],[-9.812,-1.646],[0,0],[-13.726,-4.369],[0,0],[-8.31,-9.369]],"v":[[74.129,67.933],[57.789,53.995],[67.83,39.902],[62.117,22.32],[90.897,6.756],[137.583,2.532],[195.578,15.39],[214.307,81.456],[216.777,162.173],[172.666,155.743],[143.986,180.14],[127.129,150.877],[107.939,162.253],[99.472,134.25],[81.389,140.869],[74.791,116.614],[58.182,115.468]],"c":true}]},{"t":180,"s":[{"i":[[-15.003,13.234],[0.155,11.415],[0,0],[-3.211,11.847],[-14.126,-1.269],[-17.991,3.942],[-21.734,-13.728],[-13.654,-15.901],[-2.071,-24.27],[43.574,62.857],[23.089,-9.45],[-0.24,7.547],[19.837,-0.264],[-3.62,11.163],[15.785,2.795],[0,0],[5.109,5.76]],"o":[[0,0],[-0.123,-9.062],[0,0],[2.939,-10.841],[12.427,1.117],[17.991,-3.942],[21.734,13.728],[13.654,15.901],[2.071,24.27],[0,0],[-20.466,8.376],[0,0],[-20.594,0.274],[0,0],[-24.672,-4.369],[0,0],[-8.31,-9.369]],"v":[[76.391,74.875],[59.069,59.249],[67.83,39.902],[62.117,22.32],[90.897,6.756],[137.583,2.532],[195.253,11.074],[239.875,63.269],[275.849,135.568],[216.093,121.755],[202.518,175.572],[168.101,130.406],[150.532,170.731],[126.26,120.588],[97.967,150.442],[85.726,118.732],[65.594,116.304]],"c":true}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.549019634724,0.572549045086,0.517647087574,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-26.071,-0.867]],"o":[[0,0],[0,0]],"v":[[67.83,39.902],[110.244,30.214]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[-26.071,-0.867]],"o":[[0,0],[0,0]],"v":[[67.83,39.902],[106.313,32.242]],"c":false}]},{"i":{"x":0.67,"y":1},"o":{"x":0.333,"y":0},"t":40,"s":[{"i":[[0,0],[-26.071,-0.867]],"o":[[0,0],[0,0]],"v":[[67.83,39.902],[110.244,30.214]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.88,"y":0},"t":53,"s":[{"i":[[0,0],[-26.071,-0.867]],"o":[[0,0],[0,0]],"v":[[67.83,39.902],[106.313,32.242]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":71,"s":[{"i":[[0,0],[-26.071,-0.867]],"o":[[0,0],[0,0]],"v":[[67.83,39.902],[110.244,30.214]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79,"s":[{"i":[[0,0],[-26.071,-0.867]],"o":[[0,0],[0,0]],"v":[[67.83,39.902],[106.313,32.242]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":106,"s":[{"i":[[0,0],[-26.071,-0.867]],"o":[[0,0],[0,0]],"v":[[67.83,39.902],[110.244,30.214]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":155,"s":[{"i":[[0,0],[-26.071,-0.867]],"o":[[0,0],[0,0]],"v":[[67.83,39.902],[106.313,32.242]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[-26.071,-0.867]],"o":[[0,0],[0,0]],"v":[[67.83,39.902],[110.244,30.214]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.741176486015,0.752941191196,0.705882370472,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-28.147,9.136]],"o":[[0,0],[0,0]],"v":[[76.391,74.875],[124.243,43.045]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[-28.452,-5.498]],"o":[[0,0],[0,0]],"v":[[74.129,67.933],[123.117,53.723]],"c":false}]},{"i":{"x":0.67,"y":1},"o":{"x":0.333,"y":0},"t":40,"s":[{"i":[[0,0],[-28.147,9.136]],"o":[[0,0],[0,0]],"v":[[76.391,74.875],[124.243,43.045]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.88,"y":0},"t":53,"s":[{"i":[[0,0],[-28.452,-5.498]],"o":[[0,0],[0,0]],"v":[[74.129,67.933],[123.117,53.723]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":71,"s":[{"i":[[0,0],[-28.147,9.136]],"o":[[0,0],[0,0]],"v":[[76.391,74.875],[124.243,43.045]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79,"s":[{"i":[[0,0],[-28.452,-5.498]],"o":[[0,0],[0,0]],"v":[[74.129,67.933],[123.117,53.723]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":106,"s":[{"i":[[0,0],[-28.147,9.136]],"o":[[0,0],[0,0]],"v":[[76.391,74.875],[124.243,43.045]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":155,"s":[{"i":[[0,0],[-28.849,2.743]],"o":[[0,0],[0,0]],"v":[[74.129,67.933],[120.333,47.209]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[-28.147,9.136]],"o":[[0,0],[0,0]],"v":[[76.391,74.875],[124.243,43.045]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.741176486015,0.752941191196,0.705882370472,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-35.988,20.034]],"o":[[0,0],[0,0]],"v":[[85.726,118.732],[128.962,58.095]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[-33.304,9.327]],"o":[[0,0],[0,0]],"v":[[66.672,108.927],[125.806,64.122]],"c":false}]},{"i":{"x":0.67,"y":1},"o":{"x":0.333,"y":0},"t":40,"s":[{"i":[[0,0],[-35.988,20.034]],"o":[[0,0],[0,0]],"v":[[85.726,118.732],[128.962,58.095]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.88,"y":0},"t":53,"s":[{"i":[[0,0],[-33.304,9.327]],"o":[[0,0],[0,0]],"v":[[66.672,108.927],[125.806,64.122]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":71,"s":[{"i":[[0,0],[-35.988,20.034]],"o":[[0,0],[0,0]],"v":[[85.726,118.732],[128.962,58.095]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79,"s":[{"i":[[0,0],[-33.304,9.327]],"o":[[0,0],[0,0]],"v":[[66.672,108.927],[125.806,64.122]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":106,"s":[{"i":[[0,0],[-35.988,20.034]],"o":[[0,0],[0,0]],"v":[[85.726,118.732],[128.962,58.095]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":155,"s":[{"i":[[0,0],[-35.988,20.034]],"o":[[0,0],[0,0]],"v":[[74.791,116.614],[125.844,56.428]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[-35.988,20.034]],"o":[[0,0],[0,0]],"v":[[85.726,118.732],[128.962,58.095]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.741176486015,0.752941191196,0.705882370472,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-14.162,44.524]],"o":[[0,0],[0,0]],"v":[[126.26,120.588],[144.844,61.748]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[-41.558,18.648]],"o":[[0,0],[0,0]],"v":[[78.57,131.356],[148.802,70.452]],"c":false}]},{"i":{"x":0.67,"y":1},"o":{"x":0.333,"y":0},"t":40,"s":[{"i":[[0,0],[-14.162,44.524]],"o":[[0,0],[0,0]],"v":[[126.26,120.588],[144.844,61.748]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.88,"y":0},"t":53,"s":[{"i":[[0,0],[-41.558,18.648]],"o":[[0,0],[0,0]],"v":[[78.57,131.356],[148.802,70.452]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":71,"s":[{"i":[[0,0],[-14.162,44.524]],"o":[[0,0],[0,0]],"v":[[126.26,120.588],[144.844,61.748]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79,"s":[{"i":[[0,0],[-41.558,18.648]],"o":[[0,0],[0,0]],"v":[[78.57,131.356],[148.802,70.452]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":106,"s":[{"i":[[0,0],[-14.162,44.524]],"o":[[0,0],[0,0]],"v":[[126.26,120.588],[144.844,61.748]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":155,"s":[{"i":[[0,0],[-34.372,27.435]],"o":[[0,0],[0,0]],"v":[[99.472,134.25],[143.716,63.79]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[-14.162,44.524]],"o":[[0,0],[0,0]],"v":[[126.26,120.588],[144.844,61.748]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.741176486015,0.752941191196,0.705882370472,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-11.441,40.396]],"o":[[0,0],[0,0]],"v":[[167.759,131.345],[170.701,67.764]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[-31.201,28.848]],"o":[[0,0],[0,0]],"v":[[100.421,155.104],[145.291,92.518]],"c":false}]},{"i":{"x":0.67,"y":1},"o":{"x":0.333,"y":0},"t":40,"s":[{"i":[[0,0],[-11.441,40.396]],"o":[[0,0],[0,0]],"v":[[167.759,131.345],[170.701,67.764]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.88,"y":0},"t":53,"s":[{"i":[[0,0],[-31.201,28.848]],"o":[[0,0],[0,0]],"v":[[100.421,155.104],[145.291,92.518]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":71,"s":[{"i":[[0,0],[-4.644,41.728]],"o":[[0,0],[0,0]],"v":[[186.414,132.913],[178.862,69.713]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79,"s":[{"i":[[0,0],[-31.201,28.848]],"o":[[0,0],[0,0]],"v":[[100.421,155.104],[145.291,92.518]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":106,"s":[{"i":[[0,0],[-11.441,40.396]],"o":[[0,0],[0,0]],"v":[[167.759,131.345],[170.701,67.764]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":155,"s":[{"i":[[0,0],[-21.806,36.471]],"o":[[0,0],[0,0]],"v":[[127.129,150.877],[152.543,78.181]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[-11.441,40.396]],"o":[[0,0],[0,0]],"v":[[167.759,131.345],[170.701,67.764]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.741176486015,0.752941191196,0.705882370472,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[16.497,40.112]],"o":[[0,0],[0,0]],"v":[[216.093,121.755],[195.517,76.607]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[-18.923,39.673]],"o":[[0,0],[0,0]],"v":[[141.329,167.268],[161.424,93.979]],"c":false}]},{"i":{"x":0.67,"y":1},"o":{"x":0.333,"y":0},"t":40,"s":[{"i":[[0,0],[16.497,40.112]],"o":[[0,0],[0,0]],"v":[[216.093,121.755],[195.517,76.607]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.88,"y":0},"t":53,"s":[{"i":[[0,0],[-18.923,39.673]],"o":[[0,0],[0,0]],"v":[[141.329,167.268],[161.424,93.979]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":71,"s":[{"i":[[0,0],[22.867,36.854]],"o":[[0,0],[0,0]],"v":[[238.06,118.521],[204.794,74.357]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79,"s":[{"i":[[0,0],[-18.923,39.673]],"o":[[0,0],[0,0]],"v":[[141.329,167.268],[161.424,93.979]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":106,"s":[{"i":[[0,0],[16.497,40.112]],"o":[[0,0],[0,0]],"v":[[216.093,121.755],[195.517,76.607]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":155,"s":[{"i":[[0,0],[-6.975,43.398]],"o":[[0,0],[0,0]],"v":[[172.666,155.743],[168.433,75.038]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[16.497,40.112]],"o":[[0,0],[0,0]],"v":[[216.093,121.755],[195.517,76.607]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.741176486015,0.752941191196,0.705882370472,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[-2.072,-24.269],[17.524,6.625],[0.881,11.687],[12.433,14.258],[19.906,12.203],[16.693,-3.557],[12.599,-0.131],[4.176,-8.388],[-0.825,2.582],[-12.499,0.13],[-17.998,3.945],[-21.736,-13.732],[-13.652,-15.907]],"o":[[1.581,18.521],[7.487,-2.56],[-1.655,-21.953],[-12.433,-14.258],[-19.906,-12.203],[-16.683,3.557],[-10.599,0.104],[-0.297,-1.996],[3.656,-11.361],[13.59,-0.135],[17.988,-3.945],[21.729,13.728],[13.65,15.905]],"v":[[275.847,135.564],[252.274,160.368],[262.09,136.869],[229.66,71.769],[189.038,24.973],[130.341,13.86],[84.817,17.55],[60.386,29.373],[61.053,22.504],[88.499,6.609],[137.588,2.531],[195.254,11.077],[239.876,63.267]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[14.382,-19.658],[8.859,16.508],[-7.014,9.389],[0.006,18.918],[6.99,22.278],[21.43,0.648],[12.599,-0.131],[4.176,-8.388],[-0.825,2.582],[-12.499,0.13],[-23.126,-0.591],[-7.365,-24.633],[0.158,-20.961]],"o":[[-10.976,15.002],[7.326,2.989],[13.175,-17.638],[-0.006,-18.918],[-6.99,-22.278],[-21.417,-0.648],[-10.599,0.104],[-0.297,-1.996],[3.656,-11.361],[13.59,-0.135],[23.113,0.591],[7.363,24.625],[-0.158,20.958]],"v":[[179.925,208.377],[149.185,194.416],[172.023,183.149],[190.344,112.763],[190.462,50.795],[134.131,15.207],[84.817,17.55],[60.386,29.373],[61.053,22.504],[88.499,6.609],[145.348,5.893],[204.278,44.403],[203.631,113.065]],"c":true}]},{"i":{"x":0.67,"y":1},"o":{"x":0.333,"y":0},"t":40,"s":[{"i":[[-2.072,-24.269],[17.524,6.625],[0.881,11.687],[12.433,14.258],[19.906,12.203],[16.693,-3.557],[12.599,-0.131],[4.176,-8.388],[-0.825,2.582],[-12.499,0.13],[-17.998,3.945],[-21.736,-13.732],[-13.652,-15.907]],"o":[[1.581,18.521],[7.487,-2.56],[-1.655,-21.953],[-12.433,-14.258],[-19.906,-12.203],[-16.683,3.557],[-10.599,0.104],[-0.297,-1.996],[3.656,-11.361],[13.59,-0.135],[17.988,-3.945],[21.729,13.728],[13.65,15.905]],"v":[[275.847,135.564],[252.274,160.368],[262.09,136.869],[229.66,71.769],[189.038,24.973],[130.341,13.86],[84.817,17.55],[60.386,29.373],[61.053,22.504],[88.499,6.609],[137.588,2.531],[195.254,11.077],[239.876,63.267]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.88,"y":0},"t":53,"s":[{"i":[[14.382,-19.658],[8.859,16.508],[-7.014,9.389],[0.006,18.918],[6.99,22.278],[21.43,0.648],[12.599,-0.131],[4.176,-8.388],[-0.825,2.582],[-12.499,0.13],[-23.126,-0.591],[-7.365,-24.633],[0.158,-20.961]],"o":[[-10.976,15.002],[7.326,2.989],[13.175,-17.638],[-0.006,-18.918],[-6.99,-22.278],[-21.417,-0.648],[-10.599,0.104],[-0.297,-1.996],[3.656,-11.361],[13.59,-0.135],[23.113,0.591],[7.363,24.625],[-0.158,20.958]],"v":[[179.925,208.377],[149.185,194.416],[172.023,183.149],[190.344,112.763],[190.462,50.795],[134.131,15.207],[84.817,17.55],[60.386,29.373],[61.053,22.504],[88.499,6.609],[145.348,5.893],[204.278,44.403],[203.631,113.065]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":71,"s":[{"i":[[-7.399,-23.207],[10.511,-3.607],[3.449,11.201],[15.284,11.148],[19.906,12.203],[16.693,-3.557],[12.599,-0.131],[4.176,-8.388],[-0.825,2.582],[-12.499,0.13],[-17.998,3.945],[-21.736,-13.732],[-16.837,-12.486]],"o":[[5.646,17.71],[6.733,-4.155],[-6.479,-21.041],[-15.284,-11.148],[-19.906,-12.203],[-16.683,3.557],[-10.599,0.104],[-0.297,-1.996],[3.656,-11.361],[13.59,-0.135],[17.988,-3.945],[21.729,13.728],[16.835,12.485]],"v":[[299.715,111.354],[285.473,147.524],[286.589,115.676],[240.539,59.38],[189.038,24.973],[130.341,13.86],[84.817,17.55],[60.386,29.373],[61.053,22.504],[88.499,6.609],[137.588,2.531],[195.254,11.077],[248.617,48.825]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79,"s":[{"i":[[14.382,-19.658],[8.859,16.508],[-7.014,9.389],[0.006,18.918],[6.99,22.278],[21.43,0.648],[12.599,-0.131],[4.176,-8.388],[-0.825,2.582],[-12.499,0.13],[-23.126,-0.591],[-7.365,-24.633],[0.158,-20.961]],"o":[[-10.976,15.002],[7.326,2.989],[13.175,-17.638],[-0.006,-18.918],[-6.99,-22.278],[-21.417,-0.648],[-10.599,0.104],[-0.297,-1.996],[3.656,-11.361],[13.59,-0.135],[23.113,0.591],[7.363,24.625],[-0.158,20.958]],"v":[[179.925,208.377],[149.185,194.416],[172.023,183.149],[190.344,112.763],[190.462,50.795],[134.131,15.207],[84.817,17.55],[60.386,29.373],[61.053,22.504],[88.499,6.609],[145.348,5.893],[204.278,44.403],[203.631,113.065]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":106,"s":[{"i":[[-2.072,-24.269],[17.524,6.625],[0.881,11.687],[12.433,14.258],[19.906,12.203],[16.693,-3.557],[12.599,-0.131],[4.176,-8.388],[-0.825,2.582],[-12.499,0.13],[-17.998,3.945],[-21.736,-13.732],[-13.652,-15.907]],"o":[[1.581,18.521],[7.487,-2.56],[-1.655,-21.953],[-12.433,-14.258],[-19.906,-12.203],[-16.683,3.557],[-10.599,0.104],[-0.297,-1.996],[3.656,-11.361],[13.59,-0.135],[17.988,-3.945],[21.729,13.728],[13.65,15.905]],"v":[[275.847,135.564],[252.274,160.368],[262.09,136.869],[229.66,71.769],[189.038,24.973],[130.341,13.86],[84.817,17.55],[60.386,29.373],[61.053,22.504],[88.499,6.609],[137.588,2.531],[195.254,11.077],[239.876,63.267]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":155,"s":[{"i":[[8.259,-22.915],[13.152,13.342],[-4.08,10.986],[5.337,18.149],[12.985,19.405],[16.693,-3.557],[12.599,-0.131],[4.176,-8.388],[-0.825,2.582],[-12.499,0.13],[-17.998,3.945],[-14.005,-21.562],[-5.765,-20.153]],"o":[[-6.303,17.487],[7.872,0.803],[7.67,-20.636],[-5.338,-18.149],[-12.985,-19.405],[-16.683,3.557],[-10.599,0.104],[-0.297,-1.996],[3.656,-11.361],[13.59,-0.135],[17.988,-3.945],[14.004,21.551],[5.755,20.154]],"v":[[216.777,162.168],[184.996,174.852],[203.733,157.605],[201.475,84.909],[184.124,25.42],[130.341,13.86],[84.817,17.55],[60.386,29.373],[61.053,22.504],[88.499,6.609],[137.588,2.531],[195.578,15.393],[214.309,81.454]],"c":true}]},{"t":180,"s":[{"i":[[-2.072,-24.269],[17.524,6.625],[0.881,11.687],[12.433,14.258],[19.906,12.203],[16.693,-3.557],[12.599,-0.131],[4.176,-8.388],[-0.825,2.582],[-12.499,0.13],[-17.998,3.945],[-21.736,-13.732],[-13.652,-15.907]],"o":[[1.581,18.521],[7.487,-2.56],[-1.655,-21.953],[-12.433,-14.258],[-19.906,-12.203],[-16.683,3.557],[-10.599,0.104],[-0.297,-1.996],[3.656,-11.361],[13.59,-0.135],[17.988,-3.945],[21.729,13.728],[13.65,15.905]],"v":[[275.847,135.564],[252.274,160.368],[262.09,136.869],[229.66,71.769],[189.038,24.973],[130.341,13.86],[84.817,17.55],[60.386,29.373],[61.053,22.504],[88.499,6.609],[137.588,2.531],[195.254,11.077],[239.876,63.267]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.992156863213,0.984313726425,0.949019610882,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[-15.003,13.234],[0.119,9.503],[0,0],[-3.755,11.686],[-12.504,0.129],[-17.991,3.942],[-21.734,-13.728],[-13.654,-15.901],[-2.071,-24.27],[43.36,64.907],[23.089,-9.45],[-0.24,7.547],[19.837,-0.264],[-3.62,11.163],[15.785,2.795],[0,0],[5.109,5.76]],"o":[[0,0],[-0.113,-9.062],[0,0],[3.652,-11.365],[13.584,-0.14],[17.991,-3.942],[21.734,13.728],[13.654,15.901],[2.071,24.27],[0,0],[-20.466,8.376],[0,0],[-20.594,0.274],[0,0],[-24.672,-4.369],[0,0],[-8.31,-9.369]],"v":[[76.391,74.875],[59.069,59.249],[67.83,39.902],[61.056,22.506],[88.5,6.611],[137.583,2.532],[195.253,11.074],[239.875,63.269],[275.849,135.568],[216.093,121.755],[202.518,175.572],[167.759,131.345],[150.532,170.731],[126.26,120.588],[97.967,150.442],[85.726,118.732],[65.594,116.304]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[-15.003,13.234],[0.119,9.503],[0,0],[-3.755,11.686],[-12.504,0.129],[-23.117,-0.595],[-7.366,-24.629],[0.153,-20.959],[14.384,-19.658],[6.171,40.254],[14.528,7.253],[-2.357,7.173],[8.621,4.185],[-6.619,9.69],[7.638,5.157],[0,0],[5.109,5.76]],"o":[[0,0],[-0.113,-9.062],[0,0],[3.652,-11.365],[13.584,-0.14],[23.117,0.595],[7.366,24.629],[-0.153,20.959],[-14.384,19.658],[0,0],[-12.877,-6.429],[0,0],[-8.95,-4.345],[0,0],[-11.938,-8.06],[0,0],[-8.31,-9.369]],"v":[[74.129,67.933],[57.789,53.995],[67.83,39.902],[61.056,22.506],[88.5,6.611],[145.343,5.893],[204.279,44.4],[203.629,113.066],[179.924,208.381],[141.329,167.268],[109.972,195.322],[100.421,155.104],[73.634,162.492],[78.57,131.356],[58.266,136.2],[66.672,108.927],[49.595,110.879]],"c":true}]},{"i":{"x":0.67,"y":1},"o":{"x":0.333,"y":0},"t":40,"s":[{"i":[[-15.003,13.234],[0.119,9.503],[0,0],[-3.755,11.686],[-12.504,0.129],[-17.991,3.942],[-21.734,-13.728],[-13.654,-15.901],[-2.071,-24.27],[43.36,64.907],[23.089,-9.45],[-0.24,7.547],[19.837,-0.264],[-3.62,11.163],[15.785,2.795],[0,0],[5.109,5.76]],"o":[[0,0],[-0.113,-9.062],[0,0],[3.652,-11.365],[13.584,-0.14],[17.991,-3.942],[21.734,13.728],[13.654,15.901],[2.071,24.27],[0,0],[-20.466,8.376],[0,0],[-20.594,0.274],[0,0],[-24.672,-4.369],[0,0],[-8.31,-9.369]],"v":[[76.391,74.875],[59.069,59.249],[67.83,39.902],[61.056,22.506],[88.5,6.611],[137.583,2.532],[195.253,11.074],[239.875,63.269],[275.849,135.568],[216.093,121.755],[202.518,175.572],[167.759,131.345],[150.532,170.731],[126.26,120.588],[97.967,150.442],[85.726,118.732],[65.594,116.304]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.88,"y":0},"t":53,"s":[{"i":[[-15.003,13.234],[0.119,9.503],[0,0],[-3.755,11.686],[-12.504,0.129],[-23.117,-0.595],[-7.366,-24.629],[0.153,-20.959],[14.384,-19.658],[6.171,40.254],[14.528,7.253],[-2.357,7.173],[8.621,4.185],[-6.619,9.69],[7.638,5.157],[0,0],[5.109,5.76]],"o":[[0,0],[-0.113,-9.062],[0,0],[3.652,-11.365],[13.584,-0.14],[23.117,0.595],[7.366,24.629],[-0.153,20.959],[-14.384,19.658],[0,0],[-12.877,-6.429],[0,0],[-8.95,-4.345],[0,0],[-11.938,-8.06],[0,0],[-8.31,-9.369]],"v":[[74.129,67.933],[57.789,53.995],[67.83,39.902],[61.056,22.506],[88.5,6.611],[145.343,5.893],[204.279,44.4],[203.629,113.066],[179.924,208.381],[141.329,167.268],[109.972,195.322],[100.421,155.104],[73.634,162.492],[78.57,131.356],[58.266,136.2],[66.672,108.927],[49.595,110.879]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":71,"s":[{"i":[[-15.003,13.234],[0.119,9.503],[0,0],[-3.755,11.686],[-12.504,0.129],[-17.991,3.942],[-21.734,-13.728],[-16.839,-12.48],[-7.397,-23.208],[43.36,64.907],[21.221,-13.117],[1.004,7.484],[19.837,-0.264],[-3.62,11.163],[15.785,2.795],[0,0],[5.109,5.76]],"o":[[0,0],[-0.113,-9.062],[0,0],[3.652,-11.365],[13.584,-0.14],[17.991,-3.942],[21.734,13.728],[16.839,12.48],[7.397,23.208],[0,0],[-18.81,11.627],[0,0],[-20.594,0.274],[0,0],[-24.672,-4.369],[0,0],[-8.31,-9.369]],"v":[[76.391,74.875],[59.069,59.249],[67.83,39.902],[61.056,22.506],[88.5,6.611],[137.583,2.532],[195.253,11.074],[248.617,48.827],[299.717,111.358],[238.06,118.521],[227.97,170.824],[186.414,132.913],[150.532,170.731],[126.26,120.588],[97.967,150.442],[85.726,118.732],[65.594,116.303]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79,"s":[{"i":[[-15.003,13.234],[0.119,9.503],[0,0],[-3.755,11.686],[-12.504,0.129],[-23.117,-0.595],[-7.366,-24.629],[0.153,-20.959],[14.384,-19.658],[6.171,40.254],[14.528,7.253],[-2.357,7.173],[8.621,4.185],[-6.619,9.69],[7.638,5.157],[0,0],[5.109,5.76]],"o":[[0,0],[-0.113,-9.062],[0,0],[3.652,-11.365],[13.584,-0.14],[23.117,0.595],[7.366,24.629],[-0.153,20.959],[-14.384,19.658],[0,0],[-12.877,-6.429],[0,0],[-8.95,-4.345],[0,0],[-11.938,-8.06],[0,0],[-8.31,-9.369]],"v":[[74.129,67.933],[57.789,53.995],[67.83,39.902],[61.056,22.506],[88.5,6.611],[145.343,5.893],[204.279,44.4],[203.629,113.066],[179.924,208.381],[141.329,167.268],[109.972,195.322],[100.421,155.104],[73.634,162.492],[78.57,131.356],[58.266,136.2],[66.672,108.927],[49.595,110.879]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":106,"s":[{"i":[[-15.003,13.234],[0.119,9.503],[0,0],[-3.755,11.686],[-12.504,0.129],[-17.991,3.942],[-21.734,-13.728],[-13.654,-15.901],[-2.071,-24.27],[43.36,64.907],[23.089,-9.45],[-0.24,7.547],[19.837,-0.264],[-3.62,11.163],[15.785,2.795],[0,0],[5.109,5.76]],"o":[[0,0],[-0.113,-9.062],[0,0],[3.652,-11.365],[13.584,-0.14],[17.991,-3.942],[21.734,13.728],[13.654,15.901],[2.071,24.27],[0,0],[-20.466,8.376],[0,0],[-20.594,0.274],[0,0],[-24.672,-4.369],[0,0],[-8.31,-9.369]],"v":[[76.391,74.875],[59.069,59.249],[67.83,39.902],[61.056,22.506],[88.5,6.611],[137.583,2.532],[195.253,11.074],[239.875,63.269],[275.849,135.568],[216.093,121.755],[202.518,175.572],[167.759,131.345],[150.532,170.731],[126.26,120.588],[97.967,150.442],[85.726,118.732],[65.594,116.304]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":155,"s":[{"i":[[-15.003,13.234],[0.119,9.503],[0,0],[-3.755,11.686],[-12.504,0.129],[-17.991,3.942],[-14.009,-21.554],[-5.76,-20.152],[8.261,-22.914],[17.265,36.883],[15.983,2.864],[-0.24,7.547],[9.451,1.586],[-3.62,11.163],[8.782,2.795],[0,0],[5.109,5.76]],"o":[[0,0],[-0.113,-9.062],[0,0],[3.652,-11.365],[13.584,-0.14],[17.991,-3.942],[14.009,21.554],[5.76,20.152],[-8.261,22.914],[0,0],[-14.167,-2.539],[0,0],[-9.812,-1.646],[0,0],[-13.726,-4.369],[0,0],[-8.31,-9.369]],"v":[[74.129,67.933],[57.789,53.995],[67.83,39.902],[61.056,22.506],[88.5,6.611],[137.583,2.532],[195.578,15.39],[214.307,81.456],[216.777,162.173],[172.666,155.743],[143.986,180.14],[127.129,150.877],[107.939,162.253],[99.472,134.25],[81.389,140.869],[74.791,116.614],[58.182,115.468]],"c":true}]},{"t":180,"s":[{"i":[[-15.003,13.234],[0.119,9.503],[0,0],[-3.755,11.686],[-12.504,0.129],[-17.991,3.942],[-21.734,-13.728],[-13.654,-15.901],[-2.071,-24.27],[43.36,64.907],[23.089,-9.45],[-0.24,7.547],[19.837,-0.264],[-3.62,11.163],[15.785,2.795],[0,0],[5.109,5.76]],"o":[[0,0],[-0.113,-9.062],[0,0],[3.652,-11.365],[13.584,-0.14],[17.991,-3.942],[21.734,13.728],[13.654,15.901],[2.071,24.27],[0,0],[-20.466,8.376],[0,0],[-20.594,0.274],[0,0],[-24.672,-4.369],[0,0],[-8.31,-9.369]],"v":[[76.391,74.875],[59.069,59.249],[67.83,39.902],[61.056,22.506],[88.5,6.611],[137.583,2.532],[195.253,11.074],[239.875,63.269],[275.849,135.568],[216.093,121.755],[202.518,175.572],[167.759,131.345],[150.532,170.731],[126.26,120.588],[97.967,150.442],[85.726,118.732],[65.594,116.304]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.929411768913,0.92549020052,0.882352948189,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":4,"parent":14,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[146.83]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":20,"s":[151.83]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":40,"s":[146.83]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":62,"s":[151.83]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":82,"s":[146.83]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":101,"s":[151.83]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":124,"s":[146.83]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.54],"y":[0]},"t":153,"s":[151.83]},{"t":180,"s":[146.83]}]},"p":{"a":1,"k":[{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":-15,"s":[-13.575,-8.719,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":0,"s":[-13.575,-8.719,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":5,"s":[-13.575,-8.719,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":25,"s":[-16.749,-14.646,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":57,"s":[-13.575,-8.719,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":77,"s":[-16.749,-14.646,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":108,"s":[-13.575,-8.719,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.167,"y":0.167},"t":136,"s":[-16.749,-14.646,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.54,"y":0},"t":157,"s":[-16.749,-14.646,0],"to":[0,0,0],"ti":[0,0,0]},{"t":180,"s":[-13.575,-8.719,0]}]},"a":{"a":0,"k":[-8.791,6.156,0]},"s":{"a":0,"k":[83.488,67.32,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[0,0],[16.179,-27.898]],"o":[[-23.944,25.48],[0,0]],"v":[[96.444,7.575],[47.019,84.717]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[16.179,-27.898]],"o":[[-19.358,26.112],[0,0]],"v":[[96.123,-0.957],[47.019,84.717]],"c":false}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[0,0],[16.179,-27.898]],"o":[[-23.944,25.48],[0,0]],"v":[[96.444,7.575],[47.019,84.717]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":62,"s":[{"i":[[0,0],[16.179,-27.898]],"o":[[-19.358,26.112],[0,0]],"v":[[96.123,-0.957],[47.019,84.717]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":76,"s":[{"i":[[0,0],[16.179,-27.898]],"o":[[-23.944,25.48],[0,0]],"v":[[96.444,7.575],[47.019,84.717]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[{"i":[[0,0],[17.861,-26.216]],"o":[[-20.328,25.143],[0,0]],"v":[[95.449,-8.007],[37.925,70.059]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136,"s":[{"i":[[0,0],[16.179,-27.898]],"o":[[-21.172,25.862],[0,0]],"v":[[96.25,2.418],[47.019,84.717]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":157,"s":[{"i":[[0,0],[16.179,-27.898]],"o":[[-19.829,26.047],[0,0]],"v":[[96.155,-0.082],[47.019,84.717]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[16.179,-27.898]],"o":[[-23.944,25.48],[0,0]],"v":[[96.444,7.575],[47.019,84.717]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.478431373835,0.443137258291,0.239215686917,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[0,0],[-21.168,30.121]],"o":[[12.985,-21.803],[0,0]],"v":[[-100.715,-21.996],[-51.256,-101.786]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[-19.896,30.975]],"o":[[13.874,-21.248],[0,0]],"v":[[-99.254,-21.231],[-55.484,-105.059]],"c":false}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[0,0],[-21.168,30.121]],"o":[[12.985,-21.803],[0,0]],"v":[[-100.715,-21.996],[-51.256,-101.786]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":62,"s":[{"i":[[0,0],[-19.896,30.975]],"o":[[13.874,-21.248],[0,0]],"v":[[-99.254,-21.231],[-55.484,-105.059]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":76,"s":[{"i":[[0,0],[-21.168,30.121]],"o":[[12.985,-21.803],[0,0]],"v":[[-100.715,-21.996],[-51.256,-101.786]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[{"i":[[0,0],[-21.486,29.385]],"o":[[14.932,-20.19],[0,0]],"v":[[-77.992,-4.137],[-28.472,-82.216]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136,"s":[{"i":[[0,0],[-20.399,30.637]],"o":[[13.522,-21.468],[0,0]],"v":[[-99.832,-21.534],[-53.811,-103.765]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":157,"s":[{"i":[[0,0],[-20.027,30.888]],"o":[[13.783,-21.305],[0,0]],"v":[[-99.404,-21.309],[-55.05,-104.724]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[-21.168,30.121]],"o":[[12.985,-21.803],[0,0]],"v":[[-100.715,-21.996],[-51.256,-101.786]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.584313750267,0.552941203117,0.352941185236,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[38.768,-56.508],[45.684,-51.466]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[38.768,-56.508],[45.684,-51.466]],"c":false}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[38.768,-56.508],[45.684,-51.466]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":62,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[38.768,-56.508],[45.684,-51.466]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":76,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[38.768,-56.508],[45.684,-51.466]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[45.284,-54.16],[50.484,-50.834]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[38.768,-56.508],[45.684,-51.466]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":157,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[38.768,-56.508],[45.684,-51.466]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[38.768,-56.508],[45.684,-51.466]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[52.855,-46.238],[55.11,-44.594]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[52.855,-46.238],[55.11,-44.594]],"c":false}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[52.855,-46.238],[55.11,-44.594]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":62,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[52.855,-46.238],[55.11,-44.594]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":76,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[52.855,-46.238],[55.11,-44.594]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[55.875,-47.386],[57.571,-46.301]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[52.855,-46.238],[55.11,-44.594]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":157,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[52.855,-46.238],[55.11,-44.594]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[52.855,-46.238],[55.11,-44.594]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[0,0],[14.087,-23.755]],"o":[[-25.432,25.857],[0,0]],"v":[[76.821,-18.218],[29.94,64.311]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[15.382,-24.728]],"o":[[-21.541,34.612],[0,0]],"v":[[77.609,-22.094],[30.357,64.45]],"c":false}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[0,0],[14.087,-23.755]],"o":[[-25.432,25.857],[0,0]],"v":[[76.821,-18.218],[29.94,64.311]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":62,"s":[{"i":[[0,0],[15.382,-24.728]],"o":[[-21.541,34.612],[0,0]],"v":[[77.609,-22.094],[30.357,64.45]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":76,"s":[{"i":[[0,0],[14.087,-23.755]],"o":[[-25.432,25.857],[0,0]],"v":[[76.821,-18.218],[29.94,64.311]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[{"i":[[0,0],[16.723,-23.386]],"o":[[-23.417,32.736],[0,0]],"v":[[73.611,-30.26],[15.366,45.944]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136,"s":[{"i":[[0,0],[14.87,-24.343]],"o":[[-23.08,31.149],[0,0]],"v":[[77.297,-20.561],[30.192,64.395]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":157,"s":[{"i":[[0,0],[15.249,-24.628]],"o":[[-21.94,33.714],[0,0]],"v":[[77.528,-21.696],[30.314,64.436]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[14.087,-23.755]],"o":[[-25.432,25.857],[0,0]],"v":[[76.821,-18.218],[29.94,64.311]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.584313750267,0.552941203117,0.352941185236,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[0,0],[2.425,-2.368],[23.56,-30.81],[0,0],[0,0],[-1.257,2.127],[-30.846,37.239],[0,0]],"o":[[-2.538,2.15],[-39.405,38.475],[0,0],[0,0],[1.71,-1.972],[15.407,-26.078],[0,0],[0,0]],"v":[[91.026,-31.722],[83.578,-24.959],[19.679,79.967],[-39.261,39.237],[-108.615,-8.655],[-104.701,-15.014],[-40.912,-114.835],[49.545,-58.254]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[1.85,-2.84],[23.56,-30.81],[0,0],[0,0],[-1.53,1.94],[-29.27,38.49],[0,0]],"o":[[-2.01,2.65],[-30.1,46.12],[0,0],[0,0],[1.79,-1.9],[18.76,-23.78],[0,0],[0,0]],"v":[[88.539,-38.363],[82.739,-30.143],[19.679,79.967],[-39.261,39.237],[-108.921,-8.903],[-103.941,-14.673],[-45.691,-119.083],[48.989,-62.143]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[0,0],[2.425,-2.368],[23.56,-30.81],[0,0],[0,0],[-1.257,2.127],[-30.846,37.239],[0,0]],"o":[[-2.538,2.15],[-39.405,38.475],[0,0],[0,0],[1.71,-1.972],[15.407,-26.078],[0,0],[0,0]],"v":[[91.026,-31.722],[83.578,-24.959],[19.679,79.967],[-39.261,39.237],[-108.615,-8.655],[-104.701,-15.014],[-40.912,-114.835],[49.545,-58.254]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":62,"s":[{"i":[[0,0],[1.85,-2.84],[23.56,-30.81],[0,0],[0,0],[-1.53,1.94],[-29.27,38.49],[0,0]],"o":[[-2.01,2.65],[-30.1,46.12],[0,0],[0,0],[1.79,-1.9],[18.76,-23.78],[0,0],[0,0]],"v":[[88.539,-38.363],[82.739,-30.143],[19.679,79.967],[-39.261,39.237],[-108.921,-8.903],[-103.941,-14.673],[-45.691,-119.083],[48.989,-62.143]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":76,"s":[{"i":[[0,0],[2.425,-2.368],[23.56,-30.81],[0,0],[0,0],[-1.257,2.127],[-30.846,37.239],[0,0]],"o":[[-2.538,2.15],[-39.405,38.475],[0,0],[0,0],[1.71,-1.972],[15.407,-26.078],[0,0],[0,0]],"v":[[91.026,-31.722],[83.578,-24.959],[19.679,79.967],[-39.261,39.237],[-108.615,-8.655],[-104.701,-15.014],[-40.912,-114.835],[49.545,-58.254]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[{"i":[[0,0],[1.994,-2.697],[24.601,-29.77],[0,0],[0,0],[-1.589,1.881],[-30.593,37.167],[0,0]],"o":[[-2.102,2.558],[-32.399,43.821],[0,0],[0,0],[1.806,-1.884],[19.48,-23.06],[0,0],[0,0]],"v":[[85.308,-45.763],[79.16,-37.89],[2.319,60.167],[-35.287,39.042],[-88.041,7.809],[-82.947,2.153],[-18.072,-95.633],[54.847,-60.453]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136,"s":[{"i":[[0,0],[2.078,-2.653],[23.56,-30.81],[0,0],[0,0],[-1.422,2.014],[-29.893,37.995],[0,0]],"o":[[-2.219,2.452],[-33.781,43.096],[0,0],[0,0],[1.758,-1.929],[17.434,-24.689],[0,0],[0,0]],"v":[[89.523,-35.736],[83.071,-28.093],[19.679,79.967],[-39.261,39.237],[-108.8,-8.805],[-104.242,-14.808],[-43.8,-117.403],[49.209,-60.605]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":157,"s":[{"i":[[0,0],[1.909,-2.791],[23.56,-30.81],[0,0],[0,0],[-1.502,1.959],[-29.432,38.362],[0,0]],"o":[[-2.064,2.599],[-31.054,45.336],[0,0],[0,0],[1.782,-1.908],[18.416,-24.016],[0,0],[0,0]],"v":[[88.794,-37.682],[82.825,-29.612],[19.679,79.967],[-39.261,39.237],[-108.89,-8.878],[-104.019,-14.708],[-45.201,-118.647],[49.046,-61.744]],"c":true}]},{"t":180,"s":[{"i":[[0,0],[2.425,-2.368],[23.56,-30.81],[0,0],[0,0],[-1.257,2.127],[-30.846,37.239],[0,0]],"o":[[-2.538,2.15],[-39.405,38.475],[0,0],[0,0],[1.71,-1.972],[15.407,-26.078],[0,0],[0,0]],"v":[[91.026,-31.722],[83.578,-24.959],[19.679,79.967],[-39.261,39.237],[-108.615,-8.655],[-104.701,-15.014],[-40.912,-114.835],[49.545,-58.254]],"c":true}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.541176497936,0.396078437567,0.078431375325,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[0,0],[24.42,-36.03],[0,0],[-39.374,38.507],[-2.538,2.15]],"o":[[-36.64,23.806],[0,0],[23.56,-30.81],[2.423,-2.37],[0,0]],"v":[[110.806,-3.25],[36.689,101.287],[19.679,79.967],[83.578,-24.959],[91.026,-31.722]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[24.42,-36.03],[0,0],[-30.1,46.12],[-2.01,2.65]],"o":[[-30.19,32.98],[0,0],[23.56,-30.81],[1.85,-2.84],[0,0]],"v":[[107.379,-14.673],[36.689,101.287],[19.679,79.967],[82.739,-30.143],[88.539,-38.363]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[0,0],[24.42,-36.03],[0,0],[-39.374,38.507],[-2.538,2.15]],"o":[[-36.64,23.806],[0,0],[23.56,-30.81],[2.423,-2.37],[0,0]],"v":[[110.806,-3.25],[36.689,101.287],[19.679,79.967],[83.578,-24.959],[91.026,-31.722]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":62,"s":[{"i":[[0,0],[24.42,-36.03],[0,0],[-30.1,46.12],[-2.01,2.65]],"o":[[-30.19,32.98],[0,0],[23.56,-30.81],[1.85,-2.84],[0,0]],"v":[[107.379,-14.673],[36.689,101.287],[19.679,79.967],[82.739,-30.143],[88.539,-38.363]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":76,"s":[{"i":[[0,0],[24.42,-36.03],[0,0],[-39.374,38.507],[-2.538,2.15]],"o":[[-36.64,23.806],[0,0],[23.56,-30.81],[2.423,-2.37],[0,0]],"v":[[110.806,-3.25],[36.689,101.287],[19.679,79.967],[83.578,-24.959],[91.026,-31.722]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[{"i":[[0,0],[26.086,-34.364],[0,0],[-32.371,43.836],[-2.102,2.558]],"o":[[-30.591,32.58],[0,0],[24.601,-29.77],[1.992,-2.698],[0,0]],"v":[[107.058,-21.37],[26.7,85.733],[2.319,60.167],[79.16,-37.89],[85.308,-45.763]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136,"s":[{"i":[[0,0],[24.42,-36.03],[0,0],[-33.769,43.109],[-2.219,2.452]],"o":[[-32.742,29.351],[0,0],[23.56,-30.81],[2.077,-2.654],[0,0]],"v":[[108.735,-10.154],[36.689,101.287],[19.679,79.967],[83.071,-28.093],[89.523,-35.736]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":157,"s":[{"i":[[0,0],[24.42,-36.03],[0,0],[-31.051,45.339],[-2.064,2.599]],"o":[[-30.852,32.039],[0,0],[23.56,-30.81],[1.909,-2.792],[0,0]],"v":[[107.731,-13.501],[36.689,101.287],[19.679,79.967],[82.825,-29.612],[88.794,-37.682]],"c":true}]},{"t":180,"s":[{"i":[[0,0],[24.42,-36.03],[0,0],[-39.374,38.507],[-2.538,2.15]],"o":[[-36.64,23.806],[0,0],[23.56,-30.81],[2.423,-2.37],[0,0]],"v":[[110.806,-3.25],[36.689,101.287],[19.679,79.967],[83.578,-24.959],[91.026,-31.722]],"c":true}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.494117647409,0.32549020648,0.043137256056,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[-0.693,-0.519],[0,0],[0.479,-0.739],[0,0],[0.725,0.447],[0,0],[-0.515,0.69],[0,0]],"o":[[0,0],[0.752,0.46],[0,0],[-0.463,0.715],[0,0],[-0.687,-0.519],[0,0],[0.518,-0.694]],"v":[[-54.986,-55.684],[29.454,-2.523],[29.952,-0.335],[25.427,6.646],[23.29,7.127],[-61.571,-46.882],[-61.881,-49.068],[-57.18,-55.367]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[-0.739,-0.452],[0,0],[0.479,-0.739],[0,0],[0.725,0.447],[0,0],[-0.448,0.736],[0,0]],"o":[[0,0],[0.752,0.46],[0,0],[-0.463,0.715],[0,0],[-0.733,-0.452],[0,0],[0.45,-0.739]],"v":[[-57.07,-55.955],[30.565,-2.384],[31.063,-0.196],[26.538,6.785],[24.401,7.266],[-62.799,-46.574],[-63.313,-48.721],[-59.224,-55.433]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[-0.693,-0.519],[0,0],[0.479,-0.739],[0,0],[0.725,0.447],[0,0],[-0.515,0.69],[0,0]],"o":[[0,0],[0.752,0.46],[0,0],[-0.463,0.715],[0,0],[-0.687,-0.519],[0,0],[0.518,-0.694]],"v":[[-54.986,-55.684],[29.454,-2.523],[29.952,-0.335],[25.427,6.646],[23.29,7.127],[-61.571,-46.882],[-61.881,-49.068],[-57.18,-55.367]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":62,"s":[{"i":[[-0.739,-0.452],[0,0],[0.479,-0.739],[0,0],[0.725,0.447],[0,0],[-0.448,0.736],[0,0]],"o":[[0,0],[0.752,0.46],[0,0],[-0.463,0.715],[0,0],[-0.733,-0.452],[0,0],[0.45,-0.739]],"v":[[-57.07,-55.955],[30.565,-2.384],[31.063,-0.196],[26.538,6.785],[24.401,7.266],[-62.799,-46.574],[-63.313,-48.721],[-59.224,-55.433]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":76,"s":[{"i":[[-0.693,-0.519],[0,0],[0.479,-0.739],[0,0],[0.725,0.447],[0,0],[-0.515,0.69],[0,0]],"o":[[0,0],[0.752,0.46],[0,0],[-0.463,0.715],[0,0],[-0.687,-0.519],[0,0],[0.518,-0.694]],"v":[[-54.986,-55.684],[29.454,-2.523],[29.952,-0.335],[25.427,6.646],[23.29,7.127],[-61.571,-46.882],[-61.881,-49.068],[-57.18,-55.367]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[{"i":[[-0.568,-0.281],[0,0],[0.517,-0.702],[0,0],[0.556,0.279],[0,0],[-0.489,0.694],[0,0]],"o":[[0,0],[0.578,0.286],[0,0],[-0.499,0.678],[0,0],[-0.563,-0.282],[0,0],[0.492,-0.698]],"v":[[-36.879,-39.931],[30.491,-6.627],[30.603,-4.824],[25.725,1.804],[23.826,2.523],[-43.131,-31.074],[-43.264,-32.84],[-38.798,-39.176]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136,"s":[{"i":[[-0.721,-0.478],[0,0],[0.479,-0.739],[0,0],[0.725,0.447],[0,0],[-0.475,0.718],[0,0]],"o":[[0,0],[0.752,0.46],[0,0],[-0.463,0.715],[0,0],[-0.715,-0.479],[0,0],[0.477,-0.721]],"v":[[-56.246,-55.848],[30.126,-2.439],[30.623,-0.251],[26.099,6.73],[23.962,7.211],[-62.313,-46.696],[-62.747,-48.858],[-58.415,-55.407]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":157,"s":[{"i":[[-0.734,-0.458],[0,0],[0.479,-0.739],[0,0],[0.725,0.447],[0,0],[-0.455,0.731],[0,0]],"o":[[0,0],[0.752,0.46],[0,0],[-0.463,0.715],[0,0],[-0.728,-0.459],[0,0],[0.457,-0.735]],"v":[[-56.856,-55.927],[30.452,-2.398],[30.949,-0.21],[26.424,6.771],[24.287,7.251],[-62.673,-46.605],[-63.167,-48.756],[-59.015,-55.427]],"c":true}]},{"t":180,"s":[{"i":[[-0.693,-0.519],[0,0],[0.479,-0.739],[0,0],[0.725,0.447],[0,0],[-0.515,0.69],[0,0]],"o":[[0,0],[0.752,0.46],[0,0],[-0.463,0.715],[0,0],[-0.687,-0.519],[0,0],[0.518,-0.694]],"v":[[-54.986,-55.684],[29.454,-2.523],[29.952,-0.335],[25.427,6.646],[23.29,7.127],[-61.571,-46.882],[-61.881,-49.068],[-57.18,-55.367]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.32549020648,0.254901975393,0.113725490868,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[0,0],[0.542,0.057],[6.368,-14.585],[-6.059,4.295],[-15.685,1.074],[2.485,-18.74],[13.825,-5.906],[3.749,0.843],[-0.483,0.953],[0,0],[-0.682,-0.093],[-6.264,14.094],[7.382,-4.832],[17.718,-3.384],[-12.886,27.114],[-10.181,-3.411],[0.751,-0.884]],"o":[[-0.353,0.416],[-3.008,-0.318],[-7.517,17.215],[6.059,-4.295],[15.685,-1.074],[-2.923,22.038],[-6.286,2.685],[-1.042,-0.234],[0,0],[0.311,-0.614],[3.53,0.482],[7.517,-16.912],[-7.382,4.832],[-15.416,2.945],[11.958,-25.161],[1.1,0.369],[0,0]],"v":[[-23.943,-54.141],[-25.372,-53.576],[-45.975,-37.044],[-35.659,-20.902],[0.065,-53.357],[27.931,-24.454],[-2.25,21.337],[-22.02,21.713],[-23.125,19.38],[-15.2,3.745],[-13.542,2.863],[7.918,-10.201],[-1.278,-32.982],[-37.922,2.079],[-57.331,-42.826],[-15.66,-67.36],[-14.929,-64.749]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[0.545,-0.006],[6.368,-14.585],[-6.059,4.295],[-15.685,1.074],[1.545,-22.177],[13.825,-5.906],[3.749,0.843],[-0.483,0.953],[0,0],[-0.682,-0.093],[-6.264,14.094],[7.382,-4.832],[17.718,-3.384],[-12.886,27.114],[-10.506,-2.215],[0.644,-0.965]],"o":[[-0.303,0.453],[-3.025,0.031],[-7.517,17.215],[6.059,-4.295],[15.685,-1.074],[-1.545,22.177],[-6.286,2.685],[-1.042,-0.234],[0,0],[0.311,-0.614],[3.53,0.482],[7.517,-16.912],[-7.382,4.832],[-15.416,2.945],[11.958,-25.161],[1.135,0.239],[0,0]],"v":[[-24.84,-53.601],[-26.194,-52.875],[-45.975,-37.044],[-35.659,-20.902],[0.621,-54.19],[27.515,-23.482],[-1.278,22.587],[-19.52,23.102],[-20.625,20.769],[-12.7,5.134],[-11.042,4.252],[9.862,-9.09],[-1.278,-32.982],[-37.922,2.079],[-58.026,-42.826],[-18.136,-67.687],[-17.109,-65.177]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[0,0],[0.542,0.057],[6.368,-14.585],[-6.059,4.295],[-15.685,1.074],[2.485,-18.74],[13.825,-5.906],[3.749,0.843],[-0.483,0.953],[0,0],[-0.682,-0.093],[-6.264,14.094],[7.382,-4.832],[17.718,-3.384],[-12.886,27.114],[-10.181,-3.411],[0.751,-0.884]],"o":[[-0.353,0.416],[-3.008,-0.318],[-7.517,17.215],[6.059,-4.295],[15.685,-1.074],[-2.923,22.038],[-6.286,2.685],[-1.042,-0.234],[0,0],[0.311,-0.614],[3.53,0.482],[7.517,-16.912],[-7.382,4.832],[-15.416,2.945],[11.958,-25.161],[1.1,0.369],[0,0]],"v":[[-23.943,-54.141],[-25.372,-53.576],[-45.975,-37.044],[-35.659,-20.902],[0.065,-53.357],[27.931,-24.454],[-2.25,21.337],[-22.02,21.713],[-23.125,19.38],[-15.2,3.745],[-13.542,2.863],[7.918,-10.201],[-1.278,-32.982],[-37.922,2.079],[-57.331,-42.826],[-15.66,-67.36],[-14.929,-64.749]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":62,"s":[{"i":[[0,0],[0.545,-0.006],[6.368,-14.585],[-6.059,4.295],[-15.685,1.074],[1.545,-22.177],[13.825,-5.906],[3.749,0.843],[-0.483,0.953],[0,0],[-0.682,-0.093],[-6.264,14.094],[7.382,-4.832],[17.718,-3.384],[-12.886,27.114],[-10.506,-2.215],[0.644,-0.965]],"o":[[-0.303,0.453],[-3.025,0.031],[-7.517,17.215],[6.059,-4.295],[15.685,-1.074],[-1.545,22.177],[-6.286,2.685],[-1.042,-0.234],[0,0],[0.311,-0.614],[3.53,0.482],[7.517,-16.912],[-7.382,4.832],[-15.416,2.945],[11.958,-25.161],[1.135,0.239],[0,0]],"v":[[-24.84,-53.601],[-26.194,-52.875],[-45.975,-37.044],[-35.659,-20.902],[0.621,-54.19],[27.515,-23.482],[-1.278,22.587],[-19.52,23.102],[-20.625,20.769],[-12.7,5.134],[-11.042,4.252],[9.862,-9.09],[-1.278,-32.982],[-37.922,2.079],[-58.026,-42.826],[-18.136,-67.687],[-17.109,-65.177]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":76,"s":[{"i":[[0,0],[0.542,0.057],[6.368,-14.585],[-6.059,4.295],[-15.685,1.074],[2.485,-18.74],[13.825,-5.906],[3.749,0.843],[-0.483,0.953],[0,0],[-0.682,-0.093],[-6.264,14.094],[7.382,-4.832],[17.718,-3.384],[-12.886,27.114],[-10.181,-3.411],[0.751,-0.884]],"o":[[-0.353,0.416],[-3.008,-0.318],[-7.517,17.215],[6.059,-4.295],[15.685,-1.074],[-2.923,22.038],[-6.286,2.685],[-1.042,-0.234],[0,0],[0.311,-0.614],[3.53,0.482],[7.517,-16.912],[-7.382,4.832],[-15.416,2.945],[11.958,-25.161],[1.1,0.369],[0,0]],"v":[[-23.943,-54.141],[-25.372,-53.576],[-45.975,-37.044],[-35.659,-20.902],[0.065,-53.357],[27.931,-24.454],[-2.25,21.337],[-22.02,21.713],[-23.125,19.38],[-15.2,3.745],[-13.542,2.863],[7.918,-10.201],[-1.278,-32.982],[-37.922,2.079],[-57.331,-42.826],[-15.66,-67.36],[-14.929,-64.749]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[{"i":[[0,0],[0.468,-0.083],[7.548,-13.406],[-5.806,4.548],[-13.588,3.171],[4.506,-19.216],[12.689,-7.043],[3.09,0.184],[-0.55,0.885],[0,0],[-0.571,0.018],[-7.388,12.97],[7.016,-5.198],[15.661,-5.442],[-14.928,25.072],[-8.68,-0.389],[0.69,-0.919]],"o":[[-0.324,0.432],[-2.595,0.461],[-8.909,15.823],[5.806,-4.548],[13.588,-3.171],[-4.506,19.216],[-5.769,3.202],[-0.859,-0.051],[0,0],[0.355,-0.571],[2.954,-0.094],[8.865,-15.564],[-7.016,5.198],[-13.626,4.735],[13.853,-23.266],[0.938,0.042],[0,0]],"v":[[-9.612,-42.541],[-10.876,-41.725],[-30.09,-25.327],[-23.571,-12.982],[12.279,-46.7],[30.906,-24.259],[-0.367,19.331],[-16.064,22.39],[-16.675,20.55],[-7.644,6.022],[-6.097,5.028],[13.722,-9.399],[7.609,-28.263],[-28.808,7.025],[-39.581,-28.549],[-1.849,-55.567],[-1.329,-53.565]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136,"s":[{"i":[[0,0],[0.544,0.019],[6.368,-14.585],[-6.059,4.295],[-15.685,1.074],[1.917,-20.817],[13.825,-5.906],[3.749,0.843],[-0.483,0.953],[0,0],[-0.682,-0.093],[-6.264,14.094],[7.382,-4.832],[17.718,-3.384],[-12.886,27.113],[-10.377,-2.688],[0.687,-0.933]],"o":[[-0.323,0.438],[-3.018,-0.107],[-7.517,17.215],[6.059,-4.295],[15.685,-1.074],[-2.09,22.122],[-6.286,2.685],[-1.042,-0.234],[0,0],[0.311,-0.614],[3.53,0.482],[7.517,-16.912],[-7.382,4.832],[-15.416,2.945],[11.958,-25.161],[1.121,0.29],[0,0]],"v":[[-24.485,-53.814],[-25.869,-53.152],[-45.975,-37.044],[-35.659,-20.902],[0.401,-53.86],[27.679,-23.867],[-1.663,22.092],[-20.509,22.552],[-21.614,20.219],[-13.689,4.584],[-12.031,3.702],[9.093,-9.53],[-1.278,-32.982],[-37.922,2.079],[-57.751,-42.826],[-17.157,-67.558],[-16.247,-65.008]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":157,"s":[{"i":[[0,0],[0.545,0.001],[6.368,-14.585],[-6.059,4.295],[-15.685,1.074],[1.642,-21.824],[13.825,-5.906],[3.749,0.843],[-0.483,0.953],[0,0],[-0.682,-0.093],[-6.264,14.094],[7.382,-4.832],[17.718,-3.384],[-12.886,27.114],[-10.473,-2.337],[0.655,-0.957]],"o":[[-0.308,0.45],[-3.023,-0.005],[-7.517,17.215],[6.059,-4.295],[15.685,-1.074],[-1.686,22.163],[-6.286,2.685],[-1.042,-0.234],[0,0],[0.311,-0.614],[3.53,0.482],[7.517,-16.912],[-7.382,4.832],[-15.416,2.945],[11.958,-25.161],[1.132,0.253],[0,0]],"v":[[-24.748,-53.656],[-26.11,-52.947],[-45.975,-37.044],[-35.659,-20.902],[0.564,-54.105],[27.557,-23.582],[-1.378,22.459],[-19.776,22.959],[-20.881,20.626],[-12.956,4.991],[-11.298,4.109],[9.663,-9.204],[-1.278,-32.982],[-37.922,2.079],[-57.955,-42.826],[-17.882,-67.653],[-16.886,-65.133]],"c":true}]},{"t":180,"s":[{"i":[[0,0],[0.542,0.057],[6.368,-14.585],[-6.059,4.295],[-15.685,1.074],[2.485,-18.74],[13.825,-5.906],[3.749,0.843],[-0.483,0.953],[0,0],[-0.682,-0.093],[-6.264,14.094],[7.382,-4.832],[17.718,-3.384],[-12.886,27.114],[-10.181,-3.411],[0.751,-0.884]],"o":[[-0.353,0.416],[-3.008,-0.318],[-7.517,17.215],[6.059,-4.295],[15.685,-1.074],[-2.923,22.038],[-6.286,2.685],[-1.042,-0.234],[0,0],[0.311,-0.614],[3.53,0.482],[7.517,-16.912],[-7.382,4.832],[-15.416,2.945],[11.958,-25.161],[1.1,0.369],[0,0]],"v":[[-23.943,-54.141],[-25.372,-53.576],[-45.975,-37.044],[-35.659,-20.902],[0.065,-53.357],[27.931,-24.454],[-2.25,21.337],[-22.02,21.713],[-23.125,19.38],[-15.2,3.745],[-13.542,2.863],[7.918,-10.201],[-1.278,-32.982],[-37.922,2.079],[-57.331,-42.826],[-15.66,-67.36],[-14.929,-64.749]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.32549020648,0.254901975393,0.113725490868,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[0,0],[24.42,-36.03],[0,0],[-39.374,38.507],[-2.538,2.15]],"o":[[-38.363,22.965],[0,0],[23.56,-30.81],[2.423,-2.37],[0,0]],"v":[[110.806,-3.25],[36.689,101.287],[19.679,79.967],[83.578,-24.959],[91.026,-31.722]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[24.42,-36.03],[0,0],[-30.1,46.12],[-2.01,2.65]],"o":[[-30.19,32.98],[0,0],[23.56,-30.81],[1.85,-2.84],[0,0]],"v":[[107.379,-14.673],[36.689,101.287],[19.679,79.967],[82.739,-30.143],[88.539,-38.363]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[0,0],[24.42,-36.03],[0,0],[-39.374,38.507],[-2.538,2.15]],"o":[[-38.363,22.965],[0,0],[23.56,-30.81],[2.423,-2.37],[0,0]],"v":[[110.806,-3.25],[36.689,101.287],[19.679,79.967],[83.578,-24.959],[91.026,-31.722]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":62,"s":[{"i":[[0,0],[24.42,-36.03],[0,0],[-30.1,46.12],[-2.01,2.65]],"o":[[-30.19,32.98],[0,0],[23.56,-30.81],[1.85,-2.84],[0,0]],"v":[[107.379,-14.673],[36.689,101.287],[19.679,79.967],[82.739,-30.143],[88.539,-38.363]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":76,"s":[{"i":[[0,0],[24.42,-36.03],[0,0],[-39.374,38.507],[-2.538,2.15]],"o":[[-38.363,22.965],[0,0],[23.56,-30.81],[2.423,-2.37],[0,0]],"v":[[110.806,-3.25],[36.689,101.287],[19.679,79.967],[83.578,-24.959],[91.026,-31.722]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[{"i":[[0,0],[26.086,-34.364],[0,0],[-32.371,43.836],[-2.102,2.558]],"o":[[-30.591,32.58],[0,0],[24.601,-29.77],[1.992,-2.698],[0,0]],"v":[[107.058,-21.37],[26.7,85.733],[2.319,60.167],[79.16,-37.89],[85.308,-45.763]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136,"s":[{"i":[[0,0],[24.42,-36.03],[0,0],[-33.769,43.109],[-2.219,2.452]],"o":[[-33.423,29.018],[0,0],[23.56,-30.81],[2.077,-2.654],[0,0]],"v":[[108.735,-10.154],[36.689,101.287],[19.679,79.967],[83.071,-28.093],[89.523,-35.736]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":157,"s":[{"i":[[0,0],[24.42,-36.03],[0,0],[-31.051,45.339],[-2.064,2.599]],"o":[[-31.029,31.953],[0,0],[23.56,-30.81],[1.909,-2.792],[0,0]],"v":[[107.731,-13.501],[36.689,101.287],[19.679,79.967],[82.825,-29.612],[88.794,-37.682]],"c":true}]},{"t":180,"s":[{"i":[[0,0],[24.42,-36.03],[0,0],[-39.374,38.507],[-2.538,2.15]],"o":[[-38.363,22.965],[0,0],[23.56,-30.81],[2.423,-2.37],[0,0]],"v":[[110.806,-3.25],[36.689,101.287],[19.679,79.967],[83.578,-24.959],[91.026,-31.722]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.305882364511,0.337254911661,0.258823543787,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":30},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-100.999,-22.486],[29.937,64.309],[47.017,84.717],[36.689,101.287],[19.679,79.967],[-108.615,-8.655]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-99.26,-21.235],[30.354,64.448],[47.017,84.717],[36.689,101.287],[19.679,79.967],[-108.921,-8.903]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-100.999,-22.486],[29.937,64.309],[47.017,84.717],[36.689,101.287],[19.679,79.967],[-108.615,-8.655]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":62,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-99.26,-21.235],[30.354,64.448],[47.017,84.717],[36.689,101.287],[19.679,79.967],[-108.921,-8.903]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":76,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-100.999,-22.486],[29.937,64.309],[47.017,84.717],[36.689,101.287],[19.679,79.967],[-108.615,-8.655]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-77.997,-4.14],[15.599,46.096],[37.924,70.059],[26.7,85.733],[2.319,60.167],[-88.041,7.809]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-99.948,-21.73],[30.189,64.393],[47.017,84.717],[36.689,101.287],[19.679,79.967],[-108.8,-8.805]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":157,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-99.439,-21.363],[30.311,64.433],[47.017,84.717],[36.689,101.287],[19.679,79.967],[-108.89,-8.878]],"c":true}]},{"t":180,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-100.999,-22.486],[29.937,64.309],[47.017,84.717],[36.689,101.287],[19.679,79.967],[-108.615,-8.655]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.847058832645,0.627451002598,0.0941176489,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-51.951,-102.254],[76.913,-19.464],[96.513,7.668],[110.806,-3.25],[91.026,-31.722],[-40.912,-114.835]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-56.197,-105.498],[77.428,-23.33],[96.215,-0.888],[107.379,-14.673],[88.539,-38.363],[-45.691,-119.083]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-51.951,-102.254],[76.913,-19.464],[96.513,7.668],[110.806,-3.25],[91.026,-31.722],[-40.912,-114.835]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":62,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-56.197,-105.498],[77.428,-23.33],[96.215,-0.888],[107.379,-14.673],[88.539,-38.363],[-45.691,-119.083]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":76,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-51.951,-102.254],[76.913,-19.464],[96.513,7.668],[110.806,-3.25],[91.026,-31.722],[-40.912,-114.835]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-29.02,-82.49],[73.633,-31.292],[95.518,-7.961],[107.059,-21.37],[85.308,-45.763],[-18.072,-95.633]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-54.517,-104.215],[77.224,-21.801],[96.333,2.496],[108.735,-10.154],[89.523,-35.736],[-43.8,-117.403]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":157,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-55.762,-105.166],[77.375,-22.934],[96.246,-0.011],[107.731,-13.501],[88.794,-37.682],[-45.201,-118.647]],"c":true}]},{"t":180,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-51.951,-102.254],[76.913,-19.464],[96.513,7.668],[110.806,-3.25],[91.026,-31.722],[-40.912,-114.835]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.847058832645,0.627451002598,0.0941176489,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[0,0],[2.425,-2.368],[23.56,-30.81],[0,0],[0,0],[-1.257,2.127],[-30.846,37.239],[0,0]],"o":[[-2.538,2.15],[-39.405,38.475],[0,0],[0,0],[1.71,-1.972],[15.407,-26.078],[0,0],[0,0]],"v":[[91.026,-31.722],[83.578,-24.959],[19.679,79.967],[-39.261,39.237],[-108.615,-8.655],[-104.701,-15.014],[-40.912,-114.835],[46.489,-59.921]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[1.85,-2.84],[23.56,-30.81],[0,0],[0,0],[-1.53,1.94],[-29.27,38.49],[0,0]],"o":[[-2.01,2.65],[-30.1,46.12],[0,0],[0,0],[1.79,-1.9],[18.76,-23.78],[0,0],[0,0]],"v":[[88.539,-38.363],[82.739,-30.143],[19.679,79.967],[-39.261,39.237],[-108.921,-8.903],[-103.941,-14.673],[-45.691,-119.083],[48.989,-62.143]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[0,0],[2.425,-2.368],[23.56,-30.81],[0,0],[0,0],[-1.257,2.127],[-30.846,37.239],[0,0]],"o":[[-2.538,2.15],[-39.405,38.475],[0,0],[0,0],[1.71,-1.972],[15.407,-26.078],[0,0],[0,0]],"v":[[91.026,-31.722],[83.578,-24.959],[19.679,79.967],[-39.261,39.237],[-108.615,-8.655],[-104.701,-15.014],[-40.912,-114.835],[46.489,-59.921]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":62,"s":[{"i":[[0,0],[1.85,-2.84],[23.56,-30.81],[0,0],[0,0],[-1.53,1.94],[-29.27,38.49],[0,0]],"o":[[-2.01,2.65],[-30.1,46.12],[0,0],[0,0],[1.79,-1.9],[18.76,-23.78],[0,0],[0,0]],"v":[[88.539,-38.363],[82.739,-30.143],[19.679,79.967],[-39.261,39.237],[-108.921,-8.903],[-103.941,-14.673],[-45.691,-119.083],[48.989,-62.143]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":76,"s":[{"i":[[0,0],[2.425,-2.368],[23.56,-30.81],[0,0],[0,0],[-1.257,2.127],[-30.846,37.239],[0,0]],"o":[[-2.538,2.15],[-39.405,38.475],[0,0],[0,0],[1.71,-1.972],[15.407,-26.078],[0,0],[0,0]],"v":[[91.026,-31.722],[83.578,-24.959],[19.679,79.967],[-39.261,39.237],[-108.615,-8.655],[-104.701,-15.014],[-40.912,-114.835],[46.489,-59.921]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[{"i":[[0,0],[1.994,-2.697],[24.601,-29.77],[0,0],[0,0],[-1.589,1.881],[-30.593,37.167],[0,0]],"o":[[-2.102,2.558],[-32.399,43.821],[0,0],[0,0],[1.806,-1.884],[19.48,-23.06],[0,0],[0,0]],"v":[[85.308,-45.763],[79.16,-37.89],[2.319,60.167],[-35.287,39.042],[-88.041,7.809],[-82.947,2.153],[-18.072,-95.633],[54.847,-60.453]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136,"s":[{"i":[[0,0],[2.078,-2.653],[23.56,-30.81],[0,0],[0,0],[-1.422,2.014],[-29.893,37.995],[0,0]],"o":[[-2.219,2.452],[-33.781,43.096],[0,0],[0,0],[1.758,-1.929],[17.434,-24.689],[0,0],[0,0]],"v":[[89.523,-35.736],[83.071,-28.093],[19.679,79.967],[-39.261,39.237],[-108.8,-8.805],[-104.242,-14.808],[-43.8,-117.403],[48,-61.264]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":157,"s":[{"i":[[0,0],[1.909,-2.791],[23.56,-30.81],[0,0],[0,0],[-1.502,1.959],[-29.432,38.362],[0,0]],"o":[[-2.064,2.599],[-31.054,45.336],[0,0],[0,0],[1.782,-1.908],[18.416,-24.016],[0,0],[0,0]],"v":[[88.794,-37.682],[82.825,-29.612],[19.679,79.967],[-39.261,39.237],[-108.89,-8.878],[-104.019,-14.708],[-45.201,-118.647],[48.733,-61.915]],"c":true}]},{"t":180,"s":[{"i":[[0,0],[2.425,-2.368],[23.56,-30.81],[0,0],[0,0],[-1.257,2.127],[-30.846,37.239],[0,0]],"o":[[-2.538,2.15],[-39.405,38.475],[0,0],[0,0],[1.71,-1.972],[15.407,-26.078],[0,0],[0,0]],"v":[[91.026,-31.722],[83.578,-24.959],[19.679,79.967],[-39.261,39.237],[-108.615,-8.655],[-104.701,-15.014],[-40.912,-114.835],[46.489,-59.921]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.827450990677,0.800000011921,0.627451002598,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[0,0],[24.42,-36.03],[0,0],[-39.374,38.507],[-2.538,2.15]],"o":[[-38.363,22.965],[0,0],[23.56,-30.81],[2.423,-2.37],[0,0]],"v":[[110.806,-3.25],[36.689,101.287],[19.679,79.967],[83.578,-24.959],[91.026,-31.722]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[24.42,-36.03],[0,0],[-30.1,46.12],[-2.01,2.65]],"o":[[-30.19,32.98],[0,0],[23.56,-30.81],[1.85,-2.84],[0,0]],"v":[[107.379,-14.673],[36.689,101.287],[19.679,79.967],[82.739,-30.143],[88.539,-38.363]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[0,0],[24.42,-36.03],[0,0],[-39.374,38.507],[-2.538,2.15]],"o":[[-38.363,22.965],[0,0],[23.56,-30.81],[2.423,-2.37],[0,0]],"v":[[110.806,-3.25],[36.689,101.287],[19.679,79.967],[83.578,-24.959],[91.026,-31.722]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":62,"s":[{"i":[[0,0],[24.42,-36.03],[0,0],[-30.1,46.12],[-2.01,2.65]],"o":[[-30.19,32.98],[0,0],[23.56,-30.81],[1.85,-2.84],[0,0]],"v":[[107.379,-14.673],[36.689,101.287],[19.679,79.967],[82.739,-30.143],[88.539,-38.363]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":76,"s":[{"i":[[0,0],[24.42,-36.03],[0,0],[-39.374,38.507],[-2.538,2.15]],"o":[[-38.363,22.965],[0,0],[23.56,-30.81],[2.423,-2.37],[0,0]],"v":[[110.806,-3.25],[36.689,101.287],[19.679,79.967],[83.578,-24.959],[91.026,-31.722]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[{"i":[[0,0],[26.086,-34.364],[0,0],[-32.371,43.836],[-2.102,2.558]],"o":[[-30.591,32.58],[0,0],[24.601,-29.77],[1.992,-2.698],[0,0]],"v":[[107.058,-21.37],[26.7,85.733],[2.319,60.167],[79.16,-37.89],[85.308,-45.763]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136,"s":[{"i":[[0,0],[24.42,-36.03],[0,0],[-33.769,43.109],[-2.219,2.452]],"o":[[-33.423,29.018],[0,0],[23.56,-30.81],[2.077,-2.654],[0,0]],"v":[[108.735,-10.154],[36.689,101.287],[19.679,79.967],[83.071,-28.093],[89.523,-35.736]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":157,"s":[{"i":[[0,0],[24.42,-36.03],[0,0],[-31.051,45.339],[-2.064,2.599]],"o":[[-31.029,31.953],[0,0],[23.56,-30.81],[1.909,-2.792],[0,0]],"v":[[107.731,-13.501],[36.689,101.287],[19.679,79.967],[82.825,-29.612],[88.794,-37.682]],"c":true}]},{"t":180,"s":[{"i":[[0,0],[24.42,-36.03],[0,0],[-39.374,38.507],[-2.538,2.15]],"o":[[-38.363,22.965],[0,0],[23.56,-30.81],[2.423,-2.37],[0,0]],"v":[[110.806,-3.25],[36.689,101.287],[19.679,79.967],[83.578,-24.959],[91.026,-31.722]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.772549033165,0.749019622803,0.584313750267,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[-92.099,-12.651],[-60.171,-71.123],[49.347,-48.183],[52.576,-47.057],[0,0],[52.881,33.966],[-24.711,41.809]],"o":[[0,0],[0,0],[-53.862,52.591],[-43.935,39.323],[0,0],[0,0],[26.662,-45.11]],"v":[[59.599,-155.683],[196.328,-57.381],[83.581,-24.959],[-12.298,117.057],[-67.493,184.851],[-203.992,78.812],[-104.704,-15.018]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[-124.2,37.125],[-60.171,-71.123],[37.694,-57.758],[52.816,-41.681],[0,0],[59.4,19.686],[-30.086,38.124]],"o":[[0,0],[0,0],[-41.143,63.042],[-46.286,36.527],[0,0],[0,0],[32.461,-41.134]],"v":[[59.599,-189.016],[193.828,-105.853],[82.742,-30.143],[-13.687,113.446],[-90.058,154.329],[-214.258,55.789],[-103.944,-14.678]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[-92.099,-12.651],[-60.171,-71.123],[49.347,-48.183],[52.576,-47.057],[0,0],[52.881,33.966],[-24.711,41.809]],"o":[[0,0],[0,0],[-53.862,52.591],[-43.935,39.323],[0,0],[0,0],[26.662,-45.11]],"v":[[59.599,-155.683],[196.328,-57.381],[83.581,-24.959],[-12.298,117.057],[-67.493,184.851],[-203.992,78.812],[-104.704,-15.018]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":62,"s":[{"i":[[-124.2,37.125],[-60.171,-71.123],[37.694,-57.758],[52.816,-41.681],[0,0],[59.4,19.686],[-30.086,38.124]],"o":[[0,0],[0,0],[-41.143,63.042],[-46.286,36.527],[0,0],[0,0],[32.461,-41.134]],"v":[[59.599,-189.016],[193.828,-105.853],[82.742,-30.143],[-13.687,113.446],[-90.058,154.329],[-214.258,55.789],[-103.944,-14.678]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":76,"s":[{"i":[[-92.099,-12.651],[-60.171,-71.123],[49.347,-48.183],[52.576,-47.057],[0,0],[52.881,33.966],[-24.711,41.809]],"o":[[0,0],[0,0],[-53.862,52.591],[-43.935,39.323],[0,0],[0,0],[26.662,-45.11]],"v":[[59.599,-155.683],[196.328,-57.381],[83.581,-24.959],[-12.298,117.057],[-67.493,184.851],[-203.992,78.812],[-104.704,-15.018]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[{"i":[[-111.703,49.622],[-41.328,-52.279],[40.574,-54.878],[51.218,-43.279],[0,0],[48.049,8.335],[-31.239,36.97]],"o":[[0,0],[0,0],[-44.286,59.899],[-44.885,37.927],[0,0],[0,0],[33.706,-39.89]],"v":[[82.143,-170.64],[185.171,-118.677],[79.163,-37.891],[-29.604,89.205],[-100.882,135.181],[-187.544,78.335],[-82.949,2.149]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136,"s":[{"i":[[-111.501,17.434],[-60.171,-71.123],[42.304,-53.97],[52.721,-43.807],[0,0],[56.821,25.335],[-27.959,39.581]],"o":[[0,0],[0,0],[-46.174,58.908],[-45.356,37.633],[0,0],[0,0],[30.167,-42.707]],"v":[[59.599,-175.83],[194.817,-86.678],[83.074,-28.093],[-13.137,114.875],[-81.132,166.403],[-210.197,64.897],[-104.245,-14.813]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":157,"s":[{"i":[[-120.908,32.02],[-60.171,-71.123],[38.889,-56.776],[52.792,-42.232],[0,0],[58.731,21.15],[-29.534,38.502]],"o":[[0,0],[0,0],[-42.447,61.97],[-46.045,36.814],[0,0],[0,0],[31.867,-41.542]],"v":[[59.599,-185.597],[194.084,-100.882],[82.828,-29.612],[-13.544,113.816],[-87.744,157.46],[-213.205,58.15],[-104.022,-14.713]],"c":true}]},{"t":180,"s":[{"i":[[-92.099,-12.651],[-60.171,-71.123],[49.347,-48.183],[52.576,-47.057],[0,0],[52.881,33.966],[-24.711,41.809]],"o":[[0,0],[0,0],[-53.862,52.591],[-43.935,39.323],[0,0],[0,0],[26.662,-45.11]],"v":[[59.599,-155.683],[196.328,-57.381],[83.581,-24.959],[-12.298,117.057],[-67.493,184.851],[-203.992,78.812],[-104.704,-15.018]],"c":true}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.568627476692,0.588235318661,0.360784322023,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-116.708,0.987],[13.947,90.26],[31.315,114.529],[36.689,101.287],[21.19,77.956],[-108.615,-8.655]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-117.819,-0.263],[13.947,90.26],[31.315,114.529],[36.689,101.287],[21.19,77.956],[-108.921,-8.903]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-116.708,0.987],[13.947,90.26],[31.315,114.529],[36.689,101.287],[21.19,77.956],[-108.615,-8.655]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":62,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-117.819,-0.263],[13.947,90.26],[31.315,114.529],[36.689,101.287],[21.19,77.956],[-108.921,-8.903]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":76,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-116.708,0.987],[13.947,90.26],[31.315,114.529],[36.689,101.287],[21.19,77.956],[-108.615,-8.655]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-96.902,16.486],[2.961,75.106],[20.197,97.846],[26.7,85.733],[3.902,58.228],[-88.041,7.809]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-117.379,0.232],[13.947,90.26],[31.315,114.529],[36.689,101.287],[21.19,77.956],[-108.8,-8.805]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":157,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-117.705,-0.135],[13.947,90.26],[31.315,114.529],[36.689,101.287],[21.19,77.956],[-108.89,-8.878]],"c":true}]},{"t":180,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-116.708,0.987],[13.947,90.26],[31.315,114.529],[36.689,101.287],[21.19,77.956],[-108.615,-8.655]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.345098048449,0.360784322023,0.180392161012,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":40},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[0,0],[-37.396,-62.987],[0,0],[55.662,19.446]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-160.905,42.761],[-40.239,141.881],[-17.694,121.3],[-140.922,24.274]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[-37.396,-62.987],[0,0],[55.662,19.446]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-170.627,34.983],[-49.405,137.714],[-19.916,118.245],[-146.339,20.802]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[0,0],[-37.396,-62.987],[0,0],[55.662,19.446]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-160.905,42.761],[-40.239,141.881],[-17.694,121.3],[-140.922,24.274]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":62,"s":[{"i":[[0,0],[-37.396,-62.987],[0,0],[55.662,19.446]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-170.627,34.983],[-49.405,137.714],[-19.916,118.245],[-146.339,20.802]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":76,"s":[{"i":[[0,0],[-37.396,-62.987],[0,0],[55.662,19.446]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-160.905,42.761],[-40.239,141.881],[-17.694,121.3],[-140.922,24.274]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[{"i":[[0,0],[-22.989,-48.58],[0,0],[44.882,8.667]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-147.19,54.253],[-63.679,115.116],[-35.628,94.208],[-124.352,38.621]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136,"s":[{"i":[[0,0],[-37.396,-62.987],[0,0],[55.662,19.446]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-166.781,38.06],[-45.779,139.363],[-19.037,119.453],[-144.196,22.175]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":157,"s":[{"i":[[0,0],[-37.396,-62.987],[0,0],[55.662,19.446]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-169.63,35.781],[-48.465,138.142],[-19.688,118.558],[-145.783,21.158]],"c":true}]},{"t":180,"s":[{"i":[[0,0],[-37.396,-62.987],[0,0],[55.662,19.446]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-160.905,42.761],[-40.239,141.881],[-17.694,121.3],[-140.922,24.274]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,0.850980401039,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":25},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[0,0],[-52.146,-54.345],[0,0],[72.26,12.295]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-16.025,-135.28],[106.881,-58.476],[135.478,-70.636],[10.875,-147.825]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[-52.146,-54.345],[0,0],[72.26,12.295]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-24.636,-142.503],[106.881,-58.476],[134.089,-79.247],[-3.57,-159.492]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[0,0],[-52.146,-54.345],[0,0],[72.26,12.295]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-16.025,-135.28],[106.881,-58.476],[135.478,-70.636],[10.875,-147.825]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":62,"s":[{"i":[[0,0],[-52.146,-54.345],[0,0],[72.26,12.295]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-24.636,-142.503],[106.881,-58.476],[134.089,-79.247],[-3.57,-159.492]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":76,"s":[{"i":[[0,0],[-52.146,-54.345],[0,0],[72.26,12.295]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-16.025,-135.28],[106.881,-58.476],[135.478,-70.636],[10.875,-147.825]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[{"i":[[0,0],[-36.863,-39.061],[0,0],[60.124,0.16]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[3.322,-118.713],[103.904,-65.621],[130.188,-87.316],[23.803,-136.287]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136,"s":[{"i":[[0,0],[-52.146,-54.345],[0,0],[72.26,12.295]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-21.229,-139.646],[106.881,-58.476],[134.638,-75.841],[2.144,-154.877]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":157,"s":[{"i":[[0,0],[-52.146,-54.345],[0,0],[72.26,12.295]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-23.753,-141.762],[106.881,-58.476],[134.231,-78.364],[-2.089,-158.295]],"c":true}]},{"t":180,"s":[{"i":[[0,0],[-52.146,-54.345],[0,0],[72.26,12.295]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-16.025,-135.28],[106.881,-58.476],[135.478,-70.636],[10.875,-147.825]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,0.850980401039,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":25},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[-49.24,-58.2],[0.951,0.093],[0.114,0.012],[0.552,0.044],[0.154,0.017],[0.719,0.055],[0.378,0.027],[2.734,0.093],[35.806,-31.377],[0,0],[1.2,0.67],[0,0],[0,0],[0,0],[-3.54,-0.87]],"o":[[0,0],[-0.091,-0.014],[-0.413,-0.043],[-0.132,-0.02],[-0.602,-0.053],[-0.344,-0.027],[-1.984,-0.142],[-23.037,-0.782],[27.847,-39.799],[-27.292,-42.058],[-1.364,2.039],[0,0],[0,0],[0.73,0.13],[19.64,4.85]],"v":[[196.329,-57.381],[195.409,-58.065],[195.1,-58.1],[193.641,-58.241],[193.207,-58.282],[191.229,-58.443],[190.153,-58.52],[183.047,-58.882],[89.149,-30.102],[169.47,-72.213],[57.599,-152.68],[57.599,-152.68],[59.629,-155.67],[57.599,-152.68],[66.399,-154.21]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[-49.24,-58.2],[0.92,-0.26],[0.11,-0.03],[0.53,-0.16],[0.15,-0.04],[0.689,-0.21],[0.36,-0.12],[2.58,-0.91],[28.13,-38.41],[0,0],[1.2,0.67],[0,0],[0,0],[0,0],[-3.54,-0.87]],"o":[[0,0],[-0.09,0.02],[-0.4,0.11],[-0.13,0.03],[-0.58,0.17],[-0.33,0.1],[-1.9,0.59],[-21.74,7.66],[18.53,-44.9],[-27.292,-42.058],[-1.364,2.039],[0,0],[0,0],[0.73,0.13],[19.64,4.85]],"v":[[193.829,-105.853],[192.409,-105.473],[192.109,-105.393],[190.699,-104.993],[190.279,-104.873],[188.379,-104.303],[187.349,-103.983],[180.599,-101.733],[87.059,-36.373],[171.97,-111.102],[57.599,-186.013],[57.599,-186.013],[59.629,-189.003],[57.599,-186.013],[66.399,-187.543]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[-49.24,-58.2],[0.951,0.093],[0.114,0.012],[0.552,0.044],[0.154,0.017],[0.719,0.055],[0.378,0.027],[2.734,0.093],[35.806,-31.377],[0,0],[1.2,0.67],[0,0],[0,0],[0,0],[-3.54,-0.87]],"o":[[0,0],[-0.091,-0.014],[-0.413,-0.043],[-0.132,-0.02],[-0.602,-0.053],[-0.344,-0.027],[-1.984,-0.142],[-23.037,-0.782],[27.847,-39.799],[-27.292,-42.058],[-1.364,2.039],[0,0],[0,0],[0.73,0.13],[19.64,4.85]],"v":[[196.329,-57.381],[195.409,-58.065],[195.1,-58.1],[193.641,-58.241],[193.207,-58.282],[191.229,-58.443],[190.153,-58.52],[183.047,-58.882],[89.149,-30.102],[169.47,-72.213],[57.599,-152.68],[57.599,-152.68],[59.629,-155.67],[57.599,-152.68],[66.399,-154.21]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":62,"s":[{"i":[[-49.24,-58.2],[0.92,-0.26],[0.11,-0.03],[0.53,-0.16],[0.15,-0.04],[0.689,-0.21],[0.36,-0.12],[2.58,-0.91],[28.13,-38.41],[0,0],[1.2,0.67],[0,0],[0,0],[0,0],[-3.54,-0.87]],"o":[[0,0],[-0.09,0.02],[-0.4,0.11],[-0.13,0.03],[-0.58,0.17],[-0.33,0.1],[-1.9,0.59],[-21.74,7.66],[18.53,-44.9],[-27.292,-42.058],[-1.364,2.039],[0,0],[0,0],[0.73,0.13],[19.64,4.85]],"v":[[193.829,-105.853],[192.409,-105.473],[192.109,-105.393],[190.699,-104.993],[190.279,-104.873],[188.379,-104.303],[187.349,-103.983],[180.599,-101.733],[87.059,-36.373],[171.97,-111.102],[57.599,-186.013],[57.599,-186.013],[59.629,-189.003],[57.599,-186.013],[66.399,-187.543]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":76,"s":[{"i":[[-49.24,-58.2],[0.951,0.093],[0.114,0.012],[0.552,0.044],[0.154,0.017],[0.719,0.055],[0.378,0.027],[2.734,0.093],[35.806,-31.377],[0,0],[1.2,0.67],[0,0],[0,0],[0,0],[-3.54,-0.87]],"o":[[0,0],[-0.091,-0.014],[-0.413,-0.043],[-0.132,-0.02],[-0.602,-0.053],[-0.344,-0.027],[-1.984,-0.142],[-23.037,-0.782],[27.847,-39.799],[-27.292,-42.058],[-1.364,2.039],[0,0],[0,0],[0.73,0.13],[19.64,4.85]],"v":[[196.329,-57.381],[195.409,-58.065],[195.1,-58.1],[193.641,-58.241],[193.207,-58.282],[191.229,-58.443],[190.153,-58.52],[183.047,-58.882],[89.149,-30.102],[169.47,-72.213],[57.599,-152.68],[57.599,-152.68],[59.629,-155.67],[57.599,-152.68],[66.399,-154.21]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[{"i":[[-33.82,-42.78],[0.825,-0.355],[0.099,-0.041],[0.477,-0.213],[0.134,-0.056],[0.621,-0.279],[0.326,-0.148],[2.341,-1.149],[29.605,-36.934],[0,0],[0.932,0.402],[0,0],[0,0],[0,0],[-2.906,-0.241]],"o":[[0,0],[-0.08,0.03],[-0.358,0.152],[-0.116,0.044],[-0.521,0.229],[-0.297,0.133],[-1.712,0.778],[-19.719,9.681],[22.315,-41.115],[-17.339,-32.105],[-1.461,1.942],[0,0],[0,0],[0.607,0.007],[16.125,1.335]],"v":[[185.172,-118.678],[183.902,-118.148],[183.633,-118.037],[182.368,-117.492],[181.992,-117.329],[180.282,-116.568],[179.354,-116.146],[173.25,-113.25],[83.754,-43.846],[167.204,-120.036],[79.999,-167.781],[79.999,-167.781],[82.167,-170.633],[79.999,-167.781],[87.756,-170.354]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136,"s":[{"i":[[-49.24,-58.2],[0.932,-0.12],[0.112,-0.013],[0.538,-0.079],[0.152,-0.017],[0.701,-0.105],[0.367,-0.062],[2.641,-0.513],[31.167,-35.628],[0,0],[1.2,0.67],[0,0],[0,0],[0,0],[-3.54,-0.87]],"o":[[0,0],[-0.091,0.006],[-0.405,0.05],[-0.131,0.01],[-0.589,0.082],[-0.336,0.05],[-1.933,0.3],[-22.253,4.321],[22.216,-42.882],[-27.292,-42.058],[-1.364,2.039],[0,0],[0,0],[0.73,0.13],[19.64,4.85]],"v":[[194.818,-86.678],[193.596,-86.719],[193.292,-86.685],[191.863,-86.499],[191.437,-86.443],[189.507,-86.162],[188.458,-85.999],[181.568,-84.782],[87.886,-33.892],[170.982,-95.718],[57.599,-172.827],[57.599,-172.827],[59.629,-175.817],[57.599,-172.827],[66.399,-174.357]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":157,"s":[{"i":[[-49.24,-58.2],[0.923,-0.224],[0.111,-0.025],[0.532,-0.139],[0.15,-0.034],[0.692,-0.183],[0.362,-0.105],[2.596,-0.807],[28.917,-37.689],[0,0],[1.2,0.67],[0,0],[0,0],[0,0],[-3.54,-0.87]],"o":[[0,0],[-0.09,0.017],[-0.401,0.094],[-0.131,0.025],[-0.582,0.147],[-0.331,0.087],[-1.909,0.515],[-21.873,6.794],[19.486,-44.377],[-27.292,-42.058],[-1.364,2.039],[0,0],[0,0],[0.73,0.13],[19.64,4.85]],"v":[[194.085,-100.882],[192.717,-100.611],[192.416,-100.543],[191.001,-100.198],[190.579,-100.095],[188.672,-99.6],[187.637,-99.32],[180.85,-97.338],[87.273,-35.73],[171.714,-107.113],[57.599,-182.594],[57.599,-182.594],[59.629,-185.584],[57.599,-182.594],[66.399,-184.124]],"c":true}]},{"t":180,"s":[{"i":[[-49.24,-58.2],[0.951,0.093],[0.114,0.012],[0.552,0.044],[0.154,0.017],[0.719,0.055],[0.378,0.027],[2.734,0.093],[35.806,-31.377],[0,0],[1.2,0.67],[0,0],[0,0],[0,0],[-3.54,-0.87]],"o":[[0,0],[-0.091,-0.014],[-0.413,-0.043],[-0.132,-0.02],[-0.602,-0.053],[-0.344,-0.027],[-1.984,-0.142],[-23.037,-0.782],[27.847,-39.799],[-27.292,-42.058],[-1.364,2.039],[0,0],[0,0],[0.73,0.13],[19.64,4.85]],"v":[[196.329,-57.381],[195.409,-58.065],[195.1,-58.1],[193.641,-58.241],[193.207,-58.282],[191.229,-58.443],[190.153,-58.52],[183.047,-58.882],[89.149,-30.102],[169.47,-72.213],[57.599,-152.68],[57.599,-152.68],[59.629,-155.67],[57.599,-152.68],[66.399,-154.21]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,0.850980401039,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[-0.067,-4.918],[6.926,0.224],[0.067,4.918],[-6.926,-0.224]],"o":[[0.067,4.918],[-6.926,-0.224],[-0.067,-4.918],[6.926,0.224]],"v":[[-82.41,59.934],[-94.83,68.432],[-107.49,59.122],[-95.071,50.624]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,-4.355],[7.242,0],[0,4.355],[-7.242,0]],"o":[[0,4.355],[-7.242,0],[0,-4.355],[7.242,0]],"v":[[-83.918,48.865],[-97.031,56.751],[-110.145,48.865],[-97.031,40.979]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[-0.067,-4.918],[6.926,0.224],[0.067,4.918],[-6.926,-0.224]],"o":[[0.067,4.918],[-6.926,-0.224],[-0.067,-4.918],[6.926,0.224]],"v":[[-82.41,59.934],[-94.83,68.432],[-107.49,59.122],[-95.071,50.624]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":62,"s":[{"i":[[0,-4.355],[7.242,0],[0,4.355],[-7.242,0]],"o":[[0,4.355],[-7.242,0],[0,-4.355],[7.242,0]],"v":[[-83.918,48.865],[-97.031,56.751],[-110.145,48.865],[-97.031,40.979]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":76,"s":[{"i":[[-0.067,-4.918],[6.926,0.224],[0.067,4.918],[-6.926,-0.224]],"o":[[0.067,4.918],[-6.926,-0.224],[-0.067,-4.918],[6.926,0.224]],"v":[[-82.41,59.934],[-94.83,68.432],[-107.49,59.122],[-95.071,50.624]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[{"i":[[0.625,-3.73],[6.203,-1.039],[-0.625,3.73],[-6.203,1.039]],"o":[[-0.625,3.73],[-6.203,1.039],[0.625,-3.73],[6.203,-1.039]],"v":[[-74.917,53.698],[-87.28,62.334],[-97.38,57.462],[-85.016,48.826]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136,"s":[{"i":[[-0.026,-4.578],[7.117,0.089],[0.026,4.578],[-7.117,-0.089]],"o":[[0.026,4.578],[-7.117,-0.089],[-0.026,-4.578],[7.117,0.089]],"v":[[-83.321,53.244],[-96.16,61.372],[-109.095,52.923],[-96.256,44.795]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":157,"s":[{"i":[[-0.007,-4.413],[7.21,0.023],[0.007,4.413],[-7.21,-0.023]],"o":[[0.007,4.413],[-7.21,-0.023],[-0.007,-4.413],[7.21,0.023]],"v":[[-83.763,50.001],[-96.805,57.949],[-109.872,49.917],[-96.83,41.969]],"c":true}]},{"t":180,"s":[{"i":[[-0.067,-4.918],[6.926,0.224],[0.067,4.918],[-6.926,-0.224]],"o":[[0.067,4.918],[-6.926,-0.224],[-0.067,-4.918],[6.926,0.224]],"v":[[-82.41,59.934],[-94.83,68.432],[-107.49,59.122],[-95.071,50.624]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.419607847929,0.458823531866,0.388235300779,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[-0.102,-7.511],[10.579,0.342],[0.102,7.511],[-10.579,-0.343]],"o":[[0.102,7.511],[-10.579,-0.342],[-0.102,-7.511],[10.579,0.342]],"v":[[-75.796,60.148],[-94.766,73.129],[-114.105,58.908],[-95.135,45.928]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,-6.653],[11.062,0],[0,6.653],[-11.062,0]],"o":[[0,6.653],[-11.062,0],[0,-6.653],[11.062,0]],"v":[[-77.001,48.865],[-97.031,60.911],[-117.061,48.865],[-97.031,36.82]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[-0.102,-7.511],[10.579,0.342],[0.102,7.511],[-10.579,-0.343]],"o":[[0.102,7.511],[-10.579,-0.342],[-0.102,-7.511],[10.579,0.342]],"v":[[-75.796,60.148],[-94.766,73.129],[-114.105,58.908],[-95.135,45.928]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":62,"s":[{"i":[[0,-6.653],[11.062,0],[0,6.653],[-11.062,0]],"o":[[0,6.653],[-11.062,0],[0,-6.653],[11.062,0]],"v":[[-77.001,48.865],[-97.031,60.911],[-117.061,48.865],[-97.031,36.82]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":76,"s":[{"i":[[-0.102,-7.511],[10.579,0.342],[0.102,7.511],[-10.579,-0.343]],"o":[[0.102,7.511],[-10.579,-0.342],[-0.102,-7.511],[10.579,0.342]],"v":[[-75.796,60.148],[-94.766,73.129],[-114.105,58.908],[-95.135,45.928]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[{"i":[[0.955,-5.698],[9.475,-1.588],[-0.955,5.698],[-9.475,1.588]],"o":[[-0.955,5.698],[-9.475,1.588],[0.955,-5.698],[9.475,-1.588]],"v":[[-68.993,52.705],[-87.877,65.897],[-103.304,58.455],[-84.419,45.263]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136,"s":[{"i":[[-0.04,-6.992],[10.871,0.135],[0.04,6.992],[-10.871,-0.135]],"o":[[0.04,6.992],[-10.871,-0.135],[-0.04,-6.992],[10.871,0.135]],"v":[[-76.524,53.329],[-96.135,65.744],[-115.892,52.838],[-96.281,40.423]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":157,"s":[{"i":[[-0.01,-6.741],[11.013,0.035],[0.01,6.741],[-11.013,-0.035]],"o":[[0.01,6.741],[-11.013,-0.035],[-0.01,-6.741],[11.013,0.035]],"v":[[-76.877,50.023],[-96.799,62.164],[-116.758,49.895],[-96.837,37.754]],"c":true}]},{"t":180,"s":[{"i":[[-0.102,-7.511],[10.579,0.342],[0.102,7.511],[-10.579,-0.343]],"o":[[0.102,7.511],[-10.579,-0.342],[-0.102,-7.511],[10.579,0.342]],"v":[[-75.796,60.148],[-94.766,73.129],[-114.105,58.908],[-95.135,45.928]],"c":true}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.419607847929,0.46274510026,0.380392163992,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":4},"lc":1,"lj":1,"ml":10,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[0.421,-3.108],[7.059,0.956],[-0.421,3.108],[-7.059,-0.956]],"o":[[-0.421,3.108],[-7.059,-0.956],[0.421,-3.108],[7.059,0.956]],"v":[[79.508,-101.313],[65.965,-97.417],[53.946,-104.776],[67.489,-108.672]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,-4.355],[7.242,0],[0,4.355],[-7.242,0]],"o":[[0,4.355],[-7.242,0],[0,-4.355],[7.242,0]],"v":[[71.911,-113.828],[58.798,-105.942],[45.684,-113.828],[58.798,-121.714]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[0.421,-3.108],[7.059,0.956],[-0.421,3.108],[-7.059,-0.956]],"o":[[-0.421,3.108],[-7.059,-0.956],[0.421,-3.108],[7.059,0.956]],"v":[[79.508,-101.313],[65.965,-97.417],[53.946,-104.776],[67.489,-108.672]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":62,"s":[{"i":[[0,-4.355],[7.242,0],[0,4.355],[-7.242,0]],"o":[[0,4.355],[-7.242,0],[0,-4.355],[7.242,0]],"v":[[71.911,-113.828],[58.798,-105.942],[45.684,-113.828],[58.798,-121.714]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":76,"s":[{"i":[[0.421,-3.108],[7.059,0.956],[-0.421,3.108],[-7.059,-0.956]],"o":[[-0.421,3.108],[-7.059,-0.956],[0.421,-3.108],[7.059,0.956]],"v":[[79.508,-101.313],[65.965,-97.417],[53.946,-104.776],[67.489,-108.672]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[{"i":[[0.625,-3.73],[6.203,-1.039],[-0.625,3.73],[-6.203,1.039]],"o":[[-0.625,3.73],[-6.203,1.039],[0.625,-3.73],[6.203,-1.039]],"v":[[81.897,-108.01],[69.534,-99.374],[59.434,-104.246],[71.797,-112.882]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136,"s":[{"i":[[0.167,-3.862],[7.17,0.378],[-0.167,3.862],[-7.17,-0.378]],"o":[[-0.167,3.862],[-7.17,-0.378],[0.167,-3.862],[7.17,0.378]],"v":[[74.916,-108.877],[61.633,-102.569],[48.952,-110.247],[62.236,-116.555]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":157,"s":[{"i":[[0.043,-4.227],[7.224,0.098],[-0.043,4.227],[-7.224,-0.098]],"o":[[-0.043,4.227],[-7.224,-0.098],[0.043,-4.227],[7.224,0.098]],"v":[[72.69,-112.544],[59.533,-105.067],[46.531,-112.899],[59.689,-120.376]],"c":true}]},{"t":180,"s":[{"i":[[0.421,-3.108],[7.059,0.956],[-0.421,3.108],[-7.059,-0.956]],"o":[[-0.421,3.108],[-7.059,-0.956],[0.421,-3.108],[7.059,0.956]],"v":[[79.508,-101.313],[65.965,-97.417],[53.946,-104.776],[67.489,-108.672]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.568627476692,0.690196096897,0.509803950787,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[0.643,-4.747],[10.782,1.461],[-0.643,4.747],[-10.782,-1.461]],"o":[[-0.643,4.747],[-10.782,-1.461],[0.643,-4.747],[10.782,1.461]],"v":[[86.249,-100.4],[65.563,-94.449],[47.205,-105.69],[67.892,-111.641]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,-6.653],[11.062,0],[0,6.653],[-11.062,0]],"o":[[0,6.653],[-11.062,0],[0,-6.653],[11.062,0]],"v":[[78.828,-113.828],[58.798,-101.782],[38.768,-113.828],[58.798,-125.873]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[0.643,-4.747],[10.782,1.461],[-0.643,4.747],[-10.782,-1.461]],"o":[[-0.643,4.747],[-10.782,-1.461],[0.643,-4.747],[10.782,1.461]],"v":[[86.249,-100.4],[65.563,-94.449],[47.205,-105.69],[67.892,-111.641]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":62,"s":[{"i":[[0,-6.653],[11.062,0],[0,6.653],[-11.062,0]],"o":[[0,6.653],[-11.062,0],[0,-6.653],[11.062,0]],"v":[[78.828,-113.828],[58.798,-101.782],[38.768,-113.828],[58.798,-125.873]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":76,"s":[{"i":[[0.643,-4.747],[10.782,1.461],[-0.643,4.747],[-10.782,-1.461]],"o":[[-0.643,4.747],[-10.782,-1.461],[0.643,-4.747],[10.782,1.461]],"v":[[86.249,-100.4],[65.563,-94.449],[47.205,-105.69],[67.892,-111.641]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[{"i":[[0.955,-5.698],[9.475,-1.588],[-0.955,5.698],[-9.475,1.588]],"o":[[-0.955,5.698],[-9.475,1.588],[0.955,-5.698],[9.475,-1.588]],"v":[[87.821,-109.002],[68.937,-95.811],[53.51,-103.253],[72.394,-116.444]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136,"s":[{"i":[[0.254,-5.899],[10.951,0.578],[-0.254,5.899],[-10.951,-0.578]],"o":[[-0.254,5.899],[-10.951,-0.578],[0.254,-5.899],[10.951,0.578]],"v":[[81.764,-108.516],[61.474,-98.881],[42.105,-110.608],[62.395,-120.243]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":157,"s":[{"i":[[0.066,-6.457],[11.034,0.15],[-0.066,6.457],[-11.034,-0.15]],"o":[[-0.066,6.457],[-11.034,-0.15],[0.066,-6.457],[11.034,0.15]],"v":[[79.589,-112.451],[59.491,-101.03],[39.633,-112.993],[59.73,-124.413]],"c":true}]},{"t":180,"s":[{"i":[[0.643,-4.747],[10.782,1.461],[-0.643,4.747],[-10.782,-1.461]],"o":[[-0.643,4.747],[-10.782,-1.461],[0.643,-4.747],[10.782,1.461]],"v":[[86.249,-100.4],[65.563,-94.449],[47.205,-105.69],[67.892,-111.641]],"c":true}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.568627476692,0.690196096897,0.509803950787,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":4},"lc":1,"lj":1,"ml":10,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[0,0],[20.496,-15.556]],"o":[[0,0],[0,0]],"v":[[-43.294,53.31],[-90.218,95.556]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[26.229,-9.257]],"o":[[0,0],[0,0]],"v":[[-49.405,48.865],[-94.662,79.723]],"c":false}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[0,0],[20.496,-15.556]],"o":[[0,0],[0,0]],"v":[[-43.294,53.31],[-90.218,95.556]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":62,"s":[{"i":[[0,0],[26.229,-9.257]],"o":[[0,0],[0,0]],"v":[[-49.405,48.865],[-94.662,79.723]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":76,"s":[{"i":[[0,0],[20.496,-15.556]],"o":[[0,0],[0,0]],"v":[[-43.294,53.31],[-90.218,95.556]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[{"i":[[0,0],[23.793,-11.693]],"o":[[0,0],[0,0]],"v":[[-45.358,48.745],[-88.548,81.669]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136,"s":[{"i":[[0,0],[23.961,-11.749]],"o":[[0,0],[0,0]],"v":[[-46.988,50.624],[-92.904,85.986]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":157,"s":[{"i":[[0,0],[25.641,-9.903]],"o":[[0,0],[0,0]],"v":[[-48.779,49.321],[-94.207,81.346]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[20.496,-15.556]],"o":[[0,0],[0,0]],"v":[[-43.294,53.31],[-90.218,95.556]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.427450984716,0.447058826685,0.40000000596,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":60},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[0,0],[22.776,-17.165]],"o":[[0,0],[0,0]],"v":[[-32.518,64.086],[-77.776,105.221]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[26.229,-9.257]],"o":[[0,0],[0,0]],"v":[[-38.63,59.641],[-83.887,90.498]],"c":false}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[0,0],[22.776,-17.165]],"o":[[0,0],[0,0]],"v":[[-32.518,64.086],[-77.776,105.221]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":62,"s":[{"i":[[0,0],[26.229,-9.257]],"o":[[0,0],[0,0]],"v":[[-38.63,59.641],[-83.887,90.498]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":76,"s":[{"i":[[0,0],[22.776,-17.165]],"o":[[0,0],[0,0]],"v":[[-32.518,64.086],[-77.776,105.221]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[{"i":[[0,0],[23.793,-11.693]],"o":[[0,0],[0,0]],"v":[[-37.675,56.427],[-80.866,89.351]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136,"s":[{"i":[[0,0],[24.863,-12.385]],"o":[[0,0],[0,0]],"v":[[-36.212,61.399],[-81.469,96.322]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":157,"s":[{"i":[[0,0],[25.874,-10.068]],"o":[[0,0],[0,0]],"v":[[-38.003,60.097],[-83.26,92.008]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[22.776,-17.165]],"o":[[0,0],[0,0]],"v":[[-32.518,64.086],[-77.776,105.221]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.427450984716,0.447058826685,0.40000000596,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":60},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[0,0],[-31.21,1.21]],"o":[[0,0],[0,0]],"v":[[4.442,-110.598],[50.732,-127.104]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[-29.609,9.943]],"o":[[0,0],[0,0]],"v":[[0.136,-115.32],[43.986,-149.949]],"c":false}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[0,0],[-31.21,1.21]],"o":[[0,0],[0,0]],"v":[[4.442,-110.598],[50.732,-127.104]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":62,"s":[{"i":[[0,0],[-29.609,9.943]],"o":[[0,0],[0,0]],"v":[[0.136,-115.32],[43.986,-149.949]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":76,"s":[{"i":[[0,0],[-31.21,1.21]],"o":[[0,0],[0,0]],"v":[[4.442,-110.598],[50.732,-127.104]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[{"i":[[0,0],[-26.786,12.765]],"o":[[0,0],[0,0]],"v":[[20.637,-98.987],[63.164,-134.939]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136,"s":[{"i":[[0,0],[-30.242,6.488]],"o":[[0,0],[0,0]],"v":[[1.839,-113.452],[46.655,-140.912]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":157,"s":[{"i":[[0,0],[-29.773,9.047]],"o":[[0,0],[0,0]],"v":[[0.578,-114.836],[44.678,-147.606]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[-31.21,1.21]],"o":[[0,0],[0,0]],"v":[[4.442,-110.598],[50.732,-127.104]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.427450984716,0.447058826685,0.40000000596,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":60},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[0,0],[-31.21,1.21]],"o":[[0,0],[0,0]],"v":[[18.253,-103.131],[59.384,-117.997]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[-29.609,9.943]],"o":[[0,0],[0,0]],"v":[[13.947,-107.853],[57.798,-142.482]],"c":false}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[0,0],[-31.21,1.21]],"o":[[0,0],[0,0]],"v":[[18.253,-103.131],[59.384,-117.997]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":62,"s":[{"i":[[0,0],[-29.609,9.943]],"o":[[0,0],[0,0]],"v":[[13.947,-107.853],[57.798,-142.482]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":76,"s":[{"i":[[0,0],[-31.21,1.21]],"o":[[0,0],[0,0]],"v":[[18.253,-103.131],[59.384,-117.997]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[{"i":[[0,0],[-26.786,12.765]],"o":[[0,0],[0,0]],"v":[[31.395,-94.574],[73.922,-130.526]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136,"s":[{"i":[[0,0],[-30.242,6.488]],"o":[[0,0],[0,0]],"v":[[15.651,-105.985],[58.425,-132.796]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":157,"s":[{"i":[[0,0],[-29.773,9.047]],"o":[[0,0],[0,0]],"v":[[14.389,-107.369],[57.96,-139.971]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[-31.21,1.21]],"o":[[0,0],[0,0]],"v":[[18.253,-103.131],[59.384,-117.997]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.427450984716,0.447058826685,0.40000000596,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":60},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[0,0],[-31.23,0.456]],"o":[[0,0],[0,0]],"v":[[70.793,-78.131],[113.928,-90.448]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[-29.609,9.943]],"o":[[0,0],[0,0]],"v":[[64.96,-77.853],[108.81,-112.482]],"c":false}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[0,0],[-31.23,0.456]],"o":[[0,0],[0,0]],"v":[[70.793,-78.131],[113.928,-90.448]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":62,"s":[{"i":[[0,0],[-29.609,9.943]],"o":[[0,0],[0,0]],"v":[[64.96,-77.853],[108.81,-112.482]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":76,"s":[{"i":[[0,0],[-31.23,0.456]],"o":[[0,0],[0,0]],"v":[[70.793,-78.131],[113.928,-90.448]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[{"i":[[0,0],[-26.786,12.765]],"o":[[0,0],[0,0]],"v":[[70.78,-76.201],[113.307,-112.153]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136,"s":[{"i":[[0,0],[-30.25,6.19]],"o":[[0,0],[0,0]],"v":[[67.267,-77.963],[110.835,-103.766]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":157,"s":[{"i":[[0,0],[-29.775,8.97]],"o":[[0,0],[0,0]],"v":[[65.558,-77.882],[109.335,-110.222]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[-31.23,0.456]],"o":[[0,0],[0,0]],"v":[[70.793,-78.131],[113.928,-90.448]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.427450984716,0.447058826685,0.40000000596,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":60},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[-77.995,17.26],[-21.907,3.077],[30.802,16.903],[15.833,11.954],[27.386,-62.2],[32.736,-24.147],[12.671,-10.701],[-23.663,-17.029],[-13.772,-12.456],[-20.486,34.022]],"o":[[0,0],[0,0],[0,0],[0,0],[-22.824,51.839],[0,0],[0,0],[0,0],[0,0],[26.378,-43.807]],"v":[[128.428,-84.946],[131.855,-102.326],[82.716,-130.929],[53.918,-136.262],[-37.601,-81.816],[-143.784,56.667],[-144.377,76.462],[-87.355,122.254],[-58.172,122.178],[3.97,51.848]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[-69.549,39.543],[-20.057,9.412],[34.286,7.886],[18.514,7.2],[27.386,-62.2],[36.569,-17.817],[14.4,-8.229],[-22.223,-22.573],[-15.429,-19.543],[-20.486,34.022]],"o":[[0,0],[0,0],[0,0],[0,0],[-22.824,51.839],[0,0],[0,0],[0,0],[0,0],[26.378,-43.807]],"v":[[122.856,-104.93],[128.256,-131.004],[68.828,-161.844],[39.628,-159.13],[-37.601,-81.816],[-139.889,44.91],[-144.058,64.27],[-94.687,105.413],[-61.23,111.098],[3.97,51.848]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[-77.995,17.26],[-21.907,3.077],[30.802,16.903],[15.833,11.954],[27.386,-62.2],[32.736,-24.147],[12.671,-10.701],[-23.663,-17.029],[-13.772,-12.456],[-20.486,34.022]],"o":[[0,0],[0,0],[0,0],[0,0],[-22.824,51.839],[0,0],[0,0],[0,0],[0,0],[26.378,-43.807]],"v":[[128.428,-84.946],[131.855,-102.326],[82.716,-130.929],[53.918,-136.262],[-37.601,-81.816],[-143.784,56.667],[-144.377,76.462],[-87.355,122.254],[-58.172,122.178],[3.97,51.848]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":62,"s":[{"i":[[-69.549,39.543],[-20.057,9.412],[34.286,7.886],[18.514,7.2],[27.386,-62.2],[36.569,-17.817],[14.4,-8.229],[-22.223,-22.573],[-15.429,-19.543],[-20.486,34.022]],"o":[[0,0],[0,0],[0,0],[0,0],[-22.824,51.839],[0,0],[0,0],[0,0],[0,0],[26.378,-43.807]],"v":[[122.856,-104.93],[128.256,-131.004],[68.828,-161.844],[39.628,-159.13],[-37.601,-81.816],[-139.889,44.91],[-144.058,64.27],[-94.687,105.413],[-61.23,111.098],[3.97,51.848]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":76,"s":[{"i":[[-77.995,17.26],[-21.907,3.077],[30.802,16.903],[15.833,11.954],[27.386,-62.2],[32.736,-24.147],[12.671,-10.701],[-23.663,-17.029],[-13.772,-12.456],[-20.486,34.022]],"o":[[0,0],[0,0],[0,0],[0,0],[-22.824,51.839],[0,0],[0,0],[0,0],[0,0],[26.378,-43.807]],"v":[[128.428,-84.946],[131.855,-102.326],[82.716,-130.929],[53.918,-136.262],[-37.601,-81.816],[-143.784,56.667],[-144.377,76.462],[-87.355,122.254],[-58.172,122.178],[3.97,51.848]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[{"i":[[-65.243,43.85],[-18.529,10.94],[28.233,1.833],[14.824,3.509],[32.382,-57.203],[33.878,-20.508],[13.514,-9.114],[-15.794,-16.144],[-10.409,-14.524],[-22.428,32.079]],"o":[[0,0],[0,0],[0,0],[0,0],[-26.988,47.675],[0,0],[0,0],[0,0],[0,0],[28.879,-41.305]],"v":[[124.253,-107.701],[132.621,-130.808],[86.147,-148.693],[60.749,-142.177],[-16.492,-64.875],[-122.287,58.343],[-128.637,75.523],[-97.826,93.949],[-69.987,94.017],[-0.071,43.639]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136,"s":[{"i":[[-72.89,30.728],[-20.789,6.906],[32.908,11.453],[17.454,9.081],[27.386,-62.2],[35.053,-20.321],[13.716,-9.207],[-22.793,-20.38],[-14.773,-16.739],[-20.486,34.022]],"o":[[0,0],[0,0],[0,0],[0,0],[-22.824,51.839],[0,0],[0,0],[0,0],[0,0],[26.378,-43.807]],"v":[[125.06,-97.025],[129.68,-119.66],[74.322,-149.615],[45.281,-150.084],[-37.601,-81.816],[-141.43,49.561],[-144.184,69.093],[-91.786,112.075],[-60.02,115.481],[3.97,51.848]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":157,"s":[{"i":[[-70.415,37.258],[-20.247,8.762],[33.928,8.811],[18.239,7.688],[27.386,-62.2],[36.176,-18.466],[14.223,-8.482],[-22.371,-22.005],[-15.259,-18.816],[-20.486,34.022]],"o":[[0,0],[0,0],[0,0],[0,0],[-22.824,51.839],[0,0],[0,0],[0,0],[0,0],[26.378,-43.807]],"v":[[123.428,-102.881],[128.625,-128.063],[70.252,-158.674],[41.093,-156.785],[-37.601,-81.816],[-140.288,46.116],[-144.091,65.52],[-93.935,107.14],[-60.916,112.235],[3.97,51.848]],"c":true}]},{"t":180,"s":[{"i":[[-77.995,17.26],[-21.907,3.077],[30.802,16.903],[15.833,11.954],[27.386,-62.2],[32.736,-24.147],[12.671,-10.701],[-23.663,-17.029],[-13.772,-12.456],[-20.486,34.022]],"o":[[0,0],[0,0],[0,0],[0,0],[-22.824,51.839],[0,0],[0,0],[0,0],[0,0],[26.378,-43.807]],"v":[[128.428,-84.946],[131.855,-102.326],[82.716,-130.929],[53.918,-136.262],[-37.601,-81.816],[-143.784,56.667],[-144.377,76.462],[-87.355,122.254],[-58.172,122.178],[3.97,51.848]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.878431379795,0.890196084976,0.709803938866,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[28.458,15.986],[-37.029,90.857],[0,0],[-48.638,-50.227],[31.484,-69.603],[88.218,-92.819]],"o":[[0,0],[40.256,-98.777],[0,0],[0,0],[-35.052,77.489],[0,0]],"v":[[-180.403,73.458],[-60.401,-63.102],[61.45,-143.891],[164.9,-77.156],[55.297,-12.702],[-69.884,155.041]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[31.371,10.538],[-37.029,90.857],[0,0],[-48.638,-50.227],[39.559,-83.657],[54.259,-15.903]],"o":[[0,0],[40.256,-98.777],[0,0],[0,0],[-40.531,85.713],[0,0]],"v":[[-178.944,54.789],[-60.401,-63.102],[59.57,-174.502],[166.78,-112.332],[55.297,-12.702],[-83.315,131.584]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[28.458,15.986],[-37.029,90.857],[0,0],[-48.638,-50.227],[26.609,-62.237],[88.218,-92.819]],"o":[[0,0],[40.256,-98.777],[0,0],[0,0],[-33.434,78.2],[0,0]],"v":[[-180.403,73.458],[-60.401,-63.102],[61.45,-143.891],[164.9,-77.156],[55.297,-12.702],[-69.884,155.041]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":62,"s":[{"i":[[31.371,10.538],[-37.029,90.857],[0,0],[-48.638,-50.227],[39.559,-83.657],[54.259,-15.903]],"o":[[0,0],[40.256,-98.777],[0,0],[0,0],[-40.531,85.713],[0,0]],"v":[[-178.944,54.789],[-60.401,-63.102],[59.57,-174.502],[166.78,-112.332],[55.297,-12.702],[-83.315,131.584]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":76,"s":[{"i":[[28.458,15.986],[-37.029,90.857],[0,0],[-48.638,-50.227],[32.295,-69.567],[88.218,-92.819]],"o":[[0,0],[40.256,-98.777],[0,0],[0,0],[-35.811,77.141],[0,0]],"v":[[-180.403,73.458],[-60.401,-63.102],[61.45,-143.891],[164.9,-77.156],[55.297,-12.702],[-69.884,155.041]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[{"i":[[25.357,4.523],[-44.754,83.132],[0,0],[-34.449,-36.038],[45.888,-77.328],[48.754,-21.408]],"o":[[0,0],[48.655,-90.378],[0,0],[0,0],[-47.016,79.228],[0,0]],"v":[[-157.155,72.41],[-38.706,-45.574],[80.035,-158.205],[162.935,-120.344],[53.154,-19.013],[-91.843,114.732]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136,"s":[{"i":[[30.219,12.693],[-37.029,90.857],[0,0],[-48.638,-50.227],[37.668,-84.486],[67.693,-46.33]],"o":[[0,0],[40.256,-98.777],[0,0],[0,0],[-37.142,82.983],[0,0]],"v":[[-179.521,62.174],[-60.401,-63.102],[60.314,-162.392],[166.036,-98.417],[55.297,-12.702],[-78.002,140.863]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":157,"s":[{"i":[[31.073,11.097],[-37.029,90.857],[0,0],[-48.638,-50.227],[39.069,-83.872],[57.742,-23.792]],"o":[[0,0],[40.256,-98.777],[0,0],[0,0],[-39.652,85.005],[0,0]],"v":[[-179.093,56.704],[-60.401,-63.102],[59.763,-171.362],[166.587,-108.724],[55.297,-12.702],[-81.938,133.99]],"c":true}]},{"t":180,"s":[{"i":[[28.458,15.986],[-37.029,90.857],[0,0],[-48.638,-50.227],[31.484,-69.603],[88.218,-92.819]],"o":[[0,0],[40.256,-98.777],[0,0],[0,0],[-35.052,77.489],[0,0]],"v":[[-180.403,73.458],[-60.401,-63.102],[61.45,-143.891],[164.9,-77.156],[55.297,-12.702],[-69.884,155.041]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.419607847929,0.458823531866,0.388235300779,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[-49.24,-58.2],[0.951,0.093],[0.114,0.012],[0.552,0.044],[0.154,0.017],[0.719,0.055],[0.378,0.027],[2.734,0.093],[36.38,-35.523],[52.82,-41.68],[0,0],[51.773,29.523],[-24.711,41.808],[-32.16,39.74],[0,0],[-39.806,6.806],[-1.781,0.267],[-0.824,0.112],[-1.965,0.239],[-1.793,0.183],[-0.97,0.29],[-4.36,-1.07]],"o":[[0,0],[-0.091,-0.014],[-0.413,-0.043],[-0.132,-0.019],[-0.602,-0.053],[-0.344,-0.027],[-1.984,-0.142],[-24.244,-0.824],[-53.859,52.59],[-46.28,36.53],[0,0],[0,0],[16.049,-27.153],[0,0],[18.11,-22.37],[1.735,-0.297],[0.801,-0.121],[1.912,-0.26],[1.748,-0.213],[0.989,-0.093],[0,0],[19.64,4.85]],"v":[[196.329,-57.381],[195.409,-58.065],[195.1,-58.1],[193.641,-58.241],[193.206,-58.282],[191.229,-58.443],[190.153,-58.52],[183.047,-58.882],[83.578,-24.959],[-12.302,117.058],[-67.497,184.85],[-203.995,78.811],[-104.701,-15.014],[-37.526,-118.555],[-36.405,-117.732],[36.594,-155.592],[42.836,-156.171],[45.964,-156.817],[51.228,-156.589],[56.545,-156.069],[59.599,-155.68],[66.399,-154.21]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[-49.24,-58.2],[0.92,-0.26],[0.11,-0.03],[0.53,-0.16],[0.15,-0.04],[0.689,-0.21],[0.36,-0.12],[2.58,-0.91],[27.79,-42.58],[52.82,-41.68],[0,0],[59.4,19.69],[-30.09,38.12],[-32.16,39.74],[0,0],[-37.57,14.81],[-1.69,0.62],[-0.78,0.29],[-1.88,0.62],[-1.72,0.54],[-0.97,0.29],[-4.36,-1.07]],"o":[[0,0],[-0.09,0.02],[-0.4,0.11],[-0.13,0.03],[-0.58,0.17],[-0.33,0.1],[-1.9,0.59],[-22.88,8.06],[-41.14,63.04],[-46.28,36.53],[0,0],[0,0],[19.54,-24.76],[0,0],[18.11,-22.37],[1.64,-0.64],[0.76,-0.28],[1.82,-0.64],[1.67,-0.56],[0.95,-0.29],[0,0],[19.64,4.85]],"v":[[193.829,-105.853],[192.409,-105.473],[192.109,-105.393],[190.699,-104.993],[190.279,-104.873],[188.379,-104.303],[187.349,-103.983],[180.599,-101.733],[82.739,-30.143],[-13.691,113.447],[-90.061,154.327],[-214.261,55.787],[-103.941,-14.673],[-41.971,-123.833],[-41.961,-123.843],[38.769,-181.833],[43.759,-183.733],[46.069,-184.583],[51.619,-186.483],[56.709,-188.133],[59.599,-189.013],[66.399,-187.543]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[-49.24,-58.2],[0.951,0.093],[0.114,0.012],[0.552,0.044],[0.154,0.017],[0.719,0.055],[0.378,0.027],[2.734,0.093],[36.38,-35.523],[52.82,-41.68],[0,0],[51.773,29.523],[-24.711,41.808],[-32.16,39.74],[0,0],[-39.806,6.806],[-1.781,0.267],[-0.824,0.112],[-1.965,0.239],[-1.793,0.183],[-0.97,0.29],[-4.36,-1.07]],"o":[[0,0],[-0.091,-0.014],[-0.413,-0.043],[-0.132,-0.019],[-0.602,-0.053],[-0.344,-0.027],[-1.984,-0.142],[-24.244,-0.824],[-53.859,52.59],[-46.28,36.53],[0,0],[0,0],[16.049,-27.153],[0,0],[18.11,-22.37],[1.735,-0.297],[0.801,-0.121],[1.912,-0.26],[1.748,-0.213],[0.989,-0.093],[0,0],[19.64,4.85]],"v":[[196.329,-57.381],[195.409,-58.065],[195.1,-58.1],[193.641,-58.241],[193.206,-58.282],[191.229,-58.443],[190.153,-58.52],[183.047,-58.882],[83.578,-24.959],[-12.302,117.058],[-67.497,184.85],[-203.995,78.811],[-104.701,-15.014],[-37.526,-118.555],[-36.405,-117.732],[36.594,-155.592],[42.836,-156.171],[45.964,-156.817],[51.228,-156.589],[56.545,-156.069],[59.599,-155.68],[66.399,-154.21]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":62,"s":[{"i":[[-49.24,-58.2],[0.92,-0.26],[0.11,-0.03],[0.53,-0.16],[0.15,-0.04],[0.689,-0.21],[0.36,-0.12],[2.58,-0.91],[27.79,-42.58],[52.82,-41.68],[0,0],[59.4,19.69],[-30.09,38.12],[-32.16,39.74],[0,0],[-37.57,14.81],[-1.69,0.62],[-0.78,0.29],[-1.88,0.62],[-1.72,0.54],[-0.97,0.29],[-4.36,-1.07]],"o":[[0,0],[-0.09,0.02],[-0.4,0.11],[-0.13,0.03],[-0.58,0.17],[-0.33,0.1],[-1.9,0.59],[-22.88,8.06],[-41.14,63.04],[-46.28,36.53],[0,0],[0,0],[19.54,-24.76],[0,0],[18.11,-22.37],[1.64,-0.64],[0.76,-0.28],[1.82,-0.64],[1.67,-0.56],[0.95,-0.29],[0,0],[19.64,4.85]],"v":[[193.829,-105.853],[192.409,-105.473],[192.109,-105.393],[190.699,-104.993],[190.279,-104.873],[188.379,-104.303],[187.349,-103.983],[180.599,-101.733],[82.739,-30.143],[-13.691,113.447],[-90.061,154.327],[-214.261,55.787],[-103.941,-14.673],[-41.971,-123.833],[-41.961,-123.843],[38.769,-181.833],[43.759,-183.733],[46.069,-184.583],[51.619,-186.483],[56.709,-188.133],[59.599,-189.013],[66.399,-187.543]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":76,"s":[{"i":[[-49.24,-58.2],[0.951,0.093],[0.114,0.012],[0.552,0.044],[0.154,0.017],[0.719,0.055],[0.378,0.027],[2.734,0.093],[36.38,-35.523],[52.82,-41.68],[0,0],[51.773,29.523],[-24.711,41.808],[-32.16,39.74],[0,0],[-39.806,6.806],[-1.781,0.267],[-0.824,0.112],[-1.965,0.239],[-1.793,0.183],[-0.97,0.29],[-4.36,-1.07]],"o":[[0,0],[-0.091,-0.014],[-0.413,-0.043],[-0.132,-0.019],[-0.602,-0.053],[-0.344,-0.027],[-1.984,-0.142],[-24.244,-0.824],[-53.859,52.59],[-46.28,36.53],[0,0],[0,0],[16.049,-27.153],[0,0],[18.11,-22.37],[1.735,-0.297],[0.801,-0.121],[1.912,-0.26],[1.748,-0.213],[0.989,-0.093],[0,0],[19.64,4.85]],"v":[[196.329,-57.381],[195.409,-58.065],[195.1,-58.1],[193.641,-58.241],[193.206,-58.282],[191.229,-58.443],[190.153,-58.52],[183.047,-58.882],[83.578,-24.959],[-12.302,117.058],[-67.497,184.85],[-203.995,78.811],[-104.701,-15.014],[-37.526,-118.555],[-36.405,-117.732],[36.594,-155.592],[42.836,-156.171],[45.964,-156.817],[51.228,-156.589],[56.545,-156.069],[59.599,-155.68],[66.399,-154.21]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[{"i":[[-33.82,-42.78],[0.825,-0.355],[0.099,-0.041],[0.477,-0.213],[0.134,-0.056],[0.621,-0.279],[0.326,-0.148],[2.341,-1.149],[29.911,-40.458],[51.217,-43.285],[0,0],[48.049,8.339],[-31.239,36.97],[-33.248,38.652],[0,0],[-34.329,17.971],[-1.537,0.773],[-0.712,0.349],[-1.698,0.808],[-1.55,0.709],[-0.872,0.388],[-3.578,-0.296]],"o":[[0,0],[-0.08,0.03],[-0.358,0.152],[-0.116,0.044],[-0.521,0.229],[-0.297,0.133],[-1.712,0.778],[-20.753,10.187],[-44.283,59.897],[-44.88,37.929],[0,0],[0,0],[20.289,-24.011],[0,0],[18.721,-21.758],[1.497,-0.783],[0.691,-0.349],[1.651,-0.809],[1.511,-0.719],[0.855,-0.385],[0,0],[16.125,1.335]],"v":[[185.172,-118.678],[183.902,-118.148],[183.633,-118.037],[182.368,-117.492],[181.991,-117.329],[180.282,-116.568],[179.354,-116.146],[173.25,-113.25],[79.16,-37.89],[-29.608,89.206],[-100.885,135.18],[-187.546,78.333],[-82.947,2.153],[-14.204,-100.235],[-14.195,-100.245],[63.272,-161.498],[67.818,-163.842],[69.918,-164.901],[74.945,-167.325],[79.541,-169.469],[82.143,-170.637],[87.756,-170.354]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136,"s":[{"i":[[-49.24,-58.2],[0.932,-0.12],[0.112,-0.013],[0.538,-0.079],[0.152,-0.017],[0.701,-0.105],[0.367,-0.062],[2.641,-0.513],[31.188,-39.788],[52.82,-41.68],[0,0],[56.383,23.58],[-27.962,39.579],[-32.16,39.74],[0,0],[-38.454,11.644],[-1.726,0.48],[-0.797,0.22],[-1.914,0.469],[-1.749,0.399],[-0.97,0.29],[-4.36,-1.07]],"o":[[0,0],[-0.091,0.006],[-0.405,0.05],[-0.131,0.01],[-0.589,0.082],[-0.336,0.05],[-1.933,0.3],[-23.42,4.546],[-46.172,58.906],[-46.28,36.53],[0,0],[0,0],[18.159,-25.707],[0,0],[18.11,-22.37],[1.678,-0.504],[0.776,-0.217],[1.857,-0.49],[1.701,-0.423],[0.966,-0.212],[0,0],[19.64,4.85]],"v":[[194.818,-86.678],[193.596,-86.719],[193.292,-86.685],[191.863,-86.499],[191.437,-86.443],[189.507,-86.162],[188.458,-85.999],[181.568,-84.782],[83.071,-28.093],[-13.142,114.875],[-81.135,166.401],[-210.2,64.895],[-104.242,-14.808],[-40.213,-121.745],[-39.763,-121.426],[37.908,-171.453],[43.394,-172.83],[46.027,-173.599],[51.464,-174.657],[56.644,-175.449],[59.599,-175.827],[66.399,-174.357]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":157,"s":[{"i":[[-49.24,-58.2],[0.923,-0.224],[0.111,-0.025],[0.532,-0.139],[0.15,-0.034],[0.692,-0.183],[0.362,-0.105],[2.596,-0.807],[28.671,-41.856],[52.82,-41.68],[0,0],[58.618,20.698],[-29.538,38.498],[-32.16,39.74],[0,0],[-37.799,13.989],[-1.7,0.584],[-0.784,0.272],[-1.889,0.581],[-1.727,0.503],[-0.97,0.29],[-4.36,-1.07]],"o":[[0,0],[-0.09,0.017],[-0.401,0.094],[-0.131,0.025],[-0.582,0.147],[-0.332,0.087],[-1.909,0.515],[-23.02,7.149],[-42.445,61.968],[-46.28,36.53],[0,0],[0,0],[19.182,-25.006],[0,0],[18.11,-22.37],[1.65,-0.605],[0.764,-0.264],[1.83,-0.601],[1.678,-0.524],[0.954,-0.27],[0,0],[19.64,4.85]],"v":[[194.085,-100.882],[192.717,-100.611],[192.416,-100.543],[191.001,-100.198],[190.579,-100.095],[188.672,-99.6],[187.637,-99.32],[180.85,-97.338],[82.825,-29.612],[-13.549,113.817],[-87.747,157.457],[-213.208,58.148],[-104.019,-14.708],[-41.515,-123.292],[-41.391,-123.216],[38.546,-179.142],[43.665,-180.906],[46.058,-181.735],[51.579,-183.417],[56.692,-184.845],[59.599,-185.594],[66.399,-184.124]],"c":true}]},{"t":180,"s":[{"i":[[-49.24,-58.2],[0.951,0.093],[0.114,0.012],[0.552,0.044],[0.154,0.017],[0.719,0.055],[0.378,0.027],[2.734,0.093],[36.38,-35.523],[52.82,-41.68],[0,0],[51.773,29.523],[-24.711,41.808],[-32.16,39.74],[0,0],[-39.806,6.806],[-1.781,0.267],[-0.824,0.112],[-1.965,0.239],[-1.793,0.183],[-0.97,0.29],[-4.36,-1.07]],"o":[[0,0],[-0.091,-0.014],[-0.413,-0.043],[-0.132,-0.019],[-0.602,-0.053],[-0.344,-0.027],[-1.984,-0.142],[-24.244,-0.824],[-53.859,52.59],[-46.28,36.53],[0,0],[0,0],[16.049,-27.153],[0,0],[18.11,-22.37],[1.735,-0.297],[0.801,-0.121],[1.912,-0.26],[1.748,-0.213],[0.989,-0.093],[0,0],[19.64,4.85]],"v":[[196.329,-57.381],[195.409,-58.065],[195.1,-58.1],[193.641,-58.241],[193.206,-58.282],[191.229,-58.443],[190.153,-58.52],[183.047,-58.882],[83.578,-24.959],[-12.302,117.058],[-67.497,184.85],[-203.995,78.811],[-104.701,-15.014],[-37.526,-118.555],[-36.405,-117.732],[36.594,-155.592],[42.836,-156.171],[45.964,-156.817],[51.228,-156.589],[56.545,-156.069],[59.599,-155.68],[66.399,-154.21]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.874509811401,0.89411765337,0.698039233685,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[0,0],[-4.545,-4.972]],"o":[[0,0],[0,0]],"v":[[-180.978,101.465],[-167.4,112.75]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[-11.912,-8.259]],"o":[[0,0],[0,0]],"v":[[-198.058,80.727],[-171.627,95.096]],"c":false}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[0,0],[-4.545,-4.972]],"o":[[0,0],[0,0]],"v":[[-180.978,101.465],[-167.4,112.75]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":62,"s":[{"i":[[0,0],[-11.912,-8.259]],"o":[[0,0],[0,0]],"v":[[-198.058,80.727],[-171.627,95.096]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":76,"s":[{"i":[[0,0],[-4.545,-4.972]],"o":[[0,0],[0,0]],"v":[[-180.978,101.465],[-167.4,112.75]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[{"i":[[0,0],[-9.017,-5.364]],"o":[[0,0],[0,0]],"v":[[-177.249,97.368],[-156.674,105.882]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136,"s":[{"i":[[0,0],[-8.998,-6.959]],"o":[[0,0],[0,0]],"v":[[-191.302,88.931],[-169.955,102.08]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":157,"s":[{"i":[[0,0],[-11.157,-7.922]],"o":[[0,0],[0,0]],"v":[[-196.306,82.854],[-171.194,96.907]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[-4.545,-4.972]],"o":[[0,0],[0,0]],"v":[[-180.978,101.465],[-167.4,112.75]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.247058823705,0.266666680574,0.101960785687,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[0,0],[0,0],[0,0],[0.151,-0.374],[0.239,-0.558],[0.509,-1.107],[0.122,-0.268],[0.116,-0.249],[0.416,-0.832],[0.109,-0.219],[0.092,-0.193],[0.025,-0.056],[0.02,-0.036],[0.012,-0.007],[0.005,-0.019],[0,0],[40.65,-59.98],[0,0],[0,0],[-6.94,-17.59],[-0.012,-1.143],[0.087,-1.187],[0.178,-1.225],[0.159,-0.858],[0.699,-2.494]],"o":[[0,0],[0,0],[-0.153,0.384],[-0.26,0.593],[-0.565,1.319],[-0.127,0.287],[-0.12,0.258],[-0.596,1.28],[-0.135,0.275],[-0.152,0.301],[-0.037,0.062],[-0.02,0.036],[-0.003,0.01],[-0.042,0.082],[-0.012,0.007],[-96.159,-19.492],[-45.77,67.51],[-23.898,-14.344],[1.05,-283.194],[0.4,1],[0.012,1.13],[-0.088,1.197],[-0.12,0.848],[-0.459,2.485],[0,0]],"v":[[193.873,-39.172],[177.416,-33.595],[188.442,-23.644],[187.979,-22.515],[187.234,-20.787],[185.61,-17.141],[185.229,-16.321],[184.874,-15.567],[183.329,-12.375],[182.961,-11.645],[182.587,-10.895],[182.49,-10.724],[182.431,-10.616],[182.411,-10.58],[182.339,-10.423],[182.324,-10.407],[36.689,101.287],[-44.846,221.62],[-67.497,184.85],[196.329,-57.381],[196.57,-56.373],[196.454,-52.877],[196.053,-49.239],[195.636,-46.681],[193.885,-39.179]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[0,0],[0,0],[0.05,-0.4],[0.09,-0.6],[0.21,-1.2],[0.05,-0.29],[0.05,-0.27],[0.19,-0.91],[0.05,-0.24],[0.04,-0.21],[0.01,-0.06],[0.01,-0.04],[0.01,-0.01],[0,-0.02],[0,0],[40.65,-59.98],[0,0],[0,0],[-6.94,-17.59],[-0.311,-1.1],[-0.22,-1.17],[-0.14,-1.23],[-0.07,-0.87],[0.04,-2.59]],"o":[[0,0],[0,0],[-0.05,0.41],[-0.1,0.64],[-0.21,1.42],[-0.05,0.31],[-0.05,0.28],[-0.25,1.39],[-0.06,0.3],[-0.07,0.33],[-0.02,0.07],[-0.01,0.04],[0,0.01],[-0.02,0.09],[-0.01,0.01],[-97.95,5.68],[-45.77,67.51],[-18.52,-20.83],[85.63,-269.94],[0.4,1],[0.3,1.09],[0.22,1.18],[0.1,0.85],[0.19,2.52],[0,0]],"v":[[196.659,-85.373],[182.169,-75.783],[195.369,-68.973],[195.209,-67.763],[194.929,-65.903],[194.289,-61.963],[194.129,-61.073],[193.979,-60.253],[193.299,-56.773],[193.129,-55.973],[192.959,-55.153],[192.909,-54.963],[192.879,-54.843],[192.869,-54.803],[192.839,-54.633],[192.829,-54.613],[36.689,101.287],[-72.311,201.327],[-90.061,154.327],[193.829,-105.853],[194.879,-102.693],[195.659,-99.283],[196.199,-95.663],[196.449,-93.083],[196.669,-85.383]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[0,0],[0,0],[0,0],[0.151,-0.374],[0.239,-0.558],[0.509,-1.107],[0.122,-0.268],[0.116,-0.249],[0.416,-0.832],[0.109,-0.219],[0.092,-0.193],[0.025,-0.056],[0.02,-0.036],[0.012,-0.007],[0.005,-0.019],[0,0],[40.65,-59.98],[0,0],[0,0],[-6.94,-17.59],[-0.012,-1.143],[0.087,-1.187],[0.178,-1.225],[0.159,-0.858],[0.699,-2.494]],"o":[[0,0],[0,0],[-0.153,0.384],[-0.26,0.593],[-0.565,1.319],[-0.127,0.287],[-0.12,0.258],[-0.596,1.28],[-0.135,0.275],[-0.152,0.301],[-0.037,0.062],[-0.02,0.036],[-0.003,0.01],[-0.042,0.082],[-0.012,0.007],[-96.159,-19.492],[-45.77,67.51],[-23.898,-14.344],[1.05,-283.194],[0.4,1],[0.012,1.13],[-0.088,1.197],[-0.12,0.848],[-0.459,2.485],[0,0]],"v":[[193.873,-39.172],[177.416,-33.595],[188.442,-23.644],[187.979,-22.515],[187.234,-20.787],[185.61,-17.141],[185.229,-16.321],[184.874,-15.567],[183.329,-12.375],[182.961,-11.645],[182.587,-10.895],[182.49,-10.724],[182.431,-10.616],[182.411,-10.58],[182.339,-10.423],[182.324,-10.407],[36.689,101.287],[-44.846,221.62],[-67.497,184.85],[196.329,-57.381],[196.57,-56.373],[196.454,-52.877],[196.053,-49.239],[195.636,-46.681],[193.885,-39.179]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":62,"s":[{"i":[[0,0],[0,0],[0,0],[0.05,-0.4],[0.09,-0.6],[0.21,-1.2],[0.05,-0.29],[0.05,-0.27],[0.19,-0.91],[0.05,-0.24],[0.04,-0.21],[0.01,-0.06],[0.01,-0.04],[0.01,-0.01],[0,-0.02],[0,0],[40.65,-59.98],[0,0],[0,0],[-6.94,-17.59],[-0.311,-1.1],[-0.22,-1.17],[-0.14,-1.23],[-0.07,-0.87],[0.04,-2.59]],"o":[[0,0],[0,0],[-0.05,0.41],[-0.1,0.64],[-0.21,1.42],[-0.05,0.31],[-0.05,0.28],[-0.25,1.39],[-0.06,0.3],[-0.07,0.33],[-0.02,0.07],[-0.01,0.04],[0,0.01],[-0.02,0.09],[-0.01,0.01],[-97.95,5.68],[-45.77,67.51],[-18.52,-20.83],[85.63,-269.94],[0.4,1],[0.3,1.09],[0.22,1.18],[0.1,0.85],[0.19,2.52],[0,0]],"v":[[196.659,-85.373],[182.169,-75.783],[195.369,-68.973],[195.209,-67.763],[194.929,-65.903],[194.289,-61.963],[194.129,-61.073],[193.979,-60.253],[193.299,-56.773],[193.129,-55.973],[192.959,-55.153],[192.909,-54.963],[192.879,-54.843],[192.869,-54.803],[192.839,-54.633],[192.829,-54.613],[36.689,101.287],[-72.311,201.327],[-90.061,154.327],[193.829,-105.853],[194.879,-102.693],[195.659,-99.283],[196.199,-95.663],[196.449,-93.083],[196.669,-85.383]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":76,"s":[{"i":[[0,0],[0,0],[0,0],[0.151,-0.374],[0.239,-0.558],[0.509,-1.107],[0.122,-0.268],[0.116,-0.249],[0.416,-0.832],[0.109,-0.219],[0.092,-0.193],[0.025,-0.056],[0.02,-0.036],[0.012,-0.007],[0.005,-0.019],[0,0],[40.65,-59.98],[0,0],[0,0],[-6.94,-17.59],[-0.012,-1.143],[0.087,-1.187],[0.178,-1.225],[0.159,-0.858],[0.699,-2.494]],"o":[[0,0],[0,0],[-0.153,0.384],[-0.26,0.593],[-0.565,1.319],[-0.127,0.287],[-0.12,0.258],[-0.596,1.28],[-0.135,0.275],[-0.152,0.301],[-0.037,0.062],[-0.02,0.036],[-0.003,0.01],[-0.042,0.082],[-0.012,0.007],[-96.159,-19.492],[-45.77,67.51],[-23.898,-14.344],[1.05,-283.194],[0.4,1],[0.012,1.13],[-0.088,1.197],[-0.12,0.848],[-0.459,2.485],[0,0]],"v":[[193.873,-39.172],[177.416,-33.595],[188.442,-23.644],[187.979,-22.515],[187.234,-20.787],[185.61,-17.141],[185.229,-16.321],[184.874,-15.567],[183.329,-12.375],[182.961,-11.645],[182.587,-10.895],[182.49,-10.724],[182.431,-10.616],[182.411,-10.58],[182.339,-10.423],[182.324,-10.407],[36.689,101.287],[-44.846,221.62],[-67.497,184.85],[196.329,-57.381],[196.57,-56.373],[196.454,-52.877],[196.053,-49.239],[195.636,-46.681],[193.885,-39.179]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[{"i":[[0,0],[0,0],[0,0],[0.101,-0.35],[0.162,-0.527],[0.352,-1.058],[0.084,-0.256],[0.08,-0.238],[0.293,-0.807],[0.077,-0.213],[0.064,-0.186],[0.017,-0.053],[0.014,-0.035],[0.01,-0.01],[0.003,-0.017],[0,0],[43.432,-57.201],[0,0],[0,0],[-3.494,-14.03],[-0.102,-0.9],[-0.019,-0.971],[0.056,-1.033],[0.069,-0.736],[0.406,-2.224]],"o":[[0,0],[0,0],[-0.102,0.358],[-0.178,0.562],[-0.384,1.246],[-0.087,0.273],[-0.083,0.247],[-0.414,1.226],[-0.095,0.266],[-0.108,0.293],[-0.027,0.063],[-0.015,0.036],[-0.001,0.009],[-0.03,0.08],[-0.01,0.01],[-66.957,24.839],[-48.89,64.39],[-12.872,-15.183],[112.082,-243.488],[0.199,0.799],[0.1,0.89],[0.019,0.979],[-0.036,0.714],[-0.199,2.131],[0,0]],"v":[[184.657,-101.543],[170.87,-91.25],[181.198,-87.312],[180.888,-86.252],[180.381,-84.619],[179.267,-81.153],[179.003,-80.368],[178.756,-79.644],[177.675,-76.566],[176.823,-71.814],[176.559,-71.088],[176.489,-70.918],[176.446,-70.811],[176.432,-70.775],[176.382,-70.625],[176.37,-70.607],[26.7,85.733],[-89.493,172.512],[-100.885,135.18],[185.173,-118.678],[185.618,-116.122],[185.797,-113.313],[185.74,-110.29],[185.584,-108.117],[184.667,-101.553]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136,"s":[{"i":[[0,0],[0,0],[0,0],[0.09,-0.39],[0.149,-0.583],[0.328,-1.163],[0.078,-0.281],[0.076,-0.262],[0.279,-0.879],[0.073,-0.232],[0.061,-0.203],[0.016,-0.058],[0.014,-0.038],[0.011,-0.009],[0.002,-0.02],[0,0],[40.65,-59.98],[0,0],[0,0],[-6.94,-17.59],[-0.192,-1.117],[-0.099,-1.177],[-0.014,-1.228],[0.02,-0.865],[0.301,-2.552]],"o":[[0,0],[0,0],[-0.091,0.399],[-0.163,0.621],[-0.35,1.38],[-0.08,0.301],[-0.078,0.271],[-0.387,1.346],[-0.09,0.29],[-0.103,0.318],[-0.027,0.067],[-0.014,0.038],[-0.001,0.01],[-0.029,0.087],[-0.011,0.009],[-97.241,-4.277],[-45.77,67.51],[-20.648,-18.264],[52.171,-275.183],[0.4,1],[0.186,1.106],[0.098,1.187],[0.013,0.849],[-0.067,2.506],[0,0]],"v":[[195.557,-67.097],[180.289,-59.094],[192.629,-51.042],[192.349,-49.864],[191.885,-48.056],[190.856,-44.232],[190.608,-43.37],[190.377,-42.576],[189.355,-39.21],[189.107,-38.438],[188.856,-37.645],[188.788,-37.463],[188.746,-37.348],[188.732,-37.309],[188.685,-37.144],[188.673,-37.126],[36.689,101.287],[-61.447,209.355],[-81.135,166.401],[194.818,-86.678],[195.548,-84.37],[195.973,-80.926],[196.141,-77.299],[196.128,-74.727],[195.568,-67.106]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":157,"s":[{"i":[[0,0],[0,0],[0,0],[0.061,-0.397],[0.105,-0.596],[0.241,-1.191],[0.057,-0.288],[0.057,-0.268],[0.213,-0.902],[0.056,-0.238],[0.045,-0.208],[0.011,-0.06],[0.011,-0.039],[0.01,-0.01],[0.001,-0.02],[0,0],[40.65,-59.98],[0,0],[0,0],[-6.94,-17.59],[-0.28,-1.104],[-0.189,-1.172],[-0.107,-1.229],[-0.046,-0.869],[0.108,-2.58]],"o":[[0,0],[0,0],[-0.061,0.407],[-0.117,0.635],[-0.246,1.41],[-0.058,0.308],[-0.057,0.278],[-0.286,1.379],[-0.068,0.297],[-0.079,0.327],[-0.022,0.069],[-0.011,0.04],[0,0.01],[-0.022,0.089],[-0.01,0.009],[-97.766,3.098],[-45.77,67.51],[-19.072,-20.165],[76.955,-271.299],[0.4,1],[0.27,1.094],[0.189,1.182],[0.078,0.85],[0.123,2.516],[0,0]],"v":[[196.373,-80.635],[181.681,-71.456],[194.659,-64.324],[194.467,-63.122],[194.14,-61.276],[193.399,-57.366],[193.216,-56.483],[193.045,-55.67],[192.277,-52.22],[192.086,-51.427],[191.895,-50.614],[191.841,-50.426],[191.808,-50.307],[191.796,-50.268],[191.762,-50.099],[191.752,-50.079],[36.689,101.287],[-69.494,203.408],[-87.747,157.457],[194.085,-100.882],[195.053,-97.943],[195.741,-94.524],[196.184,-90.902],[196.366,-88.324],[196.383,-80.644]],"c":true}]},{"t":180,"s":[{"i":[[0,0],[0,0],[0,0],[0.151,-0.374],[0.239,-0.558],[0.509,-1.107],[0.122,-0.268],[0.116,-0.249],[0.416,-0.832],[0.109,-0.219],[0.092,-0.193],[0.025,-0.056],[0.02,-0.036],[0.012,-0.007],[0.005,-0.019],[0,0],[40.65,-59.98],[0,0],[0,0],[-6.94,-17.59],[-0.012,-1.143],[0.087,-1.187],[0.178,-1.225],[0.159,-0.858],[0.699,-2.494]],"o":[[0,0],[0,0],[-0.153,0.384],[-0.26,0.593],[-0.565,1.319],[-0.127,0.287],[-0.12,0.258],[-0.596,1.28],[-0.135,0.275],[-0.152,0.301],[-0.037,0.062],[-0.02,0.036],[-0.003,0.01],[-0.042,0.082],[-0.012,0.007],[-96.159,-19.492],[-45.77,67.51],[-23.898,-14.344],[1.05,-283.194],[0.4,1],[0.012,1.13],[-0.088,1.197],[-0.12,0.848],[-0.459,2.485],[0,0]],"v":[[193.873,-39.172],[177.416,-33.595],[188.442,-23.644],[187.979,-22.515],[187.234,-20.787],[185.61,-17.141],[185.229,-16.321],[184.874,-15.567],[183.329,-12.375],[182.961,-11.645],[182.587,-10.895],[182.49,-10.724],[182.431,-10.616],[182.411,-10.58],[182.339,-10.423],[182.324,-10.407],[36.689,101.287],[-44.846,221.62],[-67.497,184.85],[196.329,-57.381],[196.57,-56.373],[196.454,-52.877],[196.053,-49.239],[195.636,-46.681],[193.885,-39.179]],"c":true}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.345098048449,0.360784322023,0.180392161012,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[0,0],[-17.899,22.582]],"o":[[0,0],[0,0]],"v":[[-50.795,195.049],[-7.657,138.807]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[-27.412,19.859]],"o":[[0,0],[0,0]],"v":[[-72.034,171.241],[-19.916,141.725]],"c":false}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[0,0],[-17.899,22.582]],"o":[[0,0],[0,0]],"v":[[-50.795,195.049],[-7.657,138.807]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":62,"s":[{"i":[[0,0],[-27.412,19.859]],"o":[[0,0],[0,0]],"v":[[-72.034,171.241],[-19.916,141.725]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":76,"s":[{"i":[[0,0],[-17.899,22.582]],"o":[[0,0],[0,0]],"v":[[-50.795,195.049],[-7.657,138.807]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[{"i":[[0,0],[-26.328,20.943]],"o":[[0,0],[0,0]],"v":[[-87.872,147.079],[-38.998,114.319]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136,"s":[{"i":[[0,0],[-23.649,20.936]],"o":[[0,0],[0,0]],"v":[[-63.632,180.659],[-15.067,140.571]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":157,"s":[{"i":[[0,0],[-26.436,20.138]],"o":[[0,0],[0,0]],"v":[[-69.856,173.683],[-18.659,141.426]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[-17.899,22.582]],"o":[[0,0],[0,0]],"v":[[-50.795,195.049],[-7.657,138.807]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.380392163992,0.40000000596,0.196078434587,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[0,0],[-8.828,19.345],[-45.173,3.673]],"o":[[11.281,-17.263],[22.325,-48.921],[0,0]],"v":[[4.552,121.708],[41.085,71.47],[134.896,-35.896]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[-8.828,19.345],[-37.005,25.425]],"o":[[14.113,-13.617],[22.325,-48.921],[0,0]],"v":[[5.108,120.874],[41.085,71.47],[133.785,-58.673]],"c":false}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[0,0],[-8.828,19.345],[-45.173,3.673]],"o":[[11.281,-17.263],[22.325,-48.921],[0,0]],"v":[[4.552,121.708],[41.085,71.47],[134.896,-35.896]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":62,"s":[{"i":[[0,0],[-8.828,19.345],[-37.005,25.425]],"o":[[14.113,-13.617],[22.325,-48.921],[0,0]],"v":[[5.108,120.874],[41.085,71.47],[133.785,-58.673]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":76,"s":[{"i":[[0,0],[-8.828,19.345],[-45.173,3.673]],"o":[[11.281,-17.263],[22.325,-48.921],[0,0]],"v":[[4.552,121.708],[41.085,71.47],[134.896,-35.896]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[{"i":[[0,0],[-10.338,17.836],[-35.343,27.087]],"o":[[14.042,-13.688],[26.143,-45.104],[0,0]],"v":[[-14.573,92.869],[28.901,55.118],[126.974,-69.652]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136,"s":[{"i":[[0,0],[-8.828,19.345],[-40.236,16.82]],"o":[[12.993,-15.059],[22.325,-48.921],[0,0]],"v":[[4.888,121.204],[41.085,71.47],[134.224,-49.663]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":157,"s":[{"i":[[0,0],[-8.828,19.345],[-37.843,23.194]],"o":[[13.823,-13.991],[22.325,-48.921],[0,0]],"v":[[5.051,120.96],[41.085,71.47],[133.898,-56.337]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[-8.828,19.345],[-45.173,3.673]],"o":[[11.281,-17.263],[22.325,-48.921],[0,0]],"v":[[4.552,121.708],[41.085,71.47],[134.896,-35.896]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.380392163992,0.40000000596,0.196078434587,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[0,0],[-3.455,-0.58]],"o":[[3.713,-0.309],[0,0]],"v":[[149.898,-38.024],[159.01,-37.754]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[-2.957,0.701]],"o":[[2.931,-1.15],[0,0]],"v":[[151.565,-68.302],[160.399,-71.087]],"c":false}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[0,0],[-3.455,-0.58]],"o":[[3.713,-0.309],[0,0]],"v":[[149.898,-38.024],[159.01,-37.754]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":62,"s":[{"i":[[0,0],[-2.957,0.701]],"o":[[2.931,-1.15],[0,0]],"v":[[151.565,-68.302],[160.399,-71.087]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":76,"s":[{"i":[[0,0],[-3.455,-0.58]],"o":[[3.713,-0.309],[0,0]],"v":[[149.898,-38.024],[159.01,-37.754]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[{"i":[[0,0],[-2.633,1.025]],"o":[[2.676,-1.406],[0,0]],"v":[[143.585,-80.45],[151.551,-84.103]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136,"s":[{"i":[[0,0],[-3.154,0.194]],"o":[[3.24,-0.818],[0,0]],"v":[[150.906,-56.325],[159.85,-57.901]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":157,"s":[{"i":[[0,0],[-3.008,0.57]],"o":[[3.011,-1.064],[0,0]],"v":[[151.394,-65.197],[160.257,-67.669]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[-3.455,-0.58]],"o":[[3.713,-0.309],[0,0]],"v":[[149.898,-38.024],[159.01,-37.754]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.380392163992,0.40000000596,0.196078434587,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[0,0],[-2.6,1.6],[-0.38,-0.97],[-0.012,-1.143],[0.699,-2.494],[0,0],[0,0],[0,0],[0,0],[0,0],[0.784,2.78],[-0.454,2.212]],"o":[[3.452,-1.195],[1.45,0.77],[0.4,1],[0.012,1.13],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.57,-5.568],[1.701,-8.296]],"v":[[185.553,-58.783],[193.549,-60.011],[196.329,-57.381],[196.57,-56.373],[193.873,-39.172],[180.097,-34.504],[187.949,-24.089],[182.339,-10.423],[171.359,-12.322],[177.106,-28.821],[171.406,-35.673],[182.348,-45.889]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[-2.6,1.6],[-0.38,-0.97],[-0.311,-1.1],[0.04,-2.59],[0,0],[0,0],[0,0],[0,0],[0,0],[1.467,2.488],[0.126,2.255]],"o":[[2.78,-2.37],[1.45,0.77],[0.4,1],[0.3,1.09],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-2.938,-4.984],[-0.471,-8.456]],"v":[[182.969,-102.553],[191.049,-108.483],[193.829,-105.853],[194.879,-102.693],[196.659,-85.373],[184.529,-77.345],[194.778,-69.278],[192.839,-54.633],[181.739,-53.668],[183.087,-71.087],[175.828,-76.259],[183.802,-88.928]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[0,0],[-2.6,1.6],[-0.38,-0.97],[-0.012,-1.143],[0.699,-2.494],[0,0],[0,0],[0,0],[0,0],[0,0],[0.784,2.78],[-0.454,2.212]],"o":[[3.452,-1.195],[1.45,0.77],[0.4,1],[0.012,1.13],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.57,-5.568],[1.701,-8.296]],"v":[[185.553,-58.783],[193.549,-60.011],[196.329,-57.381],[196.57,-56.373],[193.873,-39.172],[180.097,-34.504],[187.949,-24.089],[182.339,-10.423],[171.359,-12.322],[177.106,-28.821],[171.406,-35.673],[182.348,-45.889]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":62,"s":[{"i":[[0,0],[-2.6,1.6],[-0.38,-0.97],[-0.311,-1.1],[0.04,-2.59],[0,0],[0,0],[0,0],[0,0],[0,0],[1.467,2.488],[0.126,2.255]],"o":[[2.78,-2.37],[1.45,0.77],[0.4,1],[0.3,1.09],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-2.938,-4.984],[-0.471,-8.456]],"v":[[182.969,-102.553],[191.049,-108.483],[193.829,-105.853],[194.879,-102.693],[196.659,-85.373],[184.529,-77.345],[194.778,-69.278],[192.839,-54.633],[181.739,-53.668],[183.087,-71.087],[175.828,-76.259],[183.802,-88.928]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":76,"s":[{"i":[[0,0],[-2.6,1.6],[-0.38,-0.97],[-0.012,-1.143],[0.699,-2.494],[0,0],[0,0],[0,0],[0,0],[0,0],[0.784,2.78],[-0.454,2.212]],"o":[[3.452,-1.195],[1.45,0.77],[0.4,1],[0.012,1.13],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.57,-5.568],[1.701,-8.296]],"v":[[185.553,-58.783],[193.549,-60.011],[196.329,-57.381],[196.57,-56.373],[193.873,-39.172],[180.097,-34.504],[187.949,-24.089],[182.339,-10.423],[171.359,-12.322],[177.106,-28.821],[171.406,-35.673],[182.348,-45.889]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[{"i":[[0,0],[-2.457,1.744],[-0.192,-0.773],[-0.101,-0.9],[0.406,-2.224],[0,0],[0,0],[0,0],[0,0],[0,0],[0.899,1.921],[-0.216,1.913]],"o":[[2.721,-2.429],[1.131,0.451],[0.199,0.799],[0.1,0.89],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.801,-3.847],[0.81,-7.175]],"v":[[175.398,-114.293],[183.169,-120.531],[185.172,-118.678],[185.619,-116.122],[184.657,-101.543],[173.116,-92.927],[180.736,-87.488],[176.382,-70.625],[166.736,-68.206],[170.982,-87.36],[165.507,-90.747],[174.155,-102.742]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136,"s":[{"i":[[0,0],[-2.6,1.6],[-0.38,-0.97],[-0.192,-1.117],[0.301,-2.552],[0,0],[0,0],[0,0],[0,0],[0,0],[1.197,2.604],[-0.104,2.238]],"o":[[3.046,-1.905],[1.45,0.77],[0.4,1],[0.186,1.106],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-2.397,-5.215],[0.388,-8.393]],"v":[[183.991,-85.238],[192.038,-89.308],[194.818,-86.678],[195.548,-84.37],[195.557,-67.097],[182.776,-60.398],[192.077,-51.402],[188.685,-37.144],[177.633,-37.312],[180.721,-54.367],[174.078,-60.204],[183.227,-71.902]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":157,"s":[{"i":[[0,0],[-2.6,1.6],[-0.38,-0.97],[-0.28,-1.104],[0.108,-2.58],[0,0],[0,0],[0,0],[0,0],[0,0],[1.397,2.518],[0.066,2.25]],"o":[[2.849,-2.249],[1.45,0.77],[0.4,1],[0.27,1.094],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-2.798,-5.044],[-0.248,-8.44]],"v":[[183.234,-98.064],[191.306,-103.512],[194.085,-100.882],[195.053,-97.943],[196.373,-80.635],[184.075,-72.952],[194.078,-64.643],[191.762,-50.099],[180.674,-49.428],[182.473,-66.752],[175.374,-72.096],[183.653,-84.514]],"c":true}]},{"t":180,"s":[{"i":[[0,0],[-2.6,1.6],[-0.38,-0.97],[-0.012,-1.143],[0.699,-2.494],[0,0],[0,0],[0,0],[0,0],[0,0],[0.784,2.78],[-0.454,2.212]],"o":[[3.452,-1.195],[1.45,0.77],[0.4,1],[0.012,1.13],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.57,-5.568],[1.701,-8.296]],"v":[[185.553,-58.783],[193.549,-60.011],[196.329,-57.381],[196.57,-56.373],[193.873,-39.172],[180.097,-34.504],[187.949,-24.089],[182.339,-10.423],[171.359,-12.322],[177.106,-28.821],[171.406,-35.673],[182.348,-45.889]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.635294139385,0.654901981354,0.450980395079,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[0,0],[0,0],[0.092,-0.193],[0.023,-0.046],[0.017,-0.027],[0.012,-0.007],[0.008,-0.029],[0,0],[40.65,-59.98],[0,0],[0,0],[-6.94,-17.59],[-0.012,-1.143],[0.699,-2.494]],"o":[[0,0],[-0.153,0.384],[-0.037,0.062],[-0.023,0.046],[-0.003,0.01],[-0.042,0.082],[-0.012,0.007],[-96.159,-19.492],[-45.77,67.51],[-23.898,-14.344],[1.05,-283.194],[0.4,1],[0.012,1.13],[0,0]],"v":[[177.416,-33.595],[188.442,-23.644],[182.587,-10.895],[182.49,-10.724],[182.431,-10.616],[182.411,-10.58],[182.339,-10.423],[182.324,-10.407],[36.689,101.287],[-44.846,221.62],[-67.497,184.85],[196.329,-57.381],[196.57,-56.373],[193.873,-39.172]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[0,0],[0.04,-0.21],[0.01,-0.05],[0.01,-0.03],[0.01,-0.01],[0,-0.03],[0,0],[40.65,-59.98],[0,0],[0,0],[-6.94,-17.59],[-0.311,-1.1],[0.04,-2.59]],"o":[[0,0],[-0.05,0.41],[-0.02,0.07],[-0.01,0.05],[0,0.01],[-0.02,0.09],[-0.01,0.01],[-97.95,5.68],[-45.77,67.51],[-18.52,-20.83],[85.63,-269.94],[0.4,1],[0.3,1.09],[0,0]],"v":[[182.169,-75.783],[195.369,-68.973],[192.959,-55.153],[192.909,-54.963],[192.879,-54.843],[192.869,-54.803],[192.839,-54.633],[192.829,-54.613],[36.689,101.287],[-72.311,201.327],[-90.061,154.327],[193.829,-105.853],[194.879,-102.693],[196.659,-85.373]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[0,0],[0,0],[0.092,-0.193],[0.023,-0.046],[0.017,-0.027],[0.012,-0.007],[0.008,-0.029],[0,0],[40.65,-59.98],[0,0],[0,0],[-6.94,-17.59],[-0.012,-1.143],[0.699,-2.494]],"o":[[0,0],[-0.153,0.384],[-0.037,0.062],[-0.023,0.046],[-0.003,0.01],[-0.042,0.082],[-0.012,0.007],[-96.159,-19.492],[-45.77,67.51],[-23.898,-14.344],[1.05,-283.194],[0.4,1],[0.012,1.13],[0,0]],"v":[[177.416,-33.595],[188.442,-23.644],[182.587,-10.895],[182.49,-10.724],[182.431,-10.616],[182.411,-10.58],[182.339,-10.423],[182.324,-10.407],[36.689,101.287],[-44.846,221.62],[-67.497,184.85],[196.329,-57.381],[196.57,-56.373],[193.873,-39.172]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":62,"s":[{"i":[[0,0],[0,0],[0.04,-0.21],[0.01,-0.05],[0.01,-0.03],[0.01,-0.01],[0,-0.03],[0,0],[40.65,-59.98],[0,0],[0,0],[-6.94,-17.59],[-0.311,-1.1],[0.04,-2.59]],"o":[[0,0],[-0.05,0.41],[-0.02,0.07],[-0.01,0.05],[0,0.01],[-0.02,0.09],[-0.01,0.01],[-97.95,5.68],[-45.77,67.51],[-18.52,-20.83],[85.63,-269.94],[0.4,1],[0.3,1.09],[0,0]],"v":[[182.169,-75.783],[195.369,-68.973],[192.959,-55.153],[192.909,-54.963],[192.879,-54.843],[192.869,-54.803],[192.839,-54.633],[192.829,-54.613],[36.689,101.287],[-72.311,201.327],[-90.061,154.327],[193.829,-105.853],[194.879,-102.693],[196.659,-85.373]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":76,"s":[{"i":[[0,0],[0,0],[0.092,-0.193],[0.023,-0.046],[0.017,-0.027],[0.012,-0.007],[0.008,-0.029],[0,0],[40.65,-59.98],[0,0],[0,0],[-6.94,-17.59],[-0.012,-1.143],[0.699,-2.494]],"o":[[0,0],[-0.153,0.384],[-0.037,0.062],[-0.023,0.046],[-0.003,0.01],[-0.042,0.082],[-0.012,0.007],[-96.159,-19.492],[-45.77,67.51],[-23.898,-14.344],[1.05,-283.194],[0.4,1],[0.012,1.13],[0,0]],"v":[[177.416,-33.595],[188.442,-23.644],[182.587,-10.895],[182.49,-10.724],[182.431,-10.616],[182.411,-10.58],[182.339,-10.423],[182.324,-10.407],[36.689,101.287],[-44.846,221.62],[-67.497,184.85],[196.329,-57.381],[196.57,-56.373],[193.873,-39.172]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[{"i":[[0,0],[0,0],[0.064,-0.186],[0.016,-0.044],[0.013,-0.027],[0.01,-0.01],[0.004,-0.026],[0,0],[43.432,-57.201],[0,0],[0,0],[-3.494,-14.03],[-0.102,-0.9],[0.406,-2.224]],"o":[[0,0],[-0.102,0.358],[-0.027,0.063],[-0.016,0.044],[-0.001,0.009],[-0.03,0.08],[-0.01,0.01],[-67.728,24.956],[-48.89,64.39],[-12.872,-15.183],[112.082,-243.488],[0.199,0.799],[0.1,0.89],[0,0]],"v":[[170.87,-91.25],[181.198,-87.312],[176.559,-71.088],[176.489,-70.918],[176.446,-70.811],[176.432,-70.775],[176.382,-70.625],[176.37,-70.607],[26.7,85.733],[-89.493,172.512],[-100.885,135.18],[185.173,-118.678],[185.618,-116.122],[184.657,-101.543]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136,"s":[{"i":[[0,0],[0,0],[0.061,-0.203],[0.015,-0.048],[0.013,-0.029],[0.011,-0.009],[0.003,-0.03],[0,0],[40.65,-59.98],[0,0],[0,0],[-6.94,-17.59],[-0.192,-1.117],[0.301,-2.552]],"o":[[0,0],[-0.091,0.399],[-0.027,0.067],[-0.015,0.048],[-0.001,0.01],[-0.029,0.087],[-0.011,0.009],[-97.241,-4.277],[-45.77,67.51],[-20.648,-18.264],[52.171,-275.183],[0.4,1],[0.186,1.106],[0,0]],"v":[[180.289,-59.094],[192.629,-51.042],[188.856,-37.645],[188.788,-37.463],[188.746,-37.348],[188.732,-37.309],[188.685,-37.144],[188.673,-37.126],[36.689,101.287],[-61.447,209.355],[-81.135,166.401],[194.818,-86.678],[195.548,-84.37],[195.557,-67.097]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":157,"s":[{"i":[[0,0],[0,0],[0.045,-0.208],[0.011,-0.05],[0.011,-0.03],[0.01,-0.01],[0.001,-0.03],[0,0],[40.65,-59.98],[0,0],[0,0],[-6.94,-17.59],[-0.28,-1.104],[0.108,-2.58]],"o":[[0,0],[-0.061,0.407],[-0.022,0.069],[-0.012,0.049],[0,0.01],[-0.022,0.089],[-0.01,0.009],[-97.766,3.098],[-45.77,67.51],[-19.072,-20.165],[76.955,-271.299],[0.4,1],[0.27,1.094],[0,0]],"v":[[181.681,-71.456],[194.659,-64.324],[191.895,-50.614],[191.841,-50.426],[191.808,-50.307],[191.796,-50.268],[191.762,-50.099],[191.752,-50.079],[36.689,101.287],[-69.494,203.408],[-87.747,157.457],[194.085,-100.882],[195.053,-97.943],[196.373,-80.635]],"c":true}]},{"t":180,"s":[{"i":[[0,0],[0,0],[0.092,-0.193],[0.023,-0.046],[0.017,-0.027],[0.012,-0.007],[0.008,-0.029],[0,0],[40.65,-59.98],[0,0],[0,0],[-6.94,-17.59],[-0.012,-1.143],[0.699,-2.494]],"o":[[0,0],[-0.153,0.384],[-0.037,0.062],[-0.023,0.046],[-0.003,0.01],[-0.042,0.082],[-0.012,0.007],[-96.159,-19.492],[-45.77,67.51],[-23.898,-14.344],[1.05,-283.194],[0.4,1],[0.012,1.13],[0,0]],"v":[[177.416,-33.595],[188.442,-23.644],[182.587,-10.895],[182.49,-10.724],[182.431,-10.616],[182.411,-10.58],[182.339,-10.423],[182.324,-10.407],[36.689,101.287],[-44.846,221.62],[-67.497,184.85],[196.329,-57.381],[196.57,-56.373],[193.873,-39.172]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.498039215803,0.521568655968,0.313725501299,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[36.199,-18.015],[-5.182,-9.493],[0,0],[0,0],[-4.104,-2.774],[-80.984,-52.959],[37.029,18.857]],"o":[[0,0],[0,0],[0,0],[2.992,3.297],[0,0],[0,0],[-37.029,-18.857]],"v":[[-203.992,78.812],[-197.205,96.18],[-181.222,101.187],[-187.888,109.372],[-177.283,118.601],[-44.85,221.621],[-86.801,74.727]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[39.171,-10.024],[-3.076,-10.368],[0,0],[0,0],[-3.431,-3.573],[-61.457,-74.739],[37.029,18.857]],"o":[[0,0],[0,0],[0,0],[2.234,3.851],[0,0],[0,0],[-37.029,-18.857]],"v":[[-214.258,55.789],[-211.264,74.194],[-196.687,82.441],[-204.921,89.046],[-196.487,100.294],[-72.315,201.327],[-86.801,74.727]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[36.199,-18.015],[-5.182,-9.493],[0,0],[0,0],[-4.104,-2.774],[-80.984,-52.959],[37.029,18.857]],"o":[[0,0],[0,0],[0,0],[2.992,3.297],[0,0],[0,0],[-37.029,-18.857]],"v":[[-203.992,78.812],[-197.205,96.18],[-181.222,101.187],[-187.888,109.372],[-177.283,118.601],[-44.85,221.621],[-86.801,74.727]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":62,"s":[{"i":[[39.171,-10.024],[-3.076,-10.368],[0,0],[0,0],[-3.431,-3.573],[-61.457,-74.739],[37.029,18.857]],"o":[[0,0],[0,0],[0,0],[2.234,3.851],[0,0],[0,0],[-37.029,-18.857]],"v":[[-214.258,55.789],[-211.264,74.194],[-196.687,82.441],[-204.921,89.046],[-196.487,100.294],[-72.315,201.327],[-86.801,74.727]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":76,"s":[{"i":[[36.199,-18.015],[-5.182,-9.493],[0,0],[0,0],[-4.104,-2.774],[-80.984,-52.959],[37.029,18.857]],"o":[[0,0],[0,0],[0,0],[2.992,3.297],[0,0],[0,0],[-37.029,-18.857]],"v":[[-203.992,78.812],[-197.205,96.18],[-181.222,101.187],[-187.888,109.372],[-177.283,118.601],[-44.85,221.621],[-86.801,74.727]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[{"i":[[34.988,-14.207],[-1.147,-8.439],[0,0],[0,0],[-2.426,-2.568],[-41.91,-55.192],[29.008,10.836]],"o":[[0,0],[0,0],[0,0],[1.361,2.978],[0,0],[0,0],[-29.008,-10.836]],"v":[[-187.544,78.335],[-187.621,93.668],[-176.32,98.64],[-184.321,105.479],[-178.711,113.902],[-89.497,172.512],[-81.098,76.262]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136,"s":[{"i":[[37.995,-13.185],[-3.909,-10.022],[0,0],[0,0],[-3.697,-3.257],[-69.181,-66.123],[37.029,18.857]],"o":[[0,0],[0,0],[0,0],[2.534,3.632],[0,0],[0,0],[-37.029,-18.857]],"v":[[-210.197,64.897],[-205.702,82.891],[-190.569,89.857],[-198.183,97.087],[-188.89,107.536],[-61.451,209.355],[-86.801,74.727]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":157,"s":[{"i":[[38.867,-10.843],[-3.292,-10.279],[0,0],[0,0],[-3.5,-3.491],[-63.46,-72.506],[37.029,18.857]],"o":[[0,0],[0,0],[0,0],[2.312,3.794],[0,0],[0,0],[-37.029,-18.857]],"v":[[-213.205,58.15],[-209.822,76.449],[-195.101,84.364],[-203.174,91.131],[-194.517,102.172],[-69.498,203.408],[-86.801,74.727]],"c":true}]},{"t":180,"s":[{"i":[[36.199,-18.015],[-5.182,-9.493],[0,0],[0,0],[-4.104,-2.774],[-80.984,-52.959],[37.029,18.857]],"o":[[0,0],[0,0],[0,0],[2.992,3.297],[0,0],[0,0],[-37.029,-18.857]],"v":[[-203.992,78.812],[-197.205,96.18],[-181.222,101.187],[-187.888,109.372],[-177.283,118.601],[-44.85,221.621],[-86.801,74.727]],"c":true}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.247058823705,0.266666680574,0.101960785687,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[36.199,-18.015],[-5.182,-9.493],[0,0],[0,0],[-4.104,-2.774],[-80.984,-52.959],[37.029,18.857]],"o":[[0,0],[0,0],[0,0],[2.992,3.297],[0,0],[0,0],[-37.029,-18.857]],"v":[[-203.992,78.812],[-197.205,96.18],[-181.222,101.187],[-187.888,109.372],[-177.283,118.601],[-44.85,221.621],[-86.801,74.727]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[39.171,-10.024],[-3.076,-10.368],[0,0],[0,0],[-3.431,-3.573],[-61.457,-74.739],[37.029,18.857]],"o":[[0,0],[0,0],[0,0],[2.234,3.851],[0,0],[0,0],[-37.029,-18.857]],"v":[[-214.258,55.789],[-211.264,74.194],[-196.687,82.441],[-204.921,89.046],[-196.487,100.294],[-72.315,201.327],[-86.801,74.727]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[36.199,-18.015],[-5.182,-9.493],[0,0],[0,0],[-4.104,-2.774],[-80.984,-52.959],[37.029,18.857]],"o":[[0,0],[0,0],[0,0],[2.992,3.297],[0,0],[0,0],[-37.029,-18.857]],"v":[[-203.992,78.812],[-197.205,96.18],[-181.222,101.187],[-187.888,109.372],[-177.283,118.601],[-44.85,221.621],[-86.801,74.727]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":62,"s":[{"i":[[39.171,-10.024],[-3.076,-10.368],[0,0],[0,0],[-3.431,-3.573],[-61.457,-74.739],[37.029,18.857]],"o":[[0,0],[0,0],[0,0],[2.234,3.851],[0,0],[0,0],[-37.029,-18.857]],"v":[[-214.258,55.789],[-211.264,74.194],[-196.687,82.441],[-204.921,89.046],[-196.487,100.294],[-72.315,201.327],[-86.801,74.727]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":76,"s":[{"i":[[36.199,-18.015],[-5.182,-9.493],[0,0],[0,0],[-4.104,-2.774],[-80.984,-52.959],[37.029,18.857]],"o":[[0,0],[0,0],[0,0],[2.992,3.297],[0,0],[0,0],[-37.029,-18.857]],"v":[[-203.992,78.812],[-197.205,96.18],[-181.222,101.187],[-187.888,109.372],[-177.283,118.601],[-44.85,221.621],[-86.801,74.727]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[{"i":[[34.988,-14.207],[-1.147,-8.439],[0,0],[0,0],[-2.426,-2.568],[-41.91,-55.192],[29.008,10.836]],"o":[[0,0],[0,0],[0,0],[1.361,2.978],[0,0],[0,0],[-29.008,-10.836]],"v":[[-187.544,78.335],[-187.621,93.668],[-176.32,98.64],[-184.321,105.479],[-178.711,113.902],[-89.497,172.512],[-81.098,76.262]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136,"s":[{"i":[[37.995,-13.185],[-3.909,-10.022],[0,0],[0,0],[-3.697,-3.257],[-69.181,-66.123],[37.029,18.857]],"o":[[0,0],[0,0],[0,0],[2.534,3.632],[0,0],[0,0],[-37.029,-18.857]],"v":[[-210.197,64.897],[-205.702,82.891],[-190.569,89.857],[-198.183,97.087],[-188.89,107.536],[-61.451,209.355],[-86.801,74.727]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":157,"s":[{"i":[[38.867,-10.843],[-3.292,-10.279],[0,0],[0,0],[-3.5,-3.491],[-63.46,-72.506],[37.029,18.857]],"o":[[0,0],[0,0],[0,0],[2.312,3.794],[0,0],[0,0],[-37.029,-18.857]],"v":[[-213.205,58.15],[-209.822,76.449],[-195.101,84.364],[-203.174,91.131],[-194.517,102.172],[-69.498,203.408],[-86.801,74.727]],"c":true}]},{"t":180,"s":[{"i":[[36.199,-18.015],[-5.182,-9.493],[0,0],[0,0],[-4.104,-2.774],[-80.984,-52.959],[37.029,18.857]],"o":[[0,0],[0,0],[0,0],[2.992,3.297],[0,0],[0,0],[-37.029,-18.857]],"v":[[-203.992,78.812],[-197.205,96.18],[-181.222,101.187],[-187.888,109.372],[-177.283,118.601],[-44.85,221.621],[-86.801,74.727]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.380392163992,0.40000000596,0.196078434587,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":4,"parent":16,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-35,"s":[50.092]},{"i":{"x":[0.667],"y":[0.762]},"o":{"x":[0.333],"y":[0]},"t":-15,"s":[98.092]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0.6]},"t":0,"s":[41.342]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":5,"s":[33.842]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":25,"s":[118.702]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":45,"s":[50.092]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":61,"s":[124.092]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":75,"s":[49.092]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":96,"s":[98.81]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":125,"s":[68.46]},{"i":{"x":[0.667],"y":[0.573]},"o":{"x":[0.54],"y":[0]},"t":155,"s":[94.092]},{"t":180,"s":[41.342]}]},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":76,"s":[-64.776,-41.739,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[-18.185,-50.83,0],"to":[0,0,0],"ti":[0,0,0]},{"t":136,"s":[-64.776,-41.739,0]}]},"a":{"a":0,"k":[77.1,24.262,0]},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":76,"s":[-98.531,92.075,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":108,"s":[-59.049,92.075,100]},{"t":136,"s":[-98.531,92.075,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[12.171,-4.945],[0,0],[9.242,-2.126],[0,0],[9.986,17.473],[6.449,1.455],[-3.524,5.632],[1.474,13.867]],"o":[[0,0],[-12.171,4.945],[0,0],[-9.242,2.126],[0,0],[0,0],[-6.449,-1.455],[0,0],[0,0]],"v":[[232.1,53.081],[222.931,75.331],[198.728,65.786],[187.811,83.522],[169.988,66.319],[144.861,61.147],[128.962,58.095],[124.16,42.773],[110.935,29.389]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[12.424,4.268],[0,0],[8.364,4.469],[0,0],[-3.156,15.137],[5.777,3.214],[-4.968,4.41],[-2.493,13.72]],"o":[[0,0],[-12.424,-4.268],[0,0],[-8.364,-4.469],[0,0],[0,0],[-5.777,-3.214],[0,0],[0,0]],"v":[[204.461,100.277],[182.93,111.028],[170.954,87.931],[151.071,94.13],[150.952,68.962],[136.404,64.409],[125.806,64.122],[128.037,44.645],[117.913,33.087]],"c":false}]},{"i":{"x":0.67,"y":1},"o":{"x":0.333,"y":0},"t":40,"s":[{"i":[[0,0],[12.171,-4.945],[0,0],[9.242,-2.126],[0,0],[9.986,17.473],[6.449,1.455],[-3.524,5.632],[1.474,13.867]],"o":[[0,0],[-12.171,4.945],[0,0],[-9.242,2.126],[0,0],[0,0],[-6.449,-1.455],[0,0],[0,0]],"v":[[232.1,53.081],[222.931,75.331],[198.728,65.786],[187.811,83.522],[169.988,66.319],[144.861,61.147],[128.962,58.095],[124.16,42.773],[110.935,29.389]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.88,"y":0},"t":53,"s":[{"i":[[0,0],[12.424,4.268],[0,0],[8.364,4.469],[0,0],[-3.156,15.137],[5.777,3.214],[-4.968,4.41],[-2.493,13.72]],"o":[[0,0],[-12.424,-4.268],[0,0],[-8.364,-4.469],[0,0],[0,0],[-5.777,-3.214],[0,0],[0,0]],"v":[[204.461,100.277],[182.93,111.028],[170.954,87.931],[151.071,94.13],[150.952,68.962],[136.404,64.409],[125.806,64.122],[128.037,44.645],[117.913,33.087]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":71,"s":[{"i":[[0,0],[10.772,-7.519],[0,0],[8.767,-3.616],[0,0],[9.986,17.473],[6.449,1.455],[-3.524,5.632],[1.474,13.867]],"o":[[0,0],[-10.772,7.519],[0,0],[-8.767,3.616],[0,0],[0,0],[-6.449,-1.455],[0,0],[0,0]],"v":[[238.777,40.616],[234.767,64.345],[209.05,60.401],[198.33,82.445],[177.922,68.406],[144.861,61.147],[128.962,58.095],[124.16,42.773],[110.935,29.389]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79,"s":[{"i":[[0,0],[12.424,4.268],[0,0],[8.364,4.469],[0,0],[-3.156,15.137],[5.777,3.214],[-4.968,4.41],[-2.493,13.72]],"o":[[0,0],[-12.424,-4.268],[0,0],[-8.364,-4.469],[0,0],[0,0],[-5.777,-3.214],[0,0],[0,0]],"v":[[204.461,100.277],[182.93,111.028],[170.954,87.931],[151.071,94.13],[150.952,68.962],[136.404,64.409],[125.806,64.122],[128.037,44.645],[117.913,33.087]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":106,"s":[{"i":[[0,0],[12.171,-4.945],[0,0],[9.242,-2.126],[0,0],[9.986,17.473],[6.449,1.455],[-3.524,5.632],[1.474,13.867]],"o":[[0,0],[-12.171,4.945],[0,0],[-9.242,2.126],[0,0],[0,0],[-6.449,-1.455],[0,0],[0,0]],"v":[[232.1,53.081],[222.931,75.331],[198.728,65.786],[187.811,83.522],[169.988,66.319],[144.861,61.147],[128.962,58.095],[124.16,42.773],[110.935,29.389]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":155,"s":[{"i":[[0,0],[13.124,0.593],[0,0],[9.285,1.931],[0,0],[1.238,15.413],[6.449,1.455],[-3.524,5.632],[1.474,13.867]],"o":[[0,0],[-13.124,-0.593],[0,0],[-9.285,-1.931],[0,0],[0,0],[-6.449,-1.455],[0,0],[0,0]],"v":[[211.5,68.951],[193.872,85.334],[175.872,66.549],[158.543,78.1],[149.583,62.277],[136.094,53.717],[125.844,56.428],[122.495,37.112],[109.525,28.876]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[12.171,-4.945],[0,0],[9.242,-2.126],[0,0],[9.986,17.473],[6.449,1.455],[-3.524,5.632],[1.474,13.867]],"o":[[0,0],[-12.171,4.945],[0,0],[-9.242,2.126],[0,0],[0,0],[-6.449,-1.455],[0,0],[0,0]],"v":[[232.1,53.081],[222.931,75.331],[198.728,65.786],[187.811,83.522],[169.988,66.319],[144.861,61.147],[128.962,58.095],[124.16,42.773],[110.935,29.389]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.549019634724,0.572549045086,0.517647087574,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-10.224,2.482]],"o":[[0,0],[0,0]],"v":[[124.16,42.773],[138.408,33.624]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[-10.509,-0.5]],"o":[[0,0],[0,0]],"v":[[128.037,44.645],[144.286,39.882]],"c":false}]},{"i":{"x":0.67,"y":1},"o":{"x":0.333,"y":0},"t":40,"s":[{"i":[[0,0],[-10.224,2.482]],"o":[[0,0],[0,0]],"v":[[124.16,42.773],[138.408,33.624]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.88,"y":0},"t":53,"s":[{"i":[[0,0],[-10.509,-0.5]],"o":[[0,0],[0,0]],"v":[[128.037,44.645],[144.286,39.882]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":71,"s":[{"i":[[0,0],[-10.224,2.482]],"o":[[0,0],[0,0]],"v":[[124.16,42.773],[138.408,33.624]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79,"s":[{"i":[[0,0],[-10.509,-0.5]],"o":[[0,0],[0,0]],"v":[[128.037,44.645],[144.286,39.882]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":106,"s":[{"i":[[0,0],[-10.224,2.482]],"o":[[0,0],[0,0]],"v":[[124.16,42.773],[138.408,33.624]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":155,"s":[{"i":[[0,0],[-10.224,2.482]],"o":[[0,0],[0,0]],"v":[[122.495,37.112],[136.744,27.963]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[-10.224,2.482]],"o":[[0,0],[0,0]],"v":[[124.16,42.773],[138.408,33.624]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.741176486015,0.752941191196,0.705882370472,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-9.178,7.859]],"o":[[0,0],[0,0]],"v":[[144.861,61.147],[151.447,40.725]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[-11.939,1.86]],"o":[[0,0],[0,0]],"v":[[136.404,64.409],[152.743,50.5]],"c":false}]},{"i":{"x":0.67,"y":1},"o":{"x":0.333,"y":0},"t":40,"s":[{"i":[[0,0],[-9.178,7.859]],"o":[[0,0],[0,0]],"v":[[144.861,61.147],[151.447,40.725]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.88,"y":0},"t":53,"s":[{"i":[[0,0],[-11.939,1.86]],"o":[[0,0],[0,0]],"v":[[136.404,64.409],[152.743,50.5]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":71,"s":[{"i":[[0,0],[-9.178,7.859]],"o":[[0,0],[0,0]],"v":[[144.861,61.147],[151.447,40.725]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79,"s":[{"i":[[0,0],[-11.939,1.86]],"o":[[0,0],[0,0]],"v":[[136.404,64.409],[152.743,50.5]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":106,"s":[{"i":[[0,0],[-9.178,7.859]],"o":[[0,0],[0,0]],"v":[[144.861,61.147],[151.447,40.725]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":155,"s":[{"i":[[0,0],[-10.931,5.149]],"o":[[0,0],[0,0]],"v":[[136.094,53.717],[147.851,35.767]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[-9.178,7.859]],"o":[[0,0],[0,0]],"v":[[144.861,61.147],[151.447,40.725]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.741176486015,0.752941191196,0.705882370472,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-7.667,9.657]],"o":[[0,0],[0,0]],"v":[[169.988,66.319],[176.112,43.607]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[-11.78,3.642]],"o":[[0,0],[0,0]],"v":[[150.952,68.962],[164.811,61.135]],"c":false}]},{"i":{"x":0.67,"y":1},"o":{"x":0.333,"y":0},"t":40,"s":[{"i":[[0,0],[-7.667,9.657]],"o":[[0,0],[0,0]],"v":[[169.988,66.319],[176.112,43.607]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.88,"y":0},"t":53,"s":[{"i":[[0,0],[-11.78,3.642]],"o":[[0,0],[0,0]],"v":[[150.952,68.962],[164.811,61.135]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":71,"s":[{"i":[[0,0],[-5.975,10.786]],"o":[[0,0],[0,0]],"v":[[177.922,68.406],[180.229,44.996]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79,"s":[{"i":[[0,0],[-11.78,3.642]],"o":[[0,0],[0,0]],"v":[[150.952,68.962],[164.811,61.135]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":106,"s":[{"i":[[0,0],[-7.667,9.657]],"o":[[0,0],[0,0]],"v":[[169.988,66.319],[176.112,43.607]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":155,"s":[{"i":[[0,0],[-10.276,6.814]],"o":[[0,0],[0,0]],"v":[[149.583,62.277],[162.427,42.57]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[-7.667,9.657]],"o":[[0,0],[0,0]],"v":[[169.988,66.319],[176.112,43.607]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.741176486015,0.752941191196,0.705882370472,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-2.086,13.821]],"o":[[0,0],[0,0]],"v":[[198.728,65.786],[194.439,42.175]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[-10.653,9.05]],"o":[[0,0],[0,0]],"v":[[170.954,87.931],[183.232,67.313]],"c":false}]},{"i":{"x":0.67,"y":1},"o":{"x":0.333,"y":0},"t":40,"s":[{"i":[[0,0],[-2.086,13.821]],"o":[[0,0],[0,0]],"v":[[198.728,65.786],[194.439,42.175]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.88,"y":0},"t":53,"s":[{"i":[[0,0],[-10.653,9.05]],"o":[[0,0],[0,0]],"v":[[170.954,87.931],[183.232,67.313]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":71,"s":[{"i":[[0,0],[1.029,13.94]],"o":[[0,0],[0,0]],"v":[[209.05,60.401],[199.636,38.327]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79,"s":[{"i":[[0,0],[-10.653,9.05]],"o":[[0,0],[0,0]],"v":[[170.954,87.931],[183.232,67.313]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":106,"s":[{"i":[[0,0],[-2.086,13.821]],"o":[[0,0],[0,0]],"v":[[198.728,65.786],[194.439,42.175]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":155,"s":[{"i":[[0,0],[-7.67,11.685]],"o":[[0,0],[0,0]],"v":[[175.872,66.549],[181.842,43.306]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[-2.086,13.821]],"o":[[0,0],[0,0]],"v":[[198.728,65.786],[194.439,42.175]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.741176486015,0.752941191196,0.705882370472,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[-15.003,13.234],[0.155,11.415],[0,0],[-3.211,11.847],[-14.126,-1.269],[-17.991,3.942],[-21.734,-13.728],[-13.654,-15.901],[-2.071,-24.27],[43.574,62.857],[23.089,-9.45],[-0.24,7.547],[19.837,-0.264],[-3.62,11.163],[15.785,2.795],[0,0],[5.109,5.76]],"o":[[0,0],[-0.123,-9.062],[0,0],[2.939,-10.841],[12.427,1.117],[17.991,-3.942],[21.734,13.728],[13.654,15.901],[2.071,24.27],[0,0],[-20.466,8.376],[0,0],[-20.594,0.274],[0,0],[-24.672,-4.369],[0,0],[-8.31,-9.369]],"v":[[76.391,74.875],[59.069,59.249],[67.83,39.902],[62.117,22.32],[90.897,6.756],[137.583,2.532],[195.253,11.074],[239.875,63.269],[275.849,135.568],[216.093,121.755],[202.518,175.572],[168.101,130.406],[150.532,170.731],[126.26,120.588],[97.967,150.442],[85.726,118.732],[65.594,116.304]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[-15.003,13.234],[0.155,11.415],[0,0],[-3.211,11.847],[-14.126,-1.269],[-23.117,-0.595],[-7.366,-24.629],[0.153,-20.959],[14.384,-19.658],[6.171,40.254],[14.528,7.253],[-2.357,7.173],[8.621,4.185],[-6.619,9.69],[7.638,5.157],[0,0],[5.109,5.76]],"o":[[0,0],[-0.123,-9.062],[0,0],[2.939,-10.841],[12.427,1.117],[23.117,0.595],[7.366,24.629],[-0.153,20.959],[-14.384,19.658],[0,0],[-12.877,-6.429],[0,0],[-8.95,-4.345],[0,0],[-11.938,-8.06],[0,0],[-8.31,-9.369]],"v":[[74.129,67.933],[57.789,53.995],[67.83,39.902],[62.117,22.32],[90.897,6.756],[145.343,5.893],[204.279,44.4],[203.629,113.066],[179.924,208.381],[141.329,167.268],[109.972,195.322],[100.421,155.104],[73.634,162.492],[78.57,131.356],[58.266,136.2],[66.672,108.927],[49.595,110.879]],"c":true}]},{"i":{"x":0.67,"y":1},"o":{"x":0.333,"y":0},"t":40,"s":[{"i":[[-15.003,13.234],[0.155,11.415],[0,0],[-3.211,11.847],[-14.126,-1.269],[-17.991,3.942],[-21.734,-13.728],[-13.654,-15.901],[-2.071,-24.27],[43.574,62.857],[23.089,-9.45],[-0.24,7.547],[19.837,-0.264],[-3.62,11.163],[15.785,2.795],[0,0],[5.109,5.76]],"o":[[0,0],[-0.123,-9.062],[0,0],[2.939,-10.841],[12.427,1.117],[17.991,-3.942],[21.734,13.728],[13.654,15.901],[2.071,24.27],[0,0],[-20.466,8.376],[0,0],[-20.594,0.274],[0,0],[-24.672,-4.369],[0,0],[-8.31,-9.369]],"v":[[76.391,74.875],[59.069,59.249],[67.83,39.902],[62.117,22.32],[90.897,6.756],[137.583,2.532],[195.253,11.074],[239.875,63.269],[275.849,135.568],[216.093,121.755],[202.518,175.572],[168.101,130.406],[150.532,170.731],[126.26,120.588],[97.967,150.442],[85.726,118.732],[65.594,116.304]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.88,"y":0},"t":53,"s":[{"i":[[-15.003,13.234],[0.155,11.415],[0,0],[-3.211,11.847],[-14.126,-1.269],[-23.117,-0.595],[-7.366,-24.629],[0.153,-20.959],[14.384,-19.658],[6.171,40.254],[14.528,7.253],[-2.357,7.173],[8.621,4.185],[-6.619,9.69],[7.638,5.157],[0,0],[5.109,5.76]],"o":[[0,0],[-0.123,-9.062],[0,0],[2.939,-10.841],[12.427,1.117],[23.117,0.595],[7.366,24.629],[-0.153,20.959],[-14.384,19.658],[0,0],[-12.877,-6.429],[0,0],[-8.95,-4.345],[0,0],[-11.938,-8.06],[0,0],[-8.31,-9.369]],"v":[[74.129,67.933],[57.789,53.995],[67.83,39.902],[62.117,22.32],[90.897,6.756],[145.343,5.893],[204.279,44.4],[203.629,113.066],[179.924,208.381],[141.329,167.268],[109.972,195.322],[100.421,155.104],[73.634,162.492],[78.57,131.356],[58.266,136.2],[66.672,108.927],[49.595,110.879]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":71,"s":[{"i":[[-15.003,13.234],[0.155,11.415],[0,0],[-3.211,11.847],[-14.126,-1.269],[-17.991,3.942],[-21.734,-13.728],[-16.839,-12.48],[-7.397,-23.208],[43.574,62.857],[21.221,-13.117],[1.004,7.484],[19.837,-0.264],[-3.62,11.163],[15.785,2.795],[0,0],[5.109,5.76]],"o":[[0,0],[-0.123,-9.062],[0,0],[2.939,-10.841],[12.427,1.117],[17.991,-3.942],[21.734,13.728],[16.839,12.48],[7.397,23.208],[0,0],[-18.81,11.627],[0,0],[-20.594,0.274],[0,0],[-24.672,-4.369],[0,0],[-8.31,-9.369]],"v":[[76.391,74.875],[59.069,59.249],[67.83,39.902],[62.117,22.32],[90.897,6.756],[137.583,2.532],[195.253,11.074],[248.617,48.827],[299.717,111.358],[238.06,118.521],[227.97,170.824],[186.597,131.93],[150.532,170.731],[126.26,120.588],[97.967,150.442],[85.726,118.732],[65.594,116.304]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79,"s":[{"i":[[-15.003,13.234],[0.155,11.415],[0,0],[-3.211,11.847],[-14.126,-1.269],[-23.117,-0.595],[-7.366,-24.629],[0.153,-20.959],[14.384,-19.658],[6.171,40.254],[14.528,7.253],[-2.357,7.173],[8.621,4.185],[-6.619,9.69],[7.638,5.157],[0,0],[5.109,5.76]],"o":[[0,0],[-0.123,-9.062],[0,0],[2.939,-10.841],[12.427,1.117],[23.117,0.595],[7.366,24.629],[-0.153,20.959],[-14.384,19.658],[0,0],[-12.877,-6.429],[0,0],[-8.95,-4.345],[0,0],[-11.938,-8.06],[0,0],[-8.31,-9.369]],"v":[[74.129,67.933],[57.789,53.995],[67.83,39.902],[62.117,22.32],[90.897,6.756],[145.343,5.893],[204.279,44.4],[203.629,113.066],[179.924,208.381],[141.329,167.268],[109.972,195.322],[100.421,155.104],[73.634,162.492],[78.57,131.356],[58.266,136.2],[66.672,108.927],[49.595,110.879]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":106,"s":[{"i":[[-15.003,13.234],[0.155,11.415],[0,0],[-3.211,11.847],[-14.126,-1.269],[-17.991,3.942],[-21.734,-13.728],[-13.654,-15.901],[-2.071,-24.27],[43.574,62.857],[23.089,-9.45],[-0.24,7.547],[19.837,-0.264],[-3.62,11.163],[15.785,2.795],[0,0],[5.109,5.76]],"o":[[0,0],[-0.123,-9.062],[0,0],[2.939,-10.841],[12.427,1.117],[17.991,-3.942],[21.734,13.728],[13.654,15.901],[2.071,24.27],[0,0],[-20.466,8.376],[0,0],[-20.594,0.274],[0,0],[-24.672,-4.369],[0,0],[-8.31,-9.369]],"v":[[76.391,74.875],[59.069,59.249],[67.83,39.902],[62.117,22.32],[90.897,6.756],[137.583,2.532],[195.253,11.074],[239.875,63.269],[275.849,135.568],[216.093,121.755],[202.518,175.572],[168.101,130.406],[150.532,170.731],[126.26,120.588],[97.967,150.442],[85.726,118.732],[65.594,116.304]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":155,"s":[{"i":[[-15.003,13.234],[0.155,11.415],[0,0],[-3.211,11.847],[-14.126,-1.269],[-17.991,3.942],[-14.009,-21.554],[-5.76,-20.152],[8.261,-22.914],[17.265,36.883],[15.983,2.864],[-0.24,7.547],[9.451,1.586],[-3.62,11.163],[8.782,2.795],[0,0],[5.109,5.76]],"o":[[0,0],[-0.123,-9.062],[0,0],[2.939,-10.841],[12.427,1.117],[17.991,-3.942],[14.009,21.554],[5.76,20.152],[-8.261,22.914],[0,0],[-14.167,-2.539],[0,0],[-9.812,-1.646],[0,0],[-13.726,-4.369],[0,0],[-8.31,-9.369]],"v":[[74.129,67.933],[57.789,53.995],[67.83,39.902],[62.117,22.32],[90.897,6.756],[137.583,2.532],[195.578,15.39],[214.307,81.456],[216.777,162.173],[172.666,155.743],[143.986,180.14],[127.129,150.877],[107.939,162.253],[99.472,134.25],[81.389,140.869],[74.791,116.614],[58.182,115.468]],"c":true}]},{"t":180,"s":[{"i":[[-15.003,13.234],[0.155,11.415],[0,0],[-3.211,11.847],[-14.126,-1.269],[-17.991,3.942],[-21.734,-13.728],[-13.654,-15.901],[-2.071,-24.27],[43.574,62.857],[23.089,-9.45],[-0.24,7.547],[19.837,-0.264],[-3.62,11.163],[15.785,2.795],[0,0],[5.109,5.76]],"o":[[0,0],[-0.123,-9.062],[0,0],[2.939,-10.841],[12.427,1.117],[17.991,-3.942],[21.734,13.728],[13.654,15.901],[2.071,24.27],[0,0],[-20.466,8.376],[0,0],[-20.594,0.274],[0,0],[-24.672,-4.369],[0,0],[-8.31,-9.369]],"v":[[76.391,74.875],[59.069,59.249],[67.83,39.902],[62.117,22.32],[90.897,6.756],[137.583,2.532],[195.253,11.074],[239.875,63.269],[275.849,135.568],[216.093,121.755],[202.518,175.572],[168.101,130.406],[150.532,170.731],[126.26,120.588],[97.967,150.442],[85.726,118.732],[65.594,116.304]],"c":true}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.549019634724,0.572549045086,0.517647087574,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-26.071,-0.867]],"o":[[0,0],[0,0]],"v":[[67.83,39.902],[110.244,30.214]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[-26.071,-0.867]],"o":[[0,0],[0,0]],"v":[[67.83,39.902],[106.313,32.242]],"c":false}]},{"i":{"x":0.67,"y":1},"o":{"x":0.333,"y":0},"t":40,"s":[{"i":[[0,0],[-26.071,-0.867]],"o":[[0,0],[0,0]],"v":[[67.83,39.902],[110.244,30.214]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.88,"y":0},"t":53,"s":[{"i":[[0,0],[-26.071,-0.867]],"o":[[0,0],[0,0]],"v":[[67.83,39.902],[106.313,32.242]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":71,"s":[{"i":[[0,0],[-26.071,-0.867]],"o":[[0,0],[0,0]],"v":[[67.83,39.902],[110.244,30.214]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79,"s":[{"i":[[0,0],[-26.071,-0.867]],"o":[[0,0],[0,0]],"v":[[67.83,39.902],[106.313,32.242]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":106,"s":[{"i":[[0,0],[-26.071,-0.867]],"o":[[0,0],[0,0]],"v":[[67.83,39.902],[110.244,30.214]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":155,"s":[{"i":[[0,0],[-26.071,-0.867]],"o":[[0,0],[0,0]],"v":[[67.83,39.902],[106.313,32.242]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[-26.071,-0.867]],"o":[[0,0],[0,0]],"v":[[67.83,39.902],[110.244,30.214]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.741176486015,0.752941191196,0.705882370472,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-28.147,9.136]],"o":[[0,0],[0,0]],"v":[[76.391,74.875],[124.243,43.045]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[-28.452,-5.498]],"o":[[0,0],[0,0]],"v":[[74.129,67.933],[123.117,53.723]],"c":false}]},{"i":{"x":0.67,"y":1},"o":{"x":0.333,"y":0},"t":40,"s":[{"i":[[0,0],[-28.147,9.136]],"o":[[0,0],[0,0]],"v":[[76.391,74.875],[124.243,43.045]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.88,"y":0},"t":53,"s":[{"i":[[0,0],[-28.452,-5.498]],"o":[[0,0],[0,0]],"v":[[74.129,67.933],[123.117,53.723]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":71,"s":[{"i":[[0,0],[-28.147,9.136]],"o":[[0,0],[0,0]],"v":[[76.391,74.875],[124.243,43.045]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79,"s":[{"i":[[0,0],[-28.452,-5.498]],"o":[[0,0],[0,0]],"v":[[74.129,67.933],[123.117,53.723]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":106,"s":[{"i":[[0,0],[-28.147,9.136]],"o":[[0,0],[0,0]],"v":[[76.391,74.875],[124.243,43.045]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":155,"s":[{"i":[[0,0],[-28.849,2.743]],"o":[[0,0],[0,0]],"v":[[74.129,67.933],[120.333,47.209]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[-28.147,9.136]],"o":[[0,0],[0,0]],"v":[[76.391,74.875],[124.243,43.045]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.741176486015,0.752941191196,0.705882370472,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-35.988,20.034]],"o":[[0,0],[0,0]],"v":[[85.726,118.732],[128.962,58.095]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[-33.304,9.327]],"o":[[0,0],[0,0]],"v":[[66.672,108.927],[125.806,64.122]],"c":false}]},{"i":{"x":0.67,"y":1},"o":{"x":0.333,"y":0},"t":40,"s":[{"i":[[0,0],[-35.988,20.034]],"o":[[0,0],[0,0]],"v":[[85.726,118.732],[128.962,58.095]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.88,"y":0},"t":53,"s":[{"i":[[0,0],[-33.304,9.327]],"o":[[0,0],[0,0]],"v":[[66.672,108.927],[125.806,64.122]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":71,"s":[{"i":[[0,0],[-35.988,20.034]],"o":[[0,0],[0,0]],"v":[[85.726,118.732],[128.962,58.095]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79,"s":[{"i":[[0,0],[-33.304,9.327]],"o":[[0,0],[0,0]],"v":[[66.672,108.927],[125.806,64.122]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":106,"s":[{"i":[[0,0],[-35.988,20.034]],"o":[[0,0],[0,0]],"v":[[85.726,118.732],[128.962,58.095]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":155,"s":[{"i":[[0,0],[-35.988,20.034]],"o":[[0,0],[0,0]],"v":[[74.791,116.614],[125.844,56.428]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[-35.988,20.034]],"o":[[0,0],[0,0]],"v":[[85.726,118.732],[128.962,58.095]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.741176486015,0.752941191196,0.705882370472,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-14.162,44.524]],"o":[[0,0],[0,0]],"v":[[126.26,120.588],[144.844,61.748]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[-41.558,18.648]],"o":[[0,0],[0,0]],"v":[[78.57,131.356],[148.802,70.452]],"c":false}]},{"i":{"x":0.67,"y":1},"o":{"x":0.333,"y":0},"t":40,"s":[{"i":[[0,0],[-14.162,44.524]],"o":[[0,0],[0,0]],"v":[[126.26,120.588],[144.844,61.748]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.88,"y":0},"t":53,"s":[{"i":[[0,0],[-41.558,18.648]],"o":[[0,0],[0,0]],"v":[[78.57,131.356],[148.802,70.452]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":71,"s":[{"i":[[0,0],[-14.162,44.524]],"o":[[0,0],[0,0]],"v":[[126.26,120.588],[144.844,61.748]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79,"s":[{"i":[[0,0],[-41.558,18.648]],"o":[[0,0],[0,0]],"v":[[78.57,131.356],[148.802,70.452]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":106,"s":[{"i":[[0,0],[-14.162,44.524]],"o":[[0,0],[0,0]],"v":[[126.26,120.588],[144.844,61.748]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":155,"s":[{"i":[[0,0],[-34.372,27.435]],"o":[[0,0],[0,0]],"v":[[99.472,134.25],[143.716,63.79]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[-14.162,44.524]],"o":[[0,0],[0,0]],"v":[[126.26,120.588],[144.844,61.748]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.741176486015,0.752941191196,0.705882370472,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-11.441,40.396]],"o":[[0,0],[0,0]],"v":[[167.759,131.345],[170.701,67.764]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[-31.201,28.848]],"o":[[0,0],[0,0]],"v":[[100.421,155.104],[145.291,92.518]],"c":false}]},{"i":{"x":0.67,"y":1},"o":{"x":0.333,"y":0},"t":40,"s":[{"i":[[0,0],[-11.441,40.396]],"o":[[0,0],[0,0]],"v":[[167.759,131.345],[170.701,67.764]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.88,"y":0},"t":53,"s":[{"i":[[0,0],[-31.201,28.848]],"o":[[0,0],[0,0]],"v":[[100.421,155.104],[145.291,92.518]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":71,"s":[{"i":[[0,0],[-4.644,41.728]],"o":[[0,0],[0,0]],"v":[[186.414,132.913],[178.862,69.713]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79,"s":[{"i":[[0,0],[-31.201,28.848]],"o":[[0,0],[0,0]],"v":[[100.421,155.104],[145.291,92.518]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":106,"s":[{"i":[[0,0],[-11.441,40.396]],"o":[[0,0],[0,0]],"v":[[167.759,131.345],[170.701,67.764]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":155,"s":[{"i":[[0,0],[-21.806,36.471]],"o":[[0,0],[0,0]],"v":[[127.129,150.877],[152.543,78.181]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[-11.441,40.396]],"o":[[0,0],[0,0]],"v":[[167.759,131.345],[170.701,67.764]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.741176486015,0.752941191196,0.705882370472,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[16.497,40.112]],"o":[[0,0],[0,0]],"v":[[216.093,121.755],[195.517,76.607]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[0,0],[-18.923,39.673]],"o":[[0,0],[0,0]],"v":[[141.329,167.268],[161.424,93.979]],"c":false}]},{"i":{"x":0.67,"y":1},"o":{"x":0.333,"y":0},"t":40,"s":[{"i":[[0,0],[16.497,40.112]],"o":[[0,0],[0,0]],"v":[[216.093,121.755],[195.517,76.607]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.88,"y":0},"t":53,"s":[{"i":[[0,0],[-18.923,39.673]],"o":[[0,0],[0,0]],"v":[[141.329,167.268],[161.424,93.979]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":71,"s":[{"i":[[0,0],[22.867,36.854]],"o":[[0,0],[0,0]],"v":[[238.06,118.521],[204.794,74.357]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79,"s":[{"i":[[0,0],[-18.923,39.673]],"o":[[0,0],[0,0]],"v":[[141.329,167.268],[161.424,93.979]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":106,"s":[{"i":[[0,0],[16.497,40.112]],"o":[[0,0],[0,0]],"v":[[216.093,121.755],[195.517,76.607]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":155,"s":[{"i":[[0,0],[-6.975,43.398]],"o":[[0,0],[0,0]],"v":[[172.666,155.743],[168.433,75.038]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[16.497,40.112]],"o":[[0,0],[0,0]],"v":[[216.093,121.755],[195.517,76.607]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.741176486015,0.752941191196,0.705882370472,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[-2.072,-24.269],[17.524,6.625],[0.881,11.687],[12.433,14.258],[19.906,12.203],[16.693,-3.557],[12.599,-0.131],[4.176,-8.388],[-0.825,2.582],[-12.499,0.13],[-17.998,3.945],[-21.736,-13.732],[-13.652,-15.907]],"o":[[1.581,18.521],[7.487,-2.56],[-1.655,-21.953],[-12.433,-14.258],[-19.906,-12.203],[-16.683,3.557],[-10.599,0.104],[-0.297,-1.996],[3.656,-11.361],[13.59,-0.135],[17.988,-3.945],[21.729,13.728],[13.65,15.905]],"v":[[275.847,135.564],[252.274,160.368],[262.09,136.869],[229.66,71.769],[189.038,24.973],[130.341,13.86],[84.817,17.55],[60.386,29.373],[61.053,22.504],[88.499,6.609],[137.588,2.531],[195.254,11.077],[239.876,63.267]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[14.382,-19.658],[8.859,16.508],[-7.014,9.389],[0.006,18.918],[6.99,22.278],[21.43,0.648],[12.599,-0.131],[4.176,-8.388],[-0.825,2.582],[-12.499,0.13],[-23.126,-0.591],[-7.365,-24.633],[0.158,-20.961]],"o":[[-10.976,15.002],[7.326,2.989],[13.175,-17.638],[-0.006,-18.918],[-6.99,-22.278],[-21.417,-0.648],[-10.599,0.104],[-0.297,-1.996],[3.656,-11.361],[13.59,-0.135],[23.113,0.591],[7.363,24.625],[-0.158,20.958]],"v":[[179.925,208.377],[149.185,194.416],[172.023,183.149],[190.344,112.763],[190.462,50.795],[134.131,15.207],[84.817,17.55],[60.386,29.373],[61.053,22.504],[88.499,6.609],[145.348,5.893],[204.278,44.403],[203.631,113.065]],"c":true}]},{"i":{"x":0.67,"y":1},"o":{"x":0.333,"y":0},"t":40,"s":[{"i":[[-2.072,-24.269],[17.524,6.625],[0.881,11.687],[12.433,14.258],[19.906,12.203],[16.693,-3.557],[12.599,-0.131],[4.176,-8.388],[-0.825,2.582],[-12.499,0.13],[-17.998,3.945],[-21.736,-13.732],[-13.652,-15.907]],"o":[[1.581,18.521],[7.487,-2.56],[-1.655,-21.953],[-12.433,-14.258],[-19.906,-12.203],[-16.683,3.557],[-10.599,0.104],[-0.297,-1.996],[3.656,-11.361],[13.59,-0.135],[17.988,-3.945],[21.729,13.728],[13.65,15.905]],"v":[[275.847,135.564],[252.274,160.368],[262.09,136.869],[229.66,71.769],[189.038,24.973],[130.341,13.86],[84.817,17.55],[60.386,29.373],[61.053,22.504],[88.499,6.609],[137.588,2.531],[195.254,11.077],[239.876,63.267]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.88,"y":0},"t":53,"s":[{"i":[[14.382,-19.658],[8.859,16.508],[-7.014,9.389],[0.006,18.918],[6.99,22.278],[21.43,0.648],[12.599,-0.131],[4.176,-8.388],[-0.825,2.582],[-12.499,0.13],[-23.126,-0.591],[-7.365,-24.633],[0.158,-20.961]],"o":[[-10.976,15.002],[7.326,2.989],[13.175,-17.638],[-0.006,-18.918],[-6.99,-22.278],[-21.417,-0.648],[-10.599,0.104],[-0.297,-1.996],[3.656,-11.361],[13.59,-0.135],[23.113,0.591],[7.363,24.625],[-0.158,20.958]],"v":[[179.925,208.377],[149.185,194.416],[172.023,183.149],[190.344,112.763],[190.462,50.795],[134.131,15.207],[84.817,17.55],[60.386,29.373],[61.053,22.504],[88.499,6.609],[145.348,5.893],[204.278,44.403],[203.631,113.065]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":71,"s":[{"i":[[-7.399,-23.207],[10.511,-3.607],[3.449,11.201],[15.284,11.148],[19.906,12.203],[16.693,-3.557],[12.599,-0.131],[4.176,-8.388],[-0.825,2.582],[-12.499,0.13],[-17.998,3.945],[-21.736,-13.732],[-16.837,-12.486]],"o":[[5.646,17.71],[6.733,-4.155],[-6.479,-21.041],[-15.284,-11.148],[-19.906,-12.203],[-16.683,3.557],[-10.599,0.104],[-0.297,-1.996],[3.656,-11.361],[13.59,-0.135],[17.988,-3.945],[21.729,13.728],[16.835,12.485]],"v":[[299.715,111.354],[285.473,147.524],[286.589,115.676],[240.539,59.38],[189.038,24.973],[130.341,13.86],[84.817,17.55],[60.386,29.373],[61.053,22.504],[88.499,6.609],[137.588,2.531],[195.254,11.077],[248.617,48.825]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79,"s":[{"i":[[14.382,-19.658],[8.859,16.508],[-7.014,9.389],[0.006,18.918],[6.99,22.278],[21.43,0.648],[12.599,-0.131],[4.176,-8.388],[-0.825,2.582],[-12.499,0.13],[-23.126,-0.591],[-7.365,-24.633],[0.158,-20.961]],"o":[[-10.976,15.002],[7.326,2.989],[13.175,-17.638],[-0.006,-18.918],[-6.99,-22.278],[-21.417,-0.648],[-10.599,0.104],[-0.297,-1.996],[3.656,-11.361],[13.59,-0.135],[23.113,0.591],[7.363,24.625],[-0.158,20.958]],"v":[[179.925,208.377],[149.185,194.416],[172.023,183.149],[190.344,112.763],[190.462,50.795],[134.131,15.207],[84.817,17.55],[60.386,29.373],[61.053,22.504],[88.499,6.609],[145.348,5.893],[204.278,44.403],[203.631,113.065]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":106,"s":[{"i":[[-2.072,-24.269],[17.524,6.625],[0.881,11.687],[12.433,14.258],[19.906,12.203],[16.693,-3.557],[12.599,-0.131],[4.176,-8.388],[-0.825,2.582],[-12.499,0.13],[-17.998,3.945],[-21.736,-13.732],[-13.652,-15.907]],"o":[[1.581,18.521],[7.487,-2.56],[-1.655,-21.953],[-12.433,-14.258],[-19.906,-12.203],[-16.683,3.557],[-10.599,0.104],[-0.297,-1.996],[3.656,-11.361],[13.59,-0.135],[17.988,-3.945],[21.729,13.728],[13.65,15.905]],"v":[[275.847,135.564],[252.274,160.368],[262.09,136.869],[229.66,71.769],[189.038,24.973],[130.341,13.86],[84.817,17.55],[60.386,29.373],[61.053,22.504],[88.499,6.609],[137.588,2.531],[195.254,11.077],[239.876,63.267]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":155,"s":[{"i":[[8.259,-22.915],[13.152,13.342],[-4.08,10.986],[5.337,18.149],[12.985,19.405],[16.693,-3.557],[12.599,-0.131],[4.176,-8.388],[-0.825,2.582],[-12.499,0.13],[-17.998,3.945],[-14.005,-21.562],[-5.765,-20.153]],"o":[[-6.303,17.487],[7.872,0.803],[7.67,-20.636],[-5.338,-18.149],[-12.985,-19.405],[-16.683,3.557],[-10.599,0.104],[-0.297,-1.996],[3.656,-11.361],[13.59,-0.135],[17.988,-3.945],[14.004,21.551],[5.755,20.154]],"v":[[216.777,162.168],[184.996,174.852],[203.733,157.605],[201.475,84.909],[184.124,25.42],[130.341,13.86],[84.817,17.55],[60.386,29.373],[61.053,22.504],[88.499,6.609],[137.588,2.531],[195.578,15.393],[214.309,81.454]],"c":true}]},{"t":180,"s":[{"i":[[-2.072,-24.269],[17.524,6.625],[0.881,11.687],[12.433,14.258],[19.906,12.203],[16.693,-3.557],[12.599,-0.131],[4.176,-8.388],[-0.825,2.582],[-12.499,0.13],[-17.998,3.945],[-21.736,-13.732],[-13.652,-15.907]],"o":[[1.581,18.521],[7.487,-2.56],[-1.655,-21.953],[-12.433,-14.258],[-19.906,-12.203],[-16.683,3.557],[-10.599,0.104],[-0.297,-1.996],[3.656,-11.361],[13.59,-0.135],[17.988,-3.945],[21.729,13.728],[13.65,15.905]],"v":[[275.847,135.564],[252.274,160.368],[262.09,136.869],[229.66,71.769],[189.038,24.973],[130.341,13.86],[84.817,17.55],[60.386,29.373],[61.053,22.504],[88.499,6.609],[137.588,2.531],[195.254,11.077],[239.876,63.267]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.992156863213,0.984313726425,0.949019610882,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[-15.003,13.234],[0.119,9.503],[0,0],[-3.755,11.686],[-12.504,0.129],[-17.991,3.942],[-21.734,-13.728],[-13.654,-15.901],[-2.071,-24.27],[43.36,64.907],[23.089,-9.45],[-0.24,7.547],[19.837,-0.264],[-3.62,11.163],[15.785,2.795],[0,0],[5.109,5.76]],"o":[[0,0],[-0.113,-9.062],[0,0],[3.652,-11.365],[13.584,-0.14],[17.991,-3.942],[21.734,13.728],[13.654,15.901],[2.071,24.27],[0,0],[-20.466,8.376],[0,0],[-20.594,0.274],[0,0],[-24.672,-4.369],[0,0],[-8.31,-9.369]],"v":[[76.391,74.875],[59.069,59.249],[67.83,39.902],[61.056,22.506],[88.5,6.611],[137.583,2.532],[195.253,11.074],[239.875,63.269],[275.849,135.568],[216.093,121.755],[202.518,175.572],[167.759,131.345],[150.532,170.731],[126.26,120.588],[97.967,150.442],[85.726,118.732],[65.594,116.304]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[-15.003,13.234],[0.119,9.503],[0,0],[-3.755,11.686],[-12.504,0.129],[-23.117,-0.595],[-7.366,-24.629],[0.153,-20.959],[14.384,-19.658],[6.171,40.254],[14.528,7.253],[-2.357,7.173],[8.621,4.185],[-6.619,9.69],[7.638,5.157],[0,0],[5.109,5.76]],"o":[[0,0],[-0.113,-9.062],[0,0],[3.652,-11.365],[13.584,-0.14],[23.117,0.595],[7.366,24.629],[-0.153,20.959],[-14.384,19.658],[0,0],[-12.877,-6.429],[0,0],[-8.95,-4.345],[0,0],[-11.938,-8.06],[0,0],[-8.31,-9.369]],"v":[[74.129,67.933],[57.789,53.995],[67.83,39.902],[61.056,22.506],[88.5,6.611],[145.343,5.893],[204.279,44.4],[203.629,113.066],[179.924,208.381],[141.329,167.268],[109.972,195.322],[100.421,155.104],[73.634,162.492],[78.57,131.356],[58.266,136.2],[66.672,108.927],[49.595,110.879]],"c":true}]},{"i":{"x":0.67,"y":1},"o":{"x":0.333,"y":0},"t":40,"s":[{"i":[[-15.003,13.234],[0.119,9.503],[0,0],[-3.755,11.686],[-12.504,0.129],[-17.991,3.942],[-21.734,-13.728],[-13.654,-15.901],[-2.071,-24.27],[43.36,64.907],[23.089,-9.45],[-0.24,7.547],[19.837,-0.264],[-3.62,11.163],[15.785,2.795],[0,0],[5.109,5.76]],"o":[[0,0],[-0.113,-9.062],[0,0],[3.652,-11.365],[13.584,-0.14],[17.991,-3.942],[21.734,13.728],[13.654,15.901],[2.071,24.27],[0,0],[-20.466,8.376],[0,0],[-20.594,0.274],[0,0],[-24.672,-4.369],[0,0],[-8.31,-9.369]],"v":[[76.391,74.875],[59.069,59.249],[67.83,39.902],[61.056,22.506],[88.5,6.611],[137.583,2.532],[195.253,11.074],[239.875,63.269],[275.849,135.568],[216.093,121.755],[202.518,175.572],[167.759,131.345],[150.532,170.731],[126.26,120.588],[97.967,150.442],[85.726,118.732],[65.594,116.304]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.88,"y":0},"t":53,"s":[{"i":[[-15.003,13.234],[0.119,9.503],[0,0],[-3.755,11.686],[-12.504,0.129],[-23.117,-0.595],[-7.366,-24.629],[0.153,-20.959],[14.384,-19.658],[6.171,40.254],[14.528,7.253],[-2.357,7.173],[8.621,4.185],[-6.619,9.69],[7.638,5.157],[0,0],[5.109,5.76]],"o":[[0,0],[-0.113,-9.062],[0,0],[3.652,-11.365],[13.584,-0.14],[23.117,0.595],[7.366,24.629],[-0.153,20.959],[-14.384,19.658],[0,0],[-12.877,-6.429],[0,0],[-8.95,-4.345],[0,0],[-11.938,-8.06],[0,0],[-8.31,-9.369]],"v":[[74.129,67.933],[57.789,53.995],[67.83,39.902],[61.056,22.506],[88.5,6.611],[145.343,5.893],[204.279,44.4],[203.629,113.066],[179.924,208.381],[141.329,167.268],[109.972,195.322],[100.421,155.104],[73.634,162.492],[78.57,131.356],[58.266,136.2],[66.672,108.927],[49.595,110.879]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":71,"s":[{"i":[[-15.003,13.234],[0.119,9.503],[0,0],[-3.755,11.686],[-12.504,0.129],[-17.991,3.942],[-21.734,-13.728],[-16.839,-12.48],[-7.397,-23.208],[43.36,64.907],[21.221,-13.117],[1.004,7.484],[19.837,-0.264],[-3.62,11.163],[15.785,2.795],[0,0],[5.109,5.76]],"o":[[0,0],[-0.113,-9.062],[0,0],[3.652,-11.365],[13.584,-0.14],[17.991,-3.942],[21.734,13.728],[16.839,12.48],[7.397,23.208],[0,0],[-18.81,11.627],[0,0],[-20.594,0.274],[0,0],[-24.672,-4.369],[0,0],[-8.31,-9.369]],"v":[[76.391,74.875],[59.069,59.249],[67.83,39.902],[61.056,22.506],[88.5,6.611],[137.583,2.532],[195.253,11.074],[248.617,48.827],[299.717,111.358],[238.06,118.521],[227.97,170.824],[186.414,132.913],[150.532,170.731],[126.26,120.588],[97.967,150.442],[85.726,118.732],[65.594,116.303]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79,"s":[{"i":[[-15.003,13.234],[0.119,9.503],[0,0],[-3.755,11.686],[-12.504,0.129],[-23.117,-0.595],[-7.366,-24.629],[0.153,-20.959],[14.384,-19.658],[6.171,40.254],[14.528,7.253],[-2.357,7.173],[8.621,4.185],[-6.619,9.69],[7.638,5.157],[0,0],[5.109,5.76]],"o":[[0,0],[-0.113,-9.062],[0,0],[3.652,-11.365],[13.584,-0.14],[23.117,0.595],[7.366,24.629],[-0.153,20.959],[-14.384,19.658],[0,0],[-12.877,-6.429],[0,0],[-8.95,-4.345],[0,0],[-11.938,-8.06],[0,0],[-8.31,-9.369]],"v":[[74.129,67.933],[57.789,53.995],[67.83,39.902],[61.056,22.506],[88.5,6.611],[145.343,5.893],[204.279,44.4],[203.629,113.066],[179.924,208.381],[141.329,167.268],[109.972,195.322],[100.421,155.104],[73.634,162.492],[78.57,131.356],[58.266,136.2],[66.672,108.927],[49.595,110.879]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":106,"s":[{"i":[[-15.003,13.234],[0.119,9.503],[0,0],[-3.755,11.686],[-12.504,0.129],[-17.991,3.942],[-21.734,-13.728],[-13.654,-15.901],[-2.071,-24.27],[43.36,64.907],[23.089,-9.45],[-0.24,7.547],[19.837,-0.264],[-3.62,11.163],[15.785,2.795],[0,0],[5.109,5.76]],"o":[[0,0],[-0.113,-9.062],[0,0],[3.652,-11.365],[13.584,-0.14],[17.991,-3.942],[21.734,13.728],[13.654,15.901],[2.071,24.27],[0,0],[-20.466,8.376],[0,0],[-20.594,0.274],[0,0],[-24.672,-4.369],[0,0],[-8.31,-9.369]],"v":[[76.391,74.875],[59.069,59.249],[67.83,39.902],[61.056,22.506],[88.5,6.611],[137.583,2.532],[195.253,11.074],[239.875,63.269],[275.849,135.568],[216.093,121.755],[202.518,175.572],[167.759,131.345],[150.532,170.731],[126.26,120.588],[97.967,150.442],[85.726,118.732],[65.594,116.304]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.54,"y":0},"t":155,"s":[{"i":[[-15.003,13.234],[0.119,9.503],[0,0],[-3.755,11.686],[-12.504,0.129],[-17.991,3.942],[-14.009,-21.554],[-5.76,-20.152],[8.261,-22.914],[17.265,36.883],[15.983,2.864],[-0.24,7.547],[9.451,1.586],[-3.62,11.163],[8.782,2.795],[0,0],[5.109,5.76]],"o":[[0,0],[-0.113,-9.062],[0,0],[3.652,-11.365],[13.584,-0.14],[17.991,-3.942],[14.009,21.554],[5.76,20.152],[-8.261,22.914],[0,0],[-14.167,-2.539],[0,0],[-9.812,-1.646],[0,0],[-13.726,-4.369],[0,0],[-8.31,-9.369]],"v":[[74.129,67.933],[57.789,53.995],[67.83,39.902],[61.056,22.506],[88.5,6.611],[137.583,2.532],[195.578,15.39],[214.307,81.456],[216.777,162.173],[172.666,155.743],[143.986,180.14],[127.129,150.877],[107.939,162.253],[99.472,134.25],[81.389,140.869],[74.791,116.614],[58.182,115.468]],"c":true}]},{"t":180,"s":[{"i":[[-15.003,13.234],[0.119,9.503],[0,0],[-3.755,11.686],[-12.504,0.129],[-17.991,3.942],[-21.734,-13.728],[-13.654,-15.901],[-2.071,-24.27],[43.36,64.907],[23.089,-9.45],[-0.24,7.547],[19.837,-0.264],[-3.62,11.163],[15.785,2.795],[0,0],[5.109,5.76]],"o":[[0,0],[-0.113,-9.062],[0,0],[3.652,-11.365],[13.584,-0.14],[17.991,-3.942],[21.734,13.728],[13.654,15.901],[2.071,24.27],[0,0],[-20.466,8.376],[0,0],[-20.594,0.274],[0,0],[-24.672,-4.369],[0,0],[-8.31,-9.369]],"v":[[76.391,74.875],[59.069,59.249],[67.83,39.902],[61.056,22.506],[88.5,6.611],[137.583,2.532],[195.253,11.074],[239.875,63.269],[275.849,135.568],[216.093,121.755],[202.518,175.572],[167.759,131.345],[150.532,170.731],[126.26,120.588],[97.967,150.442],[85.726,118.732],[65.594,116.304]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.929411768913,0.92549020052,0.882352948189,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":20,"ty":4,"sr":1,"ks":{"o":{"a":0,"k":55},"r":{"a":0,"k":-45.291},"p":{"a":0,"k":[626.503,375.239,0]},"a":{"a":0,"k":[173,-184,0]},"s":{"a":0,"k":[131,93.9,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.952941176471,0.971764658012,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":18},"lc":1,"lj":1,"ml":4,"bm":0,"hd":false},{"ty":"fl","c":{"a":0,"k":[0.690195958755,0.690195958755,0.690195958755,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[173,-184],[-37,-184]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.952941179276,0.971764683723,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":80,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":90.895,"s":[8]},{"t":103,"s":[0]}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":86,"s":[0]},{"t":103,"s":[100]}]},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":80,"s":[0]},{"t":99,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"hd":false}],"ip":80,"op":103,"st":50,"bm":0},{"ddd":0,"ind":21,"ty":4,"sr":1,"ks":{"o":{"a":0,"k":55},"r":{"a":0,"k":-45.291},"p":{"a":0,"k":[604.503,194.239,0]},"a":{"a":0,"k":[173,-184,0]},"s":{"a":0,"k":[131,93.9,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.952941176471,0.971764658012,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":18},"lc":1,"lj":1,"ml":4,"bm":0,"hd":false},{"ty":"fl","c":{"a":0,"k":[0.690195958755,0.690195958755,0.690195958755,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[173,-184],[-37,-184]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.952941179276,0.971764683723,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":64,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":74.895,"s":[8]},{"t":87,"s":[0]}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":70,"s":[0]},{"t":87,"s":[100]}]},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":64,"s":[0]},{"t":83,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"hd":false}],"ip":64,"op":87,"st":34,"bm":0},{"ddd":0,"ind":22,"ty":4,"sr":1,"ks":{"o":{"a":0,"k":55},"r":{"a":0,"k":-45.291},"p":{"a":0,"k":[379.503,147.239,0]},"a":{"a":0,"k":[173,-184,0]},"s":{"a":0,"k":[131,93.9,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.952941176471,0.971764658012,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":18},"lc":1,"lj":1,"ml":4,"bm":0,"hd":false},{"ty":"fl","c":{"a":0,"k":[0.690195958755,0.690195958755,0.690195958755,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[173,-184],[-37,-184]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.952941179276,0.971764683723,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":48,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":58.895,"s":[8]},{"t":71,"s":[0]}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":54,"s":[0]},{"t":71,"s":[100]}]},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":48,"s":[0]},{"t":67,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"hd":false}],"ip":48,"op":71,"st":18,"bm":0},{"ddd":0,"ind":23,"ty":4,"sr":1,"ks":{"o":{"a":0,"k":55},"r":{"a":0,"k":-45.291},"p":{"a":0,"k":[479.503,185.239,0]},"a":{"a":0,"k":[173,-184,0]},"s":{"a":0,"k":[131,93.9,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.952941176471,0.971764658012,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":18},"lc":1,"lj":1,"ml":4,"bm":0,"hd":false},{"ty":"fl","c":{"a":0,"k":[0.690195958755,0.690195958755,0.690195958755,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[173,-184],[-37,-184]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.952941179276,0.971764683723,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":32,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":42.895,"s":[8]},{"t":55,"s":[0]}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":38,"s":[0]},{"t":55,"s":[100]}]},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":32,"s":[0]},{"t":51,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"hd":false}],"ip":32,"op":55,"st":2,"bm":0},{"ddd":0,"ind":24,"ty":4,"sr":1,"ks":{"o":{"a":0,"k":55},"r":{"a":0,"k":-45.291},"p":{"a":0,"k":[458,404,0]},"a":{"a":0,"k":[173,-184,0]},"s":{"a":0,"k":[131,93.9,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.952941176471,0.971764658012,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":18},"lc":1,"lj":1,"ml":4,"bm":0,"hd":false},{"ty":"fl","c":{"a":0,"k":[0.690195958755,0.690195958755,0.690195958755,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[173,-184],[-37,-184]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.952941179276,0.971764683723,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":16,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":26.895,"s":[8]},{"t":39,"s":[0]}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":22,"s":[0]},{"t":39,"s":[100]}]},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":16,"s":[0]},{"t":35,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"hd":false}],"ip":16,"op":39,"st":-14,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"refId":"comp_0","sr":1,"ks":{"p":{"a":0,"k":[262,256,0]},"a":{"a":0,"k":[372,372,0]},"s":{"a":0,"k":[96,96,100]}},"ao":0,"w":744,"h":744,"ip":0,"op":20,"st":-160,"bm":0},{"ddd":0,"ind":2,"ty":0,"refId":"comp_0","sr":1,"ks":{"p":{"a":0,"k":[262,256,0]},"a":{"a":0,"k":[372,372,0]},"s":{"a":0,"k":[96,96,100]}},"ao":0,"w":744,"h":744,"ip":20,"op":180,"st":20,"bm":0}]} \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/wallet_note.tgs b/TMessagesProj/src/main/res/raw/wallet_note.tgs deleted file mode 100644 index 8cb11dd1e..000000000 --- a/TMessagesProj/src/main/res/raw/wallet_note.tgs +++ /dev/null @@ -1 +0,0 @@ -{"tgs":1,"v":"5.5.2","fr":60,"ip":0,"op":180,"w":512,"h":512,"nm":"writing/list / emoji","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":2,"ty":3,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":0,"s":[216,316,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":32.143,"s":[216,316,0],"to":[0,0,0],"ti":[0,0,0]},{"t":144.642578125,"s":[216,232,0]}]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":3,"parent":2,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[-18,-222,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":32.143,"s":[203,-222,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":48.215,"s":[-18,-222,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":80.357,"s":[211,-222,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":96.428,"s":[-18,-222,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":130.178,"s":[212,-222,0],"to":[0,0,0],"ti":[0,0,0]},{"t":176.78515625,"s":[88,-222,0]}]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":3,"parent":3,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":0,"s":[0,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":32.143,"s":[0,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":48.215,"s":[0,90,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":80.357,"s":[0,90,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":96.428,"s":[0,183,0],"to":[0,0,0],"ti":[0,0,0]},{"t":176.78515625,"s":[0,295,0]}]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":3,"parent":4,"sr":1,"ks":{"o":{"a":0,"k":0},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":8.035,"s":[5]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":16.072,"s":[-5]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":24.107,"s":[5]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":32.143,"s":[-5]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":40.178,"s":[5]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":48.215,"s":[-5]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":56.25,"s":[5]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":64.285,"s":[-5]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":72.322,"s":[5]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":80.357,"s":[-5]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":88.393,"s":[5]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":96.428,"s":[-5]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":104.465,"s":[5]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":112.5,"s":[-5]},{"t":139.822265625,"s":[0]}]},"p":{"a":0,"k":[-109,116,0]},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":0,"s":[80,80,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":129,"s":[80,80,100]},{"t":176.78515625,"s":[100,100,100]}]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"parent":5,"sr":1,"ks":{"p":{"a":0,"k":[117.006,-119.555,0]},"a":{"a":0,"k":[49.006,45.445,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[29.928,34.271],[41.717,22.482]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[93.32,-29.121],[97.415,-33.216]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[49.367,14.833],[53.462,10.737]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-8.021,-13.492],[0,0],[-1.507,4.282],[0,0]],"o":[[0,0],[-4.274,1.505],[0,0],[0,0]],"v":[[-39.029,156.552],[-63.872,165.352],[-70.761,158.465],[-63.58,138.086]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.188235297799,0.20000000298,0.207843139768,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":1,"ml":10,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[81.95,-38.101],[132.921,13.063]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.501960813999,0.490196079016,0.482352942228,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":5},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[88.074,-44.201],[139.045,6.962]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.501960813999,0.490196079016,0.482352942228,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":5},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[153.296,5.137],[89.953,-58.445],[89.946,-58.438],[153.289,5.144]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.501960813999,0.490196079016,0.482352942228,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[131.256,27.093],[67.913,-36.488],[67.906,-36.481],[131.249,27.1]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.501960813999,0.490196079016,0.482352942228,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[11.209,11.251],[0,0],[11.251,-11.209],[0,0],[0,0],[0,0]],"o":[[0,0],[-11.209,-11.251],[0,0],[0,0],[0,0],[11.251,-11.209]],"v":[[160.706,-50.084],[145.202,-65.647],[104.533,-65.724],[93.572,-54.805],[149.669,1.504],[160.63,-9.416]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.57647061348,0.298039227724,0.298039227724,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[11.25,-11.208],[0,0],[0,0],[0,0],[12.266,12.313],[0,0],[-6.147,-6.17],[0,0]],"o":[[0,0],[0,0],[0,0],[12.283,-12.236],[0,0],[8.048,-0.593],[0,0],[11.208,11.25]],"v":[[159.918,-8.712],[151.083,0.089],[134.772,-16.284],[139.751,-21.244],[138.721,-59.402],[123.456,-74.725],[144.495,-64.941],[160.001,-49.377]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.549019634724,0.235294118524,0.235294118524,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":21},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[8.513,8.545],[0,0],[8.545,-8.513],[0,0],[0,0],[0,0]],"o":[[0,0],[-8.513,-8.545],[0,0],[0,0],[0,0],[8.545,-8.513]],"v":[[152.513,-45.398],[140.484,-57.472],[109.6,-57.53],[99.564,-47.532],[142.419,-4.515],[152.455,-14.513]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.866666674614,0.450980395079,0.450980395079,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[11.209,11.251],[0,0],[11.251,-11.209],[0,0],[0,0],[0,0]],"o":[[0,0],[-11.209,-11.251],[0,0],[0,0],[0,0],[11.251,-11.209]],"v":[[160.706,-50.084],[145.202,-65.647],[104.533,-65.724],[93.572,-54.805],[149.669,1.504],[160.63,-9.416]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.937254905701,0.560784339905,0.560784339905,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[106.408,-41.921],[96.524,-51.907],[74.092,-30.272],[84.365,-19.961]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.901960790157,0.949019610882,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":51},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[148.937,0.768],[132.564,-15.666],[110.521,6.294],[126.894,22.728]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.501960813999,0.490196079016,0.482352942228,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":51},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[149.669,1.504],[93.572,-54.805],[71.738,-33.053],[127.835,23.255]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.501960813999,0.490196079016,0.482352942228,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"fl","c":{"a":0,"k":[0.745098054409,0.792156875134,0.850980401039,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[1.522,-0.796],[0,0],[2.779,-0.058],[0,0],[0.186,2.581],[0,0],[2.56,-0.01],[0,0],[-0.607,3.018],[0,0],[1.946,-0.725],[0,0],[0,0]],"o":[[0,0],[-1.218,1.214],[0,0],[0.083,-2.779],[0,0],[-2.595,0.059],[0,0],[-0.193,-2.546],[0,0],[-3.083,0.022],[0,0],[0.4,-2.035],[0,0],[0,0],[0,0]],"v":[[128.437,24.27],[17.503,134.788],[13.375,137.813],[13.738,124.987],[8.777,119.993],[-4.611,120.993],[-10.272,115.778],[-11.548,98.544],[-16.425,94.03],[-30.122,94.096],[-34.912,88.282],[-32.942,78.471],[-36.465,75.459],[-40.18,76.831],[70.726,-33.658]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.698039233685,0.458823531866,0.031372550875,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.186,2.581],[0,0]],"o":[[0,0],[-2.595,0.059],[0,0],[0,0]],"v":[[110.524,6.29],[-4.611,120.993],[-10.272,115.778],[105.097,0.843]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.796078443527,0.145098045468,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[1.522,-0.796],[0,0],[2.779,-0.058],[0,0],[0,0]],"o":[[0,0],[-1.218,1.214],[0,0],[0.083,-2.779],[0,0],[0,0],[0,0]],"v":[[128.437,24.27],[17.503,134.788],[13.375,137.813],[13.738,124.987],[8.777,119.993],[-4.611,120.993],[110.524,6.29]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.839215695858,0.564705908298,0.070588238537,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[-0.607,3.018],[0,0]],"o":[[0,0],[-3.083,0.022],[0,0],[0,0]],"v":[[84.368,-19.964],[-30.122,94.096],[-34.912,88.282],[78.8,-25.554]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.796078443527,0.145098045468,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[1.946,-0.725],[0,0],[0,0],[0,0]],"o":[[0,0],[0.4,-2.035],[0,0],[0,0],[0,0],[0,0]],"v":[[-34.912,88.282],[-32.942,78.471],[-36.465,75.459],[-40.18,76.831],[70.726,-33.658],[78.8,-25.554]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.937254905701,0.654901981354,0.027450980619,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[1.522,-0.796],[0,0],[2.779,-0.058],[0,0],[0.186,2.581],[0,0],[2.56,-0.01],[0,0],[-0.607,3.018],[0,0],[1.946,-0.725],[0,0],[0,0]],"o":[[0,0],[-1.218,1.214],[0,0],[0.083,-2.779],[0,0],[-2.595,0.059],[0,0],[-0.193,-2.546],[0,0],[-3.083,0.022],[0,0],[0.4,-2.035],[0,0],[0,0],[0,0]],"v":[[128.437,24.27],[17.503,134.788],[13.375,137.813],[13.738,124.987],[8.777,119.993],[-4.611,120.993],[-10.272,115.778],[-11.548,98.544],[-16.425,94.03],[-30.122,94.096],[-34.912,88.282],[-32.942,78.471],[-36.465,75.459],[-40.18,76.831],[70.726,-33.658]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.745098054409,0.078431375325,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.008,-0.006],[0,0],[1.348,1.693],[0,0],[0.036,0.134]],"o":[[0,0],[-2.363,0.83],[0,0],[4.174,2.651],[-0.944,-3.472]],"v":[[-48.253,147.098],[-67.17,163.132],[-67.967,163.458],[-57.349,142.341],[-47.631,146.807]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.913725495338,0.909803926945,0.909803926945,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":20},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-8.021,-13.492],[0,0],[-1.507,4.282],[0,0]],"o":[[0,0],[-4.274,1.505],[0,0],[0,0]],"v":[[-39.029,156.552],[-63.872,165.352],[-70.761,158.465],[-63.58,138.086]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.278431385756,0.278431385756,0.274509817362,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0.778,-0.282],[0,0],[-1.507,4.282],[0,0],[-1.821,1.814],[0,0],[0.4,-2.035],[0,0],[-3.083,0.022],[0,0],[-0.193,-2.546],[0,0],[-2.595,0.059],[0,0],[0.083,-2.779]],"o":[[-0.729,0.388],[0,0],[-4.274,1.505],[0,0],[0.853,-2.431],[0,0],[1.946,-0.725],[0,0],[-0.607,3.018],[0,0],[2.56,-0.01],[0,0],[0.186,2.581],[0,0],[2.779,-0.058],[0,0]],"v":[[13.375,137.813],[11.11,138.813],[-63.872,165.352],[-70.761,158.465],[-44.251,83.286],[-40.18,76.831],[-36.465,75.459],[-32.942,78.471],[-34.912,88.282],[-30.122,94.096],[-16.425,94.03],[-11.548,98.544],[-10.272,115.778],[-4.611,120.993],[8.777,119.993],[13.738,124.987]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.698039233685,0.54509806633,0.301960796118,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0.778,-0.282],[0,0],[1.347,1.664],[0,0],[0,0],[-2.595,0.059],[0,0],[0.083,-2.779]],"o":[[-0.729,0.388],[0,0],[-2.349,0.83],[0,0],[0,0],[0.186,2.581],[0,0],[2.779,-0.058],[0,0]],"v":[[13.375,137.813],[11.11,138.813],[-63.872,165.352],[-69.872,163.65],[-69.901,163.608],[-10.272,115.778],[-4.611,120.993],[8.777,119.993],[13.738,124.987]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.78823530674,0.57647061348,0.262745112181,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":49},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[-0.825,2.346],[0,0],[-1.821,1.814],[0,0],[0.4,-2.035],[0,0],[-0.974,-1.091]],"o":[[0,0],[-1.652,-1.347],[0,0],[0.853,-2.431],[0,0],[1.946,-0.725],[0,0],[-0.314,1.569],[0,0]],"v":[[-67.17,163.132],[-69.067,164.458],[-70.761,158.465],[-44.251,83.286],[-40.18,76.831],[-36.465,75.459],[-32.942,78.471],[-34.912,88.282],[-33.782,92.449]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803926945,0.745098054409,0.454901963472,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0.778,-0.282],[0,0],[-1.507,4.282],[0,0],[-1.821,1.814],[0,0],[0.4,-2.035],[0,0],[-3.083,0.022],[0,0],[-0.193,-2.546],[0,0],[-2.595,0.059],[0,0],[0.083,-2.779]],"o":[[-0.729,0.388],[0,0],[-4.274,1.505],[0,0],[0.853,-2.431],[0,0],[1.946,-0.725],[0,0],[-0.607,3.018],[0,0],[2.56,-0.01],[0,0],[0.186,2.581],[0,0],[2.779,-0.058],[0,0]],"v":[[13.375,137.813],[11.11,138.813],[-63.872,165.352],[-70.761,158.465],[-44.251,83.286],[-40.18,76.831],[-36.465,75.459],[-32.942,78.471],[-34.912,88.282],[-30.122,94.096],[-16.425,94.03],[-11.548,98.544],[-10.272,115.778],[-4.611,120.993],[8.777,119.993],[13.738,124.987]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.941176474094,0.819607853889,0.572549045086,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"parent":6,"sr":1,"ks":{"o":{"a":0,"k":55},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":8.035,"s":[-5]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":16.072,"s":[5]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":24.107,"s":[-5]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":32.143,"s":[5]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":40.178,"s":[-5]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":48.215,"s":[5]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":56.25,"s":[-5]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":64.285,"s":[5]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":72.322,"s":[-5]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":80.357,"s":[5]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":88.393,"s":[-5]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":96.428,"s":[5]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":104.465,"s":[-5]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":112.5,"s":[5]},{"t":139.822265625,"s":[0]}]},"p":{"a":0,"k":[-65.308,162.145,0]},"a":{"a":0,"k":[-68.097,169.091,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6.428,"s":[{"i":[[-2.343,-1.952],[-22.158,-15.019],[-4.825,-0.74],[-58.046,-3.855],[-1.091,4.534],[1.013,7.092],[1.352,1.016],[6.433,0.763],[4.562,-1.402],[6.205,-3.147]],"o":[[14.164,11.799],[3.116,2.112],[31.4,4.816],[17.064,1.133],[4.21,-17.497],[-1.385,-9.698],[-6.151,-4.623],[-3.034,-0.36],[-8.988,2.761],[-5.7,2.891]],"v":[[-72.722,175.576],[-5.575,220.209],[4.352,223.639],[214.867,249.197],[242.2,227.362],[245.841,187.794],[230.291,166.35],[21.957,136.392],[10.486,136.108],[-70.585,163.218]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8.035,"s":[{"i":[[-2.343,-1.952],[-22.158,-15.019],[-4.825,-0.74],[-58.047,-3.855],[-0.047,4.663],[1.013,7.092],[1.352,1.016],[6.433,0.763],[4.562,-1.402],[6.205,-3.147]],"o":[[14.164,11.799],[3.116,2.112],[31.4,4.816],[17.064,1.133],[0.171,-16.911],[-1.385,-9.698],[-6.151,-4.623],[-3.034,-0.36],[-8.988,2.761],[-5.7,2.891]],"v":[[-72.722,175.576],[-5.575,220.209],[4.352,223.639],[214.867,249.197],[231.262,227.049],[231.154,186.857],[230.291,166.35],[21.957,136.392],[10.486,136.108],[-70.585,163.218]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9.643,"s":[{"i":[[-2.343,-1.952],[-22.158,-15.019],[-4.825,-0.74],[-29.562,-1.583],[-0.047,4.663],[1.013,7.092],[1.352,1.016],[6.433,0.763],[4.562,-1.402],[6.205,-3.147]],"o":[[14.164,11.799],[3.116,2.112],[31.4,4.816],[-0.205,-0.257],[0.171,-16.911],[-1.385,-9.698],[-6.151,-4.623],[-3.034,-0.36],[-8.988,2.761],[-5.7,2.891]],"v":[[-72.722,175.576],[-5.575,220.209],[4.352,223.639],[214.867,249.197],[215.325,227.674],[215.216,187.482],[214.353,166.975],[21.957,136.392],[10.486,136.108],[-70.585,163.218]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19.285,"s":[{"i":[[-2.343,-1.952],[-22.158,-15.019],[-4.825,-0.74],[-29.562,-1.583],[-0.047,4.663],[0.066,7.164],[1.62,0.487],[6.433,0.763],[4.562,-1.402],[6.205,-3.147]],"o":[[14.164,11.799],[3.116,2.112],[31.4,4.816],[-0.205,-0.257],[0.171,-16.911],[-0.095,-10.311],[-6.107,-1.836],[-3.034,-0.36],[-8.988,2.761],[-5.7,2.891]],"v":[[-72.722,175.576],[-5.575,220.209],[4.352,223.639],[96.742,235.447],[97.2,213.924],[97.091,173.732],[96.384,151.819],[21.957,136.392],[10.486,136.108],[-70.585,163.218]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22.5,"s":[{"i":[[-2.343,-1.952],[-22.158,-15.019],[-4.825,-0.74],[-15.238,-1.819],[-0.047,4.663],[0.066,7.164],[1.62,0.487],[6.433,0.763],[4.562,-1.402],[6.205,-3.147]],"o":[[14.164,11.799],[3.116,2.112],[31.4,4.816],[-0.205,-0.257],[0.171,-16.911],[-0.095,-10.311],[-6.107,-1.836],[-3.034,-0.36],[-8.988,2.761],[-5.7,2.891]],"v":[[-72.722,175.576],[-5.575,220.209],[4.352,223.639],[57.679,232.635],[58.137,211.112],[58.029,170.919],[56.697,146.819],[21.957,136.392],[10.486,136.108],[-70.585,163.218]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25.715,"s":[{"i":[[-2.343,-1.952],[-22.158,-15.019],[-4.846,-0.575],[-15.238,-1.819],[-0.047,4.663],[0.066,7.164],[1.593,0.566],[1.984,0.369],[4.562,-1.402],[6.205,-3.147]],"o":[[14.164,11.799],[3.116,2.112],[17.355,2.304],[-0.205,-0.257],[0.171,-16.911],[-0.095,-10.311],[-2.231,-0.887],[-2.988,-0.61],[-8.988,2.761],[-5.7,2.891]],"v":[[-72.722,175.576],[-5.575,220.209],[4.352,223.639],[26.429,225.76],[26.887,204.237],[26.779,164.044],[25.447,139.944],[14.249,134.517],[6.736,134.858],[-70.585,163.218]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":27.322,"s":[{"i":[[-2.343,-1.952],[-22.158,-15.019],[-4.856,-0.493],[-15.238,-1.819],[-0.047,4.663],[0.066,7.164],[1.58,0.606],[-0.241,0.172],[4.562,-1.402],[6.205,-3.147]],"o":[[14.164,11.799],[3.116,2.112],[10.333,1.049],[-0.205,-0.257],[0.171,-16.911],[-0.095,-10.311],[-0.293,-0.412],[-2.965,-0.735],[-8.988,2.761],[-5.7,2.891]],"v":[[-72.722,175.576],[-5.575,220.209],[4.352,223.639],[16.429,224.197],[16.887,202.674],[16.779,162.482],[15.447,138.381],[16.02,135.454],[10.486,136.108],[-70.585,163.218]],"c":true}]},{"i":{"x":0.833,"y":0.896},"o":{"x":0.333,"y":0},"t":32.143,"s":[{"i":[[-2.343,-1.952],[-7.541,-5.227],[-1.131,-0.493],[-3.549,-1.819],[-0.011,4.663],[0.015,7.164],[0.368,0.606],[-0.056,0.172],[1.063,-1.402],[6.205,-3.147]],"o":[[14.164,11.799],[1.836,1.272],[2.407,1.049],[-0.048,-0.257],[0.04,-16.911],[-0.022,-10.311],[-0.068,-0.412],[-0.691,-0.735],[-2.093,2.761],[-5.7,2.891]],"v":[[-72.722,175.576],[-6.739,220.209],[-4.426,223.639],[-1.613,224.197],[-1.507,202.674],[-1.532,162.482],[-1.842,138.381],[-1.709,135.454],[-2.997,136.108],[-70.585,163.218]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.104},"t":35.357,"s":[{"i":[[-2.343,-1.952],[-15.859,-10.799],[-3.233,-0.633],[-10.201,-1.819],[-0.032,4.663],[0.044,7.164],[1.08,0.538],[3.636,0.508],[3.054,-1.402],[6.205,-3.147]],"o":[[14.164,11.799],[2.564,1.75],[18.906,3.192],[-0.137,-0.257],[0.115,-16.911],[-0.064,-10.311],[-3.505,-1.222],[-2.024,-0.522],[-6.017,2.761],[-5.7,2.891]],"v":[[-72.722,175.576],[-6.077,220.209],[0.569,223.639],[27.597,228.374],[27.903,206.851],[27.831,166.658],[26.939,142.558],[11.759,135.988],[4.676,136.108],[-70.585,163.218]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":36.965,"s":[{"i":[[-2.343,-1.952],[-22.158,-15.019],[-4.825,-0.74],[-15.238,-1.819],[-0.047,4.663],[0.066,7.164],[1.62,0.487],[6.433,0.763],[4.562,-1.402],[6.205,-3.147]],"o":[[14.164,11.799],[3.116,2.112],[31.4,4.816],[-0.205,-0.257],[0.171,-16.911],[-0.095,-10.311],[-6.107,-1.836],[-3.034,-0.36],[-8.988,2.761],[-5.7,2.891]],"v":[[-72.722,175.576],[-5.575,220.209],[4.352,223.639],[57.679,232.635],[58.137,211.112],[58.029,170.919],[56.697,146.819],[21.957,136.392],[10.486,136.108],[-70.585,163.218]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":43.393,"s":[{"i":[[-2.343,-1.952],[-22.158,-15.019],[-4.825,-0.74],[-29.562,-1.583],[-0.047,4.663],[1.013,7.092],[1.352,1.016],[6.433,0.763],[4.562,-1.402],[6.205,-3.147]],"o":[[14.164,11.799],[3.116,2.112],[31.4,4.816],[-0.205,-0.257],[0.171,-16.911],[-1.385,-9.698],[-6.151,-4.623],[-3.034,-0.36],[-8.988,2.761],[-5.7,2.891]],"v":[[-72.722,175.576],[-5.575,220.209],[4.352,223.639],[214.867,249.197],[215.325,227.674],[215.216,187.482],[214.353,166.975],[21.957,136.392],[10.486,136.108],[-70.585,163.218]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[-2.343,-1.952],[-22.158,-15.019],[-4.825,-0.74],[-58.046,-3.855],[-1.091,4.534],[1.013,7.092],[1.352,1.016],[6.433,0.763],[4.562,-1.402],[6.205,-3.147]],"o":[[14.164,11.799],[3.116,2.112],[31.4,4.816],[17.064,1.133],[4.21,-17.497],[-1.385,-9.698],[-6.151,-4.623],[-3.034,-0.36],[-8.988,2.761],[-5.7,2.891]],"v":[[-72.722,175.576],[-5.575,220.209],[4.352,223.639],[214.867,249.197],[242.2,227.362],[245.841,187.794],[230.291,166.35],[21.957,136.392],[10.486,136.108],[-70.585,163.218]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":54.643,"s":[{"i":[[-2.343,-1.952],[-22.158,-15.019],[-4.825,-0.74],[-58.046,-3.855],[-1.091,4.534],[1.013,7.092],[1.352,1.016],[6.433,0.763],[4.562,-1.402],[6.205,-3.147]],"o":[[14.164,11.799],[3.116,2.112],[31.4,4.816],[17.064,1.133],[4.21,-17.497],[-1.385,-9.698],[-6.151,-4.623],[-3.034,-0.36],[-8.988,2.761],[-5.7,2.891]],"v":[[-72.722,175.576],[-5.575,220.209],[4.352,223.639],[214.867,249.197],[242.2,227.362],[245.841,187.794],[230.291,166.35],[21.957,136.392],[10.486,136.108],[-70.585,163.218]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":56.25,"s":[{"i":[[-2.343,-1.952],[-22.158,-15.019],[-4.825,-0.74],[-58.047,-3.855],[-0.047,4.663],[1.013,7.092],[1.352,1.016],[6.433,0.763],[4.562,-1.402],[6.205,-3.147]],"o":[[14.164,11.799],[3.116,2.112],[31.4,4.816],[17.064,1.133],[0.171,-16.911],[-1.385,-9.698],[-6.151,-4.623],[-3.034,-0.36],[-8.988,2.761],[-5.7,2.891]],"v":[[-72.722,175.576],[-5.575,220.209],[4.352,223.639],[214.867,249.197],[231.262,227.049],[231.154,186.857],[230.291,166.35],[21.957,136.392],[10.486,136.108],[-70.585,163.218]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":57.857,"s":[{"i":[[-2.343,-1.952],[-22.158,-15.019],[-4.825,-0.74],[-29.562,-1.583],[-0.047,4.663],[1.013,7.092],[1.352,1.016],[6.433,0.763],[4.562,-1.402],[6.205,-3.147]],"o":[[14.164,11.799],[3.116,2.112],[31.4,4.816],[-0.205,-0.257],[0.171,-16.911],[-1.385,-9.698],[-6.151,-4.623],[-3.034,-0.36],[-8.988,2.761],[-5.7,2.891]],"v":[[-72.722,175.576],[-5.575,220.209],[4.352,223.639],[214.867,249.197],[215.325,227.674],[215.216,187.482],[214.353,166.975],[21.957,136.392],[10.486,136.108],[-70.585,163.218]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":64.285,"s":[{"i":[[-2.343,-1.952],[-22.158,-15.019],[-4.825,-0.74],[-29.562,-1.583],[-0.047,4.663],[0.382,7.14],[1.531,0.663],[6.433,0.763],[4.562,-1.402],[6.205,-3.147]],"o":[[14.164,11.799],[3.116,2.112],[31.4,4.816],[-0.205,-0.257],[0.171,-16.911],[-0.525,-10.107],[-6.122,-2.765],[-3.034,-0.36],[-8.988,2.761],[-5.7,2.891]],"v":[[-72.722,175.576],[-5.575,220.209],[4.352,223.639],[129.867,240.031],[130.325,218.508],[130.216,178.315],[129.457,156.871],[21.957,136.392],[10.486,136.108],[-70.585,163.218]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":67.5,"s":[{"i":[[-2.343,-1.952],[-22.158,-15.019],[-4.825,-0.74],[-29.562,-1.583],[-0.047,4.663],[0.066,7.164],[1.62,0.487],[6.433,0.763],[4.562,-1.402],[6.205,-3.147]],"o":[[14.164,11.799],[3.116,2.112],[31.4,4.816],[-0.205,-0.257],[0.171,-16.911],[-0.095,-10.311],[-6.107,-1.836],[-3.034,-0.36],[-8.988,2.761],[-5.7,2.891]],"v":[[-72.722,175.576],[-5.575,220.209],[4.352,223.639],[87.367,235.447],[87.825,213.924],[87.716,173.732],[87.009,151.819],[21.957,136.392],[10.486,136.108],[-70.585,163.218]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":70.715,"s":[{"i":[[-2.343,-1.952],[-22.158,-15.019],[-4.825,-0.74],[-15.238,-1.819],[-0.047,4.663],[0.066,7.164],[1.62,0.487],[6.433,0.763],[4.562,-1.402],[6.205,-3.147]],"o":[[14.164,11.799],[3.116,2.112],[31.4,4.816],[-0.205,-0.257],[0.171,-16.911],[-0.095,-10.311],[-6.107,-1.836],[-3.034,-0.36],[-8.988,2.761],[-5.7,2.891]],"v":[[-72.722,175.576],[-5.575,220.209],[4.352,223.639],[48.304,229.51],[48.762,207.987],[48.654,167.794],[47.322,143.694],[21.957,136.392],[10.486,136.108],[-70.585,163.218]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":73.928,"s":[{"i":[[-2.343,-1.952],[-22.158,-15.019],[-4.846,-0.575],[-15.238,-1.819],[-0.047,4.663],[0.066,7.164],[1.593,0.566],[1.984,0.369],[4.562,-1.402],[6.205,-3.147]],"o":[[14.164,11.799],[3.116,2.112],[17.355,2.304],[-0.205,-0.257],[0.171,-16.911],[-0.095,-10.311],[-2.231,-0.887],[-2.988,-0.61],[-8.988,2.761],[-5.7,2.891]],"v":[[-72.722,175.576],[-5.575,220.209],[4.352,223.639],[17.054,222.635],[17.512,201.112],[17.404,160.919],[16.072,136.819],[14.249,134.517],[6.736,134.858],[-70.585,163.218]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":75.535,"s":[{"i":[[-2.343,-1.952],[-22.158,-15.019],[-4.856,-0.493],[-15.238,-1.819],[-0.047,4.663],[0.066,7.164],[1.58,0.606],[-0.241,0.172],[4.562,-1.402],[6.205,-3.147]],"o":[[14.164,11.799],[3.116,2.112],[10.333,1.049],[-0.205,-0.257],[0.171,-16.911],[-0.095,-10.311],[-0.293,-0.412],[-2.965,-0.735],[-8.988,2.761],[-5.7,2.891]],"v":[[-72.722,175.576],[-5.575,220.209],[4.352,223.639],[7.054,224.197],[7.512,202.674],[7.404,162.482],[6.072,138.381],[16.02,135.454],[10.486,136.108],[-70.585,163.218]],"c":true}]},{"i":{"x":0.833,"y":0.896},"o":{"x":0.333,"y":0},"t":80.357,"s":[{"i":[[-2.343,-1.952],[-7.541,-5.227],[-1.131,-0.493],[-3.549,-1.819],[-0.011,4.663],[0.015,7.164],[0.368,0.606],[-0.056,0.172],[1.063,-1.402],[6.205,-3.147]],"o":[[14.164,11.799],[1.836,1.272],[2.407,1.049],[-0.048,-0.257],[0.04,-16.911],[-0.022,-10.311],[-0.068,-0.412],[-0.691,-0.735],[-2.093,2.761],[-5.7,2.891]],"v":[[-72.722,175.576],[-14.239,214.897],[-12.864,221.921],[-14.113,224.197],[-14.007,202.674],[-14.032,162.482],[-14.342,138.381],[-1.709,135.454],[-2.997,136.108],[-70.585,163.218]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.104},"t":83.572,"s":[{"i":[[-2.343,-1.952],[-15.859,-10.799],[-3.233,-0.633],[-10.201,-1.819],[-0.032,4.663],[0.044,7.164],[1.08,0.538],[3.636,0.508],[3.054,-1.402],[6.205,-3.147]],"o":[[14.164,11.799],[2.564,1.75],[18.906,3.192],[-0.137,-0.257],[0.115,-16.911],[-0.064,-10.311],[-3.505,-1.222],[-2.024,-0.522],[-6.017,2.761],[-5.7,2.891]],"v":[[-72.722,175.576],[-6.077,220.209],[0.569,223.639],[20.409,225.561],[20.716,204.038],[20.643,163.846],[19.752,139.745],[11.759,135.988],[4.676,136.108],[-70.585,163.218]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":85.178,"s":[{"i":[[-2.343,-1.952],[-22.158,-15.019],[-4.825,-0.74],[-15.238,-1.819],[-0.047,4.663],[0.066,7.164],[1.62,0.487],[6.433,0.763],[4.562,-1.402],[6.205,-3.147]],"o":[[14.164,11.799],[3.116,2.112],[31.4,4.816],[-0.205,-0.257],[0.171,-16.911],[-0.095,-10.311],[-6.107,-1.836],[-3.034,-0.36],[-8.988,2.761],[-5.7,2.891]],"v":[[-72.722,175.576],[-5.575,220.209],[4.352,223.639],[51.429,229.51],[51.887,207.987],[51.779,167.794],[50.447,143.694],[21.957,136.392],[10.486,136.108],[-70.585,163.218]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":86.785,"s":[{"i":[[-2.343,-1.952],[-22.158,-15.019],[-4.825,-0.74],[-18.819,-1.76],[-0.047,4.663],[0.303,7.146],[1.553,0.619],[6.433,0.763],[4.562,-1.402],[6.205,-3.147]],"o":[[14.164,11.799],[3.116,2.112],[31.4,4.816],[-0.205,-0.257],[0.171,-16.911],[-0.418,-10.158],[-6.118,-2.532],[-3.034,-0.36],[-8.988,2.761],[-5.7,2.891]],"v":[[-72.722,175.576],[-5.575,220.209],[4.352,223.639],[89.163,231.307],[89.622,209.784],[89.513,169.591],[88.298,146.389],[21.957,136.392],[10.486,136.108],[-70.585,163.218]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":91.607,"s":[{"i":[[-2.343,-1.952],[-22.158,-15.019],[-4.825,-0.74],[-29.562,-1.583],[-0.047,4.663],[1.013,7.092],[1.352,1.016],[6.433,0.763],[4.562,-1.402],[6.205,-3.147]],"o":[[14.164,11.799],[3.116,2.112],[31.4,4.816],[-0.205,-0.257],[0.171,-16.911],[-1.385,-9.698],[-6.151,-4.623],[-3.034,-0.36],[-8.988,2.761],[-5.7,2.891]],"v":[[-72.722,175.576],[-5.575,220.209],[4.352,223.639],[213.304,249.197],[213.762,227.674],[213.654,187.482],[212.791,166.975],[21.957,136.392],[10.486,136.108],[-70.585,163.218]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":93.215,"s":[{"i":[[-2.343,-1.952],[-22.158,-15.019],[-4.825,-0.74],[-58.046,-3.855],[-1.091,4.534],[1.013,7.092],[1.352,1.016],[6.433,0.763],[4.562,-1.402],[6.205,-3.147]],"o":[[14.164,11.799],[3.116,2.112],[31.4,4.816],[17.064,1.133],[4.21,-17.497],[-1.385,-9.698],[-6.151,-4.623],[-3.034,-0.36],[-8.988,2.761],[-5.7,2.891]],"v":[[-72.722,175.576],[-5.575,220.209],[4.352,223.639],[214.867,249.197],[242.2,227.362],[245.841,187.794],[230.291,166.35],[21.957,136.392],[10.486,136.108],[-70.585,163.218]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":102.857,"s":[{"i":[[-2.343,-1.952],[-22.158,-15.019],[-4.825,-0.74],[-58.046,-3.855],[-1.091,4.534],[1.013,7.092],[1.352,1.016],[6.433,0.763],[4.562,-1.402],[6.205,-3.147]],"o":[[14.164,11.799],[3.116,2.112],[31.4,4.816],[17.064,1.133],[4.21,-17.497],[-1.385,-9.698],[-6.151,-4.623],[-3.034,-0.36],[-8.988,2.761],[-5.7,2.891]],"v":[[-72.722,175.576],[-5.575,220.209],[4.352,223.639],[214.867,249.197],[242.2,227.362],[245.841,187.794],[230.291,166.35],[21.957,136.392],[10.486,136.108],[-70.585,163.218]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":104.465,"s":[{"i":[[-2.343,-1.952],[-22.158,-15.019],[-4.825,-0.74],[-58.047,-3.855],[-0.047,4.663],[1.013,7.092],[1.352,1.016],[6.433,0.763],[4.562,-1.402],[6.205,-3.147]],"o":[[14.164,11.799],[3.116,2.112],[31.4,4.816],[17.064,1.133],[0.171,-16.911],[-1.385,-9.698],[-6.151,-4.623],[-3.034,-0.36],[-8.988,2.761],[-5.7,2.891]],"v":[[-72.722,175.576],[-5.575,220.209],[4.352,223.639],[214.867,249.197],[231.262,227.049],[231.154,186.857],[230.291,166.35],[21.957,136.392],[10.486,136.108],[-70.585,163.218]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":106.072,"s":[{"i":[[-2.343,-1.952],[-22.158,-15.019],[-4.825,-0.74],[-29.562,-1.583],[-0.047,4.663],[1.013,7.092],[1.352,1.016],[6.433,0.763],[4.562,-1.402],[6.205,-3.147]],"o":[[14.164,11.799],[3.116,2.112],[31.4,4.816],[-0.205,-0.257],[0.171,-16.911],[-1.385,-9.698],[-6.151,-4.623],[-3.034,-0.36],[-8.988,2.761],[-5.7,2.891]],"v":[[-72.722,175.576],[-5.575,220.209],[4.352,223.639],[214.867,249.197],[215.325,227.674],[215.216,187.482],[214.353,166.975],[21.957,136.392],[10.486,136.108],[-70.585,163.218]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":110.893,"s":[{"i":[[-2.343,-1.952],[-22.158,-15.019],[-4.825,-0.74],[-29.562,-1.583],[-0.047,4.663],[0.54,7.128],[1.486,0.752],[6.433,0.763],[4.562,-1.402],[6.205,-3.147]],"o":[[14.164,11.799],[3.116,2.112],[31.4,4.816],[-0.205,-0.257],[0.171,-16.911],[-0.74,-10.004],[-6.129,-3.229],[-3.034,-0.36],[-8.988,2.761],[-5.7,2.891]],"v":[[-72.722,175.576],[-5.575,220.209],[4.352,223.639],[158.929,242.322],[159.387,220.799],[159.279,180.607],[158.494,159.397],[21.957,136.392],[10.486,136.108],[-70.585,163.218]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":115.715,"s":[{"i":[[-2.343,-1.952],[-22.158,-15.019],[-4.825,-0.74],[-29.562,-1.583],[-0.047,4.663],[0.066,7.164],[1.62,0.487],[6.433,0.763],[4.562,-1.402],[6.205,-3.147]],"o":[[14.164,11.799],[3.116,2.112],[31.4,4.816],[-0.205,-0.257],[0.171,-16.911],[-0.095,-10.311],[-6.107,-1.836],[-3.034,-0.36],[-8.988,2.761],[-5.7,2.891]],"v":[[-72.722,175.576],[-5.575,220.209],[4.352,223.639],[96.742,235.447],[97.2,213.924],[97.091,173.732],[96.384,151.819],[21.957,136.392],[10.486,136.108],[-70.585,163.218]],"c":true}]},{"i":{"x":0.833,"y":0.896},"o":{"x":0.167,"y":0.167},"t":118.928,"s":[{"i":[[-2.343,-1.952],[-22.158,-15.019],[-4.825,-0.74],[-15.065,-2.923],[-0.386,4.647],[-0.455,7.15],[1.58,0.604],[6.433,0.763],[4.562,-1.402],[6.205,-3.147]],"o":[[14.164,11.799],[3.116,2.112],[31.4,4.816],[-0.186,-0.271],[1.401,-16.854],[0.655,-10.291],[-5.957,-2.275],[-3.034,-0.36],[-8.988,2.761],[-5.7,2.891]],"v":[[-72.722,175.576],[-5.575,220.209],[4.352,223.639],[60.495,235.959],[60.33,214.526],[63.145,174.432],[63.569,150.299],[21.957,136.392],[10.486,136.108],[-70.585,163.218]],"c":true}]},{"i":{"x":0.833,"y":0.896},"o":{"x":0.167,"y":0.104},"t":120.535,"s":[{"i":[[-2.343,-1.952],[-18.946,-13.082],[-4.03,-0.709],[-12.581,-2.756],[-0.397,4.646],[-0.494,7.147],[1.311,0.611],[5.051,0.636],[3.845,-1.38],[6.205,-3.147]],"o":[[14.164,11.799],[2.818,1.969],[25.221,4.062],[-0.152,-0.268],[1.44,-16.85],[0.712,-10.286],[-4.699,-1.88],[-2.521,-0.453],[-7.575,2.718],[-5.7,2.891]],"v":[[-72.722,175.576],[-2.936,220.262],[5.306,223.734],[44.517,231.412],[41.56,208.734],[44.553,168.654],[45.29,144.543],[21.461,136.419],[12.141,136.308],[-70.585,163.218]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.104},"t":123.75,"s":[{"i":[[-2.343,-1.952],[-12.521,-9.207],[-2.44,-0.647],[-7.811,-1.678],[0.03,4.663],[0.117,7.162],[0.828,0.548],[2.315,0.161],[2.411,-1.336],[6.205,-3.147]],"o":[[14.164,11.799],[2.221,1.681],[12.862,2.553],[-0.108,-0.255],[-0.108,-16.911],[-0.168,-10.309],[-2.276,-0.876],[-1.551,-0.491],[-4.751,2.632],[-5.7,2.891]],"v":[[-72.722,175.576],[2.343,220.369],[7.213,223.925],[14.017,225.596],[14.002,204.071],[13.48,163.884],[12.52,139.799],[14.571,140.181],[15.449,136.71],[-70.585,163.218]],"c":true}]},{"i":{"x":0.833,"y":0.896},"o":{"x":0.333,"y":0},"t":125.357,"s":[{"i":[[-2.343,-1.952],[-7.031,-5.895],[-1.081,-0.594],[-3.368,-2.136],[0.096,4.662],[0.179,7.162],[0.382,0.597],[-0.052,0.173],[1.03,-1.425],[6.205,-3.147]],"o":[[14.164,11.799],[1.712,1.435],[2.301,1.264],[-0.024,-0.26],[-0.346,-16.908],[-0.258,-10.308],[-0.078,-0.41],[-0.707,-0.719],[-2.03,2.808],[-5.7,2.891]],"v":[[-72.722,175.576],[-1.686,219.596],[0.302,223.223],[3.052,224.036],[3.46,202.283],[2.517,162.102],[1.656,138.014],[1.723,135.085],[0.449,135.768],[-70.585,163.218]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.104},"t":126.965,"s":[{"i":[[-2.343,-1.952],[-5.765,-3.101],[-0.859,-0.275],[-2.7,-1.042],[0.09,3.041],[0.163,4.671],[0.289,0.38],[-0.038,0.114],[0.767,-0.957],[6.205,-3.147]],"o":[[14.164,11.799],[1.404,0.755],[1.827,0.586],[-0.041,-0.165],[-0.327,-11.03],[-0.234,-6.723],[-0.06,-0.266],[-0.534,-0.451],[-1.512,1.886],[-5.7,2.891]],"v":[[-72.722,175.576],[-8.104,205.81],[-6.298,207.952],[-4.177,208.201],[-4.55,194.161],[-5.417,167.95],[-6.158,152.246],[-6.119,150.331],[-7.072,150.81],[-70.585,163.218]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":130.178,"s":[{"i":[[-2.343,-1.952],[-5.765,-3.101],[-0.859,-0.275],[-2.7,-1.042],[0.09,3.041],[0.163,4.671],[0.289,0.38],[-0.038,0.114],[0.767,-0.957],[6.205,-3.147]],"o":[[14.164,11.799],[1.404,0.755],[1.827,0.586],[-0.041,-0.165],[-0.327,-11.03],[-0.234,-6.723],[-0.06,-0.266],[-0.534,-0.451],[-1.512,1.886],[-5.7,2.891]],"v":[[-72.722,175.576],[-19.333,205.81],[-17.526,207.952],[-15.405,208.201],[-15.779,194.161],[-16.645,167.95],[-17.386,152.246],[-17.348,150.331],[-18.3,150.81],[-70.585,163.218]],"c":true}]},{"i":{"x":0.833,"y":0.896},"o":{"x":0.167,"y":0},"t":133.393,"s":[{"i":[[-2.343,-1.952],[-5.765,-3.101],[-0.859,-0.275],[-2.7,-1.042],[0.09,3.041],[0.163,4.671],[0.289,0.38],[-0.038,0.114],[0.767,-0.957],[6.205,-3.147]],"o":[[14.164,11.799],[1.404,0.755],[1.827,0.586],[-0.041,-0.165],[-0.327,-11.03],[-0.234,-6.723],[-0.06,-0.266],[-0.534,-0.451],[-1.512,1.886],[-5.7,2.891]],"v":[[-72.722,175.576],[-17.125,205.81],[-15.319,207.952],[-13.197,208.201],[-13.571,194.161],[-14.438,167.95],[-15.178,152.246],[-15.14,150.331],[-16.093,150.81],[-70.585,163.218]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.104},"t":139.822,"s":[{"i":[[-2.343,-1.952],[-12.521,-9.207],[-2.44,-0.647],[-7.811,-1.678],[0.03,4.663],[0.117,7.162],[0.828,0.548],[2.315,0.161],[2.411,-1.336],[6.205,-3.147]],"o":[[14.164,11.799],[2.221,1.681],[12.862,2.553],[-0.108,-0.255],[-0.108,-16.911],[-0.168,-10.309],[-2.276,-0.876],[-1.551,-0.491],[-4.751,2.632],[-5.7,2.891]],"v":[[-72.722,175.576],[-25.233,202.459],[4.655,202.319],[11.458,203.991],[11.443,182.466],[13.48,163.884],[12.52,139.799],[14.571,140.181],[15.449,136.71],[-70.585,163.218]],"c":true}]},{"i":{"x":0.05,"y":1},"o":{"x":0.167,"y":0.167},"t":149.465,"s":[{"i":[[-2.343,-1.952],[-22.158,-15.019],[-4.881,-0.067],[-29.562,-1.583],[-0.047,4.663],[0.066,7.164],[1.62,0.487],[6.433,0.763],[4.562,-1.402],[6.205,-3.147]],"o":[[14.164,11.799],[3.116,2.112],[30.843,0.421],[-0.205,-0.257],[0.171,-16.911],[-0.095,-10.311],[-6.107,-1.836],[-3.034,-0.36],[-8.988,2.761],[-5.7,2.891]],"v":[[-72.722,175.576],[-44.015,195.305],[-32.734,195.757],[81.853,195.654],[82.311,174.131],[82.203,170.754],[81.496,148.841],[21.957,136.392],[10.486,136.108],[-70.585,163.218]],"c":true}]},{"t":180,"s":[{"i":[[-2.343,-1.952],[-22.158,-15.019],[-4.881,-0.067],[-29.562,-1.583],[-0.047,4.663],[0.066,7.164],[1.62,0.487],[6.433,0.763],[4.562,-1.402],[6.205,-3.147]],"o":[[14.164,11.799],[3.116,2.112],[30.843,0.421],[-0.205,-0.257],[0.171,-16.911],[-0.095,-10.311],[-6.107,-1.836],[-3.034,-0.36],[-8.988,2.761],[-5.7,2.891]],"v":[[-72.722,175.576],[-50.015,191.055],[-38.734,191.507],[144.853,191.339],[145.411,181.066],[145.302,177.689],[145.996,164.841],[21.957,136.392],[10.486,136.108],[-70.585,163.218]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.776470648074,0.776470648074,0.772549079446,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"parent":11,"sr":1,"ks":{"p":{"a":0,"k":[-127.438,-159.153,0]},"a":{"a":0,"k":[-127.438,-159.153,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-4.093,-32.646],[0,0],[-0.001,0.001],[-44.633,20.728],[-0.323,0.148],[0.024,-0.012]],"o":[[0,0],[0,0],[0.257,-0.234],[0.322,-0.149],[-0.021,0.01],[-3.699,1.822]],"v":[[-123.003,-132.523],[-167.823,-132.523],[-167.821,-132.524],[-88.02,-185.336],[-87.053,-185.783],[-87.122,-185.749]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.776470601559,0.776470601559,0.772549033165,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"parent":11,"sr":1,"ks":{"p":{"a":0,"k":[-10.272,6.317,0]},"a":{"a":0,"k":[-10.272,6.317,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":17.678,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[7.469,-113.893],[7.496,-113.893],[7.496,-99.813],[7.469,-99.813]],"c":true}]},{"t":32.142578125,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[7.909,-113.893],[93.976,-113.893],[93.976,-99.813],[7.909,-99.813]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.690196078431,0.690196078431,0.690196078431,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":120.535,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[7.469,112.446],[7.499,112.446],[7.499,126.527],[7.469,126.527]],"c":true}]},{"t":135,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[7.909,112.446],[102.942,112.446],[102.942,126.527],[7.909,126.527]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.690196078431,0.690196078431,0.690196078431,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":114.107,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[7.469,67.434],[7.494,67.434],[7.494,81.515],[7.469,81.515]],"c":true}]},{"t":128.572265625,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[8.175,67.434],[87.534,67.434],[87.534,81.515],[8.175,81.515]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.690196078431,0.690196078431,0.690196078431,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":70.715,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[7.469,22.446],[7.494,22.446],[7.494,36.527],[7.469,36.527]],"c":true}]},{"t":85.177734375,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[7.909,22.446],[88.944,22.446],[88.944,36.527],[7.909,36.527]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.690196078431,0.690196078431,0.690196078431,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":65.893,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[7.469,-22.718],[7.495,-22.718],[7.495,-8.637],[7.469,-8.637]],"c":true}]},{"t":80.357421875,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[7.909,-22.718],[92.572,-22.718],[92.572,-8.637],[7.909,-8.637]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.690196078431,0.690196078431,0.690196078431,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":22.5,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[7.469,-68.693],[7.5,-68.693],[7.5,-54.612],[7.469,-54.612]],"c":true}]},{"t":36.96484375,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[7.526,-68.693],[107.073,-68.693],[107.073,-54.612],[7.526,-54.612]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.690196078431,0.690196078431,0.690196078431,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-127.656,-113.893],[-127.682,-113.893],[-127.682,-99.813],[-127.656,-99.813]],"c":true}]},{"t":17.677734375,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-127.617,-113.893],[-42.584,-113.893],[-42.584,-99.813],[-127.617,-99.813]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.690196078431,0.690196078431,0.690196078431,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":102.857,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-127.656,112.446],[-127.686,112.446],[-127.686,126.527],[-127.656,126.527]],"c":true}]},{"t":120.53515625,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-127.617,112.446],[-29.164,112.446],[-29.164,126.527],[-127.617,126.527]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.690196078431,0.690196078431,0.690196078431,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":96.428,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-127.656,67.434],[-127.68,67.434],[-127.68,81.515],[-127.656,81.515]],"c":true}]},{"t":114.107421875,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-127.617,67.434],[-48.258,67.434],[-48.258,81.515],[-127.617,81.515]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.690196078431,0.690196078431,0.690196078431,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":53.035,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-127.656,22.446],[-127.688,22.446],[-127.688,36.527],[-127.656,36.527]],"c":true}]},{"t":70.71484375,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-127.617,22.446],[-24.354,22.446],[-24.354,36.527],[-127.617,36.527]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.690196078431,0.690196078431,0.690196078431,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":48.215,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-127.656,-22.718],[-127.68,-22.718],[-127.68,-8.637],[-127.656,-8.637]],"c":true}]},{"t":65.892578125,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-127.617,-22.718],[-48.258,-22.718],[-48.258,-8.637],[-127.617,-8.637]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.690196078431,0.690196078431,0.690196078431,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":4.822,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-127.656,-68.693],[-127.684,-68.693],[-127.684,-54.612],[-127.656,-54.612]],"c":true}]},{"t":22.5,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-127.617,-68.693],[-35.384,-68.693],[-35.384,-54.612],[-127.617,-54.612]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.690196078431,0.690196078431,0.690196078431,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":3,"parent":2,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.399,"y":0},"t":130.178,"s":[226,124,0],"to":[0,0,0],"ti":[0,0,0]},{"t":176.78515625,"s":[273,145,0]}]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"parent":10,"sr":1,"ks":{"p":{"a":0,"k":[-235.333,-123.338,0]},"a":{"a":0,"k":[-9.333,0.662,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[-45.26,20.79]],"o":[[0,0],[0,0],[0,0],[0,0],[0.07,-0.03]],"v":[[149.157,-185.893],[149.157,187.217],[-167.823,187.217],[-167.823,-132.523],[-87.053,-185.783]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.776470601559,0.776470601559,0.772549033165,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[-45.26,20.79]],"o":[[0,0],[0,0],[0,0],[0,0],[0.07,-0.03]],"v":[[149.157,-185.893],[149.157,187.217],[-167.823,187.217],[-167.823,-132.523],[-87.053,-185.783]],"c":true}},"hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0,0.992,0.992,0.992,0.583,0.91,0.908,0.906,1,0.827,0.824,0.82]}},"s":{"a":0,"k":[-32,-180]},"e":{"a":0,"k":[34.343,352.286]},"t":1,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0}]} \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/wallet_perfect.tgs b/TMessagesProj/src/main/res/raw/wallet_perfect.tgs deleted file mode 100644 index b8b091757..000000000 --- a/TMessagesProj/src/main/res/raw/wallet_perfect.tgs +++ /dev/null @@ -1 +0,0 @@ -{"tgs":1,"v":"5.5.2","fr":60,"ip":0,"op":120,"w":480,"h":608,"nm":"thumbsup 👍480x608","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"parent":5,"sr":1,"ks":{"p":{"a":0,"k":[110.62,-0.262,0]},"a":{"a":0,"k":[110.62,-0.262,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-4.8,-30.236],[22.645,-7.162],[30.124,6.478],[-17.411,11.949],[-8.876,-0.066],[-19.033,0.597]],"o":[[32.969,1.056],[5.235,32.973],[-24.922,7.882],[-31.75,-6.828],[17.411,-11.949],[11.522,0.085],[0,0]],"v":[[107.555,-50.359],[187.305,-8.441],[157.291,41.858],[58.969,46.324],[44.288,-4.629],[98.315,-14.473],[143.72,-23.691]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":10,"s":[{"i":[[0,0],[-4.8,-30.236],[22.645,-7.162],[30.762,1.767],[-17.411,11.949],[-8.535,2.438],[-7.196,4.859]],"o":[[32.969,1.056],[5.235,32.973],[-24.922,7.882],[-32.422,-1.862],[17.411,-11.949],[11.079,-3.165],[0,0]],"v":[[107.555,-50.359],[193.555,-8.441],[168.853,43.108],[86.798,55.885],[72.101,5.058],[120.587,-11.917],[143.252,-21.659]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[-4.8,-30.236],[22.645,-7.162],[39.542,14.612],[-19.466,8.186],[-8.68,-1.857],[-15.165,1.89]],"o":[[32.969,1.056],[5.235,32.973],[-24.922,7.882],[-30.463,-11.257],[19.466,-8.186],[11.267,2.411],[0,0]],"v":[[123.492,-39.109],[180.743,-9.066],[150.728,41.233],[43.548,39.232],[39.598,-14.003],[94.812,-18.043],[136.064,-24.941]],"c":false}]},{"i":{"x":0.833,"y":0.808},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[-4.8,-30.236],[22.645,-7.162],[39.542,14.612],[-19.466,8.186],[-8.68,-1.857],[-15.165,1.89]],"o":[[32.969,1.056],[5.235,32.973],[-24.922,7.882],[-30.463,-11.257],[19.466,-8.186],[11.267,2.411],[0,0]],"v":[[123.492,-39.109],[180.743,-9.066],[150.728,41.233],[43.548,39.232],[39.598,-14.003],[94.812,-18.043],[136.064,-24.941]],"c":false}]},{"i":{"x":0.833,"y":0.808},"o":{"x":0.167,"y":0.192},"t":35.398,"s":[{"i":[[0,0],[-4.8,-30.236],[22.645,-7.162],[39.542,14.612],[-19.466,8.186],[-8.68,-1.857],[-15.165,1.89]],"o":[[32.969,1.056],[5.235,32.973],[-24.922,7.882],[-30.463,-11.257],[19.466,-8.186],[11.267,2.411],[0,0]],"v":[[123.492,-39.109],[180.743,-9.066],[150.728,41.233],[43.548,39.232],[39.598,-14.003],[94.812,-18.043],[136.064,-24.941]],"c":false}]},{"i":{"x":0.833,"y":0.808},"o":{"x":0.167,"y":0.192},"t":39.736,"s":[{"i":[[0,0],[-4.8,-30.236],[22.645,-7.162],[39.542,14.612],[-19.466,8.186],[-8.68,-1.857],[-15.165,1.89]],"o":[[32.969,1.056],[5.235,32.973],[-24.922,7.882],[-30.463,-11.257],[19.466,-8.186],[11.267,2.411],[0,0]],"v":[[110.256,-39.831],[180.743,-9.066],[150.728,41.233],[43.548,39.232],[39.598,-14.003],[94.812,-18.043],[136.064,-24.941]],"c":false}]},{"i":{"x":0.833,"y":0.808},"o":{"x":0.167,"y":0.192},"t":43.205,"s":[{"i":[[0,0],[-4.8,-30.236],[22.645,-7.162],[39.542,14.612],[-19.466,8.186],[-8.68,-1.857],[-15.165,1.89]],"o":[[32.969,1.056],[5.235,32.973],[-24.922,7.882],[-30.463,-11.257],[19.466,-8.186],[11.267,2.411],[0,0]],"v":[[107.948,-44.294],[180.743,-9.066],[150.728,41.233],[43.548,39.232],[39.598,-14.003],[94.812,-18.043],[136.064,-24.941]],"c":false}]},{"i":{"x":0.833,"y":0.808},"o":{"x":0.167,"y":0.192},"t":44.072,"s":[{"i":[[0,0],[-4.8,-30.236],[22.645,-7.162],[39.542,14.612],[-19.466,8.186],[-8.68,-1.857],[-15.165,1.89]],"o":[[32.969,1.056],[5.235,32.973],[-24.922,7.882],[-30.463,-11.257],[19.466,-8.186],[11.267,2.411],[0,0]],"v":[[107.716,-45.923],[180.743,-9.066],[150.728,41.233],[43.548,39.232],[39.598,-14.003],[94.812,-18.043],[136.064,-24.941]],"c":false}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0.192},"t":44.941,"s":[{"i":[[0,0],[-4.8,-30.236],[22.645,-7.162],[39.542,14.612],[-19.466,8.186],[-8.68,-1.857],[-15.165,1.89]],"o":[[32.969,1.056],[5.235,32.973],[-24.922,7.882],[-30.463,-11.257],[19.466,-8.186],[11.267,2.411],[0,0]],"v":[[107.744,-47.41],[180.743,-9.066],[150.728,41.233],[43.548,39.232],[39.598,-14.003],[94.812,-18.043],[136.064,-24.941]],"c":false}]},{"i":{"x":0.833,"y":0.808},"o":{"x":0.33,"y":0},"t":45.809,"s":[{"i":[[0,0],[-4.8,-30.236],[22.645,-7.162],[39.542,14.612],[-19.466,8.186],[-8.68,-1.857],[-15.165,1.89]],"o":[[32.969,1.056],[5.235,32.973],[-24.922,7.882],[-30.463,-11.257],[19.466,-8.186],[11.267,2.411],[0,0]],"v":[[107.398,-48.953],[180.743,-9.066],[150.728,41.233],[43.548,39.232],[39.598,-14.003],[94.812,-18.043],[136.064,-24.941]],"c":false}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0.192},"t":46.676,"s":[{"i":[[0,0],[-4.8,-30.236],[22.645,-7.162],[39.412,14.422],[-19.436,8.241],[-8.678,-1.794],[-15.047,1.934]],"o":[[32.969,1.056],[5.235,32.973],[-24.922,7.882],[-30.492,-11.118],[19.436,-8.241],[11.265,2.328],[0,0]],"v":[[107.869,-50.224],[180.933,-9.057],[150.997,41.26],[44.188,39.478],[40.08,-13.721],[95.193,-17.952],[136.171,-24.892]],"c":false}]},{"i":{"x":0.38,"y":1},"o":{"x":0.33,"y":0},"t":54,"s":[{"i":[[0,0],[-4.8,-30.236],[22.645,-7.162],[30.762,1.767],[-17.411,11.949],[-8.535,2.438],[-7.196,4.859]],"o":[[32.969,1.056],[5.235,32.973],[-24.922,7.882],[-32.422,-1.862],[17.411,-11.949],[11.079,-3.165],[0,0]],"v":[[107.555,-50.359],[193.555,-8.441],[168.853,43.108],[86.798,55.885],[72.101,5.058],[120.587,-11.917],[143.252,-21.659]],"c":false}]},{"t":62.3828125,"s":[{"i":[[0,0],[-4.8,-30.236],[22.645,-7.162],[30.124,6.478],[-17.411,11.949],[-8.876,-0.066],[-19.033,0.597]],"o":[[32.969,1.056],[5.235,32.973],[-24.922,7.882],[-31.75,-6.828],[17.411,-11.949],[11.522,0.085],[0,0]],"v":[[107.555,-50.359],[187.305,-8.441],[157.291,41.858],[58.969,46.324],[44.288,-4.629],[98.315,-14.473],[143.72,-23.691]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.96862745285,0.494117647409,0.254901975393,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[-4.855,0.482],[19.901,4.272],[-17.412,11.952],[-8.88,-0.067],[-2.333,-23.454]],"o":[[-22.301,2.691],[-31.752,-6.828],[17.412,-11.952],[0,0],[2.484,24.97]],"v":[[126.828,48.021],[58.973,46.328],[44.286,-4.63],[101.986,-14.712],[89.178,22.458]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":10,"s":[{"i":[[-4.855,0.482],[20.321,1.167],[-17.412,11.952],[-8.539,2.438],[-2.333,-23.454]],"o":[[-20.616,5.648],[-32.425,-1.862],[17.412,-11.952],[0,0],[2.484,24.97]],"v":[[153.078,46.771],[86.804,55.887],[72.098,5.057],[124.042,-13.182],[111.366,24.645]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[-4.855,0.482],[19.257,6.594],[-19.467,8.188],[-8.88,-0.067],[2.453,-23.442]],"o":[[-22.301,2.691],[-30.727,-10.521],[19.467,-8.188],[0,0],[-2.611,24.957]],"v":[[120.265,47.396],[43.552,39.236],[39.596,-14.004],[95.893,-17.681],[82.154,16.906]],"c":true}]},{"i":{"x":0.833,"y":0.808},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-4.855,0.482],[19.257,6.594],[-19.467,8.188],[-8.88,-0.067],[2.453,-23.442]],"o":[[-22.301,2.691],[-30.727,-10.521],[19.467,-8.188],[0,0],[-2.611,24.957]],"v":[[120.265,47.396],[43.552,39.236],[39.596,-14.004],[95.893,-17.681],[82.154,16.906]],"c":true}]},{"i":{"x":0.833,"y":0.808},"o":{"x":0.167,"y":0.192},"t":35.398,"s":[{"i":[[-4.855,0.482],[19.257,6.594],[-19.467,8.188],[-8.88,-0.067],[2.453,-23.442]],"o":[[-22.301,2.691],[-30.727,-10.521],[19.467,-8.188],[0,0],[-2.611,24.957]],"v":[[120.265,47.396],[43.552,39.236],[39.596,-14.004],[95.893,-17.681],[82.154,16.906]],"c":true}]},{"i":{"x":0.833,"y":0.808},"o":{"x":0.167,"y":0.192},"t":39.736,"s":[{"i":[[-4.855,0.482],[19.257,6.594],[-19.467,8.188],[-8.88,-0.067],[2.453,-23.442]],"o":[[-22.301,2.691],[-30.727,-10.521],[19.467,-8.188],[0,0],[-2.611,24.957]],"v":[[120.265,47.396],[43.552,39.236],[39.596,-14.004],[95.893,-17.681],[82.154,16.906]],"c":true}]},{"i":{"x":0.833,"y":0.808},"o":{"x":0.167,"y":0.192},"t":43.205,"s":[{"i":[[-4.855,0.482],[19.257,6.594],[-19.467,8.188],[-8.88,-0.067],[2.453,-23.442]],"o":[[-22.301,2.691],[-30.727,-10.521],[19.467,-8.188],[0,0],[-2.611,24.957]],"v":[[120.265,47.396],[43.552,39.236],[39.596,-14.004],[95.893,-17.681],[82.154,16.906]],"c":true}]},{"i":{"x":0.833,"y":0.808},"o":{"x":0.167,"y":0.192},"t":44.072,"s":[{"i":[[-4.855,0.482],[19.257,6.594],[-19.467,8.188],[-8.88,-0.067],[2.453,-23.442]],"o":[[-22.301,2.691],[-30.727,-10.521],[19.467,-8.188],[0,0],[-2.611,24.957]],"v":[[120.265,47.396],[43.552,39.236],[39.596,-14.004],[95.893,-17.681],[82.154,16.906]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0.192},"t":44.941,"s":[{"i":[[-4.855,0.482],[19.257,6.594],[-19.467,8.188],[-8.88,-0.067],[2.453,-23.442]],"o":[[-22.301,2.691],[-30.727,-10.521],[19.467,-8.188],[0,0],[-2.611,24.957]],"v":[[120.265,47.396],[43.552,39.236],[39.596,-14.004],[95.893,-17.681],[82.154,16.906]],"c":true}]},{"i":{"x":0.833,"y":0.808},"o":{"x":0.33,"y":0},"t":45.809,"s":[{"i":[[-4.855,0.482],[19.257,6.594],[-19.467,8.188],[-8.88,-0.067],[2.453,-23.442]],"o":[[-22.301,2.691],[-30.727,-10.521],[19.467,-8.188],[0,0],[-2.611,24.957]],"v":[[120.265,47.396],[43.552,39.236],[39.596,-14.004],[95.893,-17.681],[82.154,16.906]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0.192},"t":46.676,"s":[{"i":[[-4.855,0.482],[19.273,6.513],[-19.437,8.244],[-8.875,-0.03],[2.382,-23.442]],"o":[[-22.276,2.735],[-30.752,-10.393],[19.437,-8.244],[0,0],[-2.536,24.957]],"v":[[120.751,47.387],[44.193,39.482],[40.077,-13.722],[96.309,-17.615],[82.586,17.021]],"c":true}]},{"i":{"x":0.38,"y":1},"o":{"x":0.33,"y":0},"t":54,"s":[{"i":[[-4.855,0.482],[20.321,1.167],[-17.412,11.952],[-8.539,2.438],[-2.333,-23.454]],"o":[[-20.616,5.648],[-32.425,-1.862],[17.412,-11.952],[0,0],[2.484,24.97]],"v":[[153.078,46.771],[86.804,55.887],[72.098,5.057],[124.042,-13.182],[111.366,24.645]],"c":true}]},{"t":62.3828125,"s":[{"i":[[-4.855,0.482],[19.901,4.272],[-17.412,11.952],[-8.88,-0.067],[-2.333,-23.454]],"o":[[-22.301,2.691],[-31.752,-6.828],[17.412,-11.952],[0,0],[2.484,24.97]],"v":[[126.828,48.021],[58.973,46.328],[44.286,-4.63],[101.986,-14.712],[89.178,22.458]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.694117665291,0.223529413342,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[13.903,-7.366],[0,0],[9.514,12.685],[14.273,2.254],[0,0],[-4.776,-30.082]],"o":[[0,0],[23.22,-7.461],[-8.386,-11.182],[-19.823,-3.128],[32.896,1.155],[4.081,25.698]],"v":[[168.725,37.472],[155.346,40.517],[168.169,-12.176],[128.207,-32.895],[108.059,-50.341],[187.305,-8.442]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":10,"s":[{"i":[[13.903,-7.366],[0,0],[9.514,12.685],[14.273,2.254],[0,0],[-5.335,-29.988]],"o":[[0,0],[25.553,-8.411],[-8.386,-11.182],[-19.823,-3.128],[32.896,1.155],[5.157,28.986]],"v":[[176.85,40.597],[167.534,43.955],[174.419,-12.176],[128.207,-32.895],[108.059,-50.341],[193.555,-8.442]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[13.903,-7.366],[0,0],[9.514,12.686],[-10.511,9.915],[0,0],[-4.776,-30.082]],"o":[[0,0],[23.22,-7.461],[-8.386,-11.182],[8.942,-8.436],[32.896,1.155],[4.081,25.698]],"v":[[162.162,36.847],[151.128,41.611],[161.607,-12.801],[136.645,-24.458],[123.997,-39.091],[180.742,-9.067]],"c":true}]},{"i":{"x":0.833,"y":0.808},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[13.903,-7.366],[0,0],[9.514,12.686],[-10.511,9.915],[0,0],[-4.776,-30.082]],"o":[[0,0],[23.22,-7.461],[-8.386,-11.182],[8.942,-8.436],[32.896,1.155],[4.081,25.698]],"v":[[162.162,36.847],[151.128,41.611],[161.607,-12.801],[136.645,-24.458],[123.997,-39.091],[180.742,-9.067]],"c":true}]},{"i":{"x":0.833,"y":0.808},"o":{"x":0.167,"y":0.192},"t":35.398,"s":[{"i":[[13.903,-7.366],[0,0],[9.514,12.686],[-10.511,9.915],[0,0],[-4.776,-30.082]],"o":[[0,0],[23.22,-7.461],[-8.386,-11.182],[8.942,-8.436],[32.896,1.155],[4.081,25.698]],"v":[[162.162,36.847],[151.128,41.611],[161.607,-12.801],[136.645,-24.458],[123.997,-39.091],[180.742,-9.067]],"c":true}]},{"i":{"x":0.833,"y":0.808},"o":{"x":0.167,"y":0.192},"t":39.736,"s":[{"i":[[13.903,-7.366],[0,0],[9.514,12.685],[6.913,4.529],[0,0],[-4.776,-30.082]],"o":[[0,0],[23.22,-7.461],[-8.386,-11.182],[-11.281,-4.704],[32.896,1.155],[4.081,25.698]],"v":[[162.162,36.847],[151.128,41.611],[161.607,-12.801],[130.713,-30.39],[110.761,-39.813],[180.742,-9.067]],"c":true}]},{"i":{"x":0.833,"y":0.808},"o":{"x":0.167,"y":0.192},"t":43.205,"s":[{"i":[[13.903,-7.366],[0,0],[9.514,12.686],[13.2,2.585],[0,0],[-4.776,-30.082]],"o":[[0,0],[23.22,-7.461],[-8.386,-11.182],[-18.578,-3.358],[32.896,1.155],[4.081,25.698]],"v":[[162.162,36.847],[151.128,41.611],[161.607,-12.801],[128.572,-32.53],[108.453,-44.276],[180.742,-9.067]],"c":true}]},{"i":{"x":0.833,"y":0.808},"o":{"x":0.167,"y":0.192},"t":44.072,"s":[{"i":[[13.903,-7.366],[0,0],[9.514,12.686],[13.834,2.389],[0,0],[-4.776,-30.082]],"o":[[0,0],[23.22,-7.461],[-8.386,-11.182],[-19.313,-3.222],[32.896,1.155],[4.081,25.698]],"v":[[162.162,36.847],[151.128,41.611],[161.607,-12.801],[128.356,-32.746],[108.22,-45.905],[180.742,-9.067]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0.192},"t":44.941,"s":[{"i":[[13.903,-7.366],[0,0],[9.514,12.686],[14.182,2.282],[0,0],[-4.776,-30.082]],"o":[[0,0],[23.22,-7.461],[-8.386,-11.182],[-19.717,-3.148],[32.896,1.155],[4.081,25.698]],"v":[[162.162,36.847],[151.128,41.611],[161.607,-12.801],[128.238,-32.864],[108.249,-47.391],[180.742,-9.067]],"c":true}]},{"i":{"x":0.833,"y":0.808},"o":{"x":0.33,"y":0},"t":45.809,"s":[{"i":[[13.903,-7.366],[0,0],[9.514,12.686],[14.273,2.254],[0,0],[-4.776,-30.082]],"o":[[0,0],[23.22,-7.461],[-8.386,-11.182],[-19.823,-3.128],[32.896,1.155],[4.081,25.698]],"v":[[162.162,36.847],[151.128,41.611],[161.607,-12.801],[128.207,-32.895],[107.903,-48.935],[180.742,-9.067]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0.192},"t":46.676,"s":[{"i":[[13.903,-7.366],[0,0],[9.514,12.686],[14.273,2.254],[0,0],[-4.784,-30.08]],"o":[[0,0],[23.254,-7.475],[-8.386,-11.182],[-19.823,-3.128],[32.896,1.155],[4.097,25.746]],"v":[[162.38,36.903],[151.37,41.646],[161.797,-12.792],[128.207,-32.895],[108.374,-50.206],[180.932,-9.058]],"c":true}]},{"i":{"x":0.38,"y":1},"o":{"x":0.33,"y":0},"t":54,"s":[{"i":[[13.903,-7.366],[0,0],[9.514,12.685],[14.273,2.254],[0,0],[-5.335,-29.988]],"o":[[0,0],[25.553,-8.411],[-8.386,-11.182],[-19.823,-3.128],[32.896,1.155],[5.157,28.986]],"v":[[176.85,40.597],[167.534,43.955],[174.419,-12.176],[128.207,-32.895],[108.059,-50.341],[193.555,-8.442]],"c":true}]},{"t":62.3828125,"s":[{"i":[[13.903,-7.366],[0,0],[9.514,12.685],[14.273,2.254],[0,0],[-4.776,-30.082]],"o":[[0,0],[23.22,-7.461],[-8.386,-11.182],[-19.823,-3.128],[32.896,1.155],[4.081,25.698]],"v":[[168.725,37.472],[155.346,40.517],[168.169,-12.176],[128.207,-32.895],[108.059,-50.341],[187.305,-8.442]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.874509811401,0.474509805441,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-4.8,-30.236],[22.645,-7.162],[30.124,6.478],[-17.411,11.949],[-8.876,-0.066],[-19.033,0.597]],"o":[[32.969,1.056],[5.235,32.973],[-24.922,7.882],[-31.75,-6.828],[17.411,-11.949],[11.522,0.085],[0,0]],"v":[[107.555,-50.359],[187.305,-8.441],[157.291,41.858],[58.969,46.324],[44.288,-4.629],[98.315,-14.473],[143.72,-23.691]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":10,"s":[{"i":[[0,0],[-4.8,-30.236],[22.645,-7.162],[30.762,1.767],[-17.411,11.949],[-8.535,2.438],[-9.071,4.234]],"o":[[32.969,1.056],[5.235,32.973],[-24.922,7.882],[-32.422,-1.862],[17.411,-11.949],[11.079,-3.165],[0,0]],"v":[[107.555,-50.359],[193.555,-8.441],[168.853,43.108],[86.798,55.885],[72.101,5.058],[120.587,-11.917],[143.252,-21.659]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[-4.8,-30.236],[22.645,-7.162],[37.025,14.513],[-19.466,8.186],[-8.68,-1.857],[-7.977,1.422]],"o":[[32.969,1.056],[5.235,32.973],[-24.922,7.882],[-30.236,-11.852],[19.466,-8.186],[11.267,2.411],[10.929,-5.766]],"v":[[123.492,-39.109],[180.743,-9.066],[150.728,41.233],[43.548,39.232],[39.598,-14.003],[94.812,-18.043],[137.158,-24.941]],"c":true}]},{"i":{"x":0.833,"y":0.808},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[-4.8,-30.236],[22.645,-7.162],[37.025,14.513],[-19.466,8.186],[-8.68,-1.857],[-7.977,1.422]],"o":[[32.969,1.056],[5.235,32.973],[-24.922,7.882],[-30.236,-11.852],[19.466,-8.186],[11.267,2.411],[10.929,-5.766]],"v":[[123.492,-39.109],[180.743,-9.066],[150.728,41.233],[43.548,39.232],[39.598,-14.003],[94.812,-18.043],[137.158,-24.941]],"c":true}]},{"i":{"x":0.833,"y":0.808},"o":{"x":0.167,"y":0.192},"t":35.398,"s":[{"i":[[0,0],[-4.8,-30.236],[22.645,-7.162],[37.025,14.513],[-19.466,8.186],[-8.68,-1.857],[-7.977,1.422]],"o":[[32.969,1.056],[5.235,32.973],[-24.922,7.882],[-30.236,-11.852],[19.466,-8.186],[11.267,2.411],[10.929,-5.766]],"v":[[123.492,-39.109],[180.743,-9.066],[150.728,41.233],[43.548,39.232],[39.598,-14.003],[94.812,-18.043],[137.158,-24.941]],"c":true}]},{"i":{"x":0.833,"y":0.808},"o":{"x":0.167,"y":0.192},"t":39.736,"s":[{"i":[[0,0],[-4.8,-30.236],[22.645,-7.162],[37.025,14.513],[-19.466,8.186],[-8.68,-1.857],[-15.75,0.842]],"o":[[32.969,1.056],[5.235,32.973],[-24.922,7.882],[-30.236,-11.852],[19.466,-8.186],[11.267,2.411],[3.245,-1.712]],"v":[[110.256,-39.831],[180.743,-9.066],[150.728,41.233],[43.548,39.232],[39.598,-14.003],[94.812,-18.043],[137.158,-24.941]],"c":true}]},{"i":{"x":0.833,"y":0.808},"o":{"x":0.167,"y":0.192},"t":43.205,"s":[{"i":[[0,0],[-4.8,-30.236],[22.645,-7.162],[37.025,14.513],[-19.466,8.186],[-8.68,-1.857],[-18.555,0.633]],"o":[[32.969,1.056],[5.235,32.973],[-24.922,7.882],[-30.236,-11.852],[19.466,-8.186],[11.267,2.411],[0.473,-0.249]],"v":[[107.948,-44.294],[180.743,-9.066],[150.728,41.233],[43.548,39.232],[39.598,-14.003],[94.812,-18.043],[137.158,-24.941]],"c":true}]},{"i":{"x":0.833,"y":0.808},"o":{"x":0.167,"y":0.192},"t":44.072,"s":[{"i":[[0,0],[-4.8,-30.236],[22.645,-7.162],[37.025,14.513],[-19.466,8.186],[-8.68,-1.857],[-18.837,0.612]],"o":[[32.969,1.056],[5.235,32.973],[-24.922,7.882],[-30.236,-11.852],[19.466,-8.186],[11.267,2.411],[0.194,-0.102]],"v":[[107.716,-45.923],[180.743,-9.066],[150.728,41.233],[43.548,39.232],[39.598,-14.003],[94.812,-18.043],[137.158,-24.941]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0.192},"t":44.941,"s":[{"i":[[0,0],[-4.8,-30.236],[22.645,-7.162],[37.025,14.513],[-19.466,8.186],[-8.68,-1.857],[-18.992,0.6]],"o":[[32.969,1.056],[5.235,32.973],[-24.922,7.882],[-30.236,-11.852],[19.466,-8.186],[11.267,2.411],[0.04,-0.021]],"v":[[107.744,-47.41],[180.743,-9.066],[150.728,41.233],[43.548,39.232],[39.598,-14.003],[94.812,-18.043],[137.158,-24.941]],"c":true}]},{"i":{"x":0.833,"y":0.808},"o":{"x":0.33,"y":0},"t":45.809,"s":[{"i":[[0,0],[-4.8,-30.236],[22.645,-7.162],[37.025,14.513],[-19.466,8.186],[-8.68,-1.857],[-19.033,0.597]],"o":[[32.969,1.056],[5.235,32.973],[-24.922,7.882],[-30.236,-11.852],[19.466,-8.186],[11.267,2.411],[0,0]],"v":[[107.398,-48.953],[180.743,-9.066],[150.728,41.233],[43.548,39.232],[39.598,-14.003],[94.812,-18.043],[137.158,-24.941]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0.192},"t":46.676,"s":[{"i":[[0,0],[-4.8,-30.236],[22.645,-7.162],[36.932,14.325],[-19.436,8.241],[-8.678,-1.794],[-18.885,0.651]],"o":[[32.969,1.056],[5.235,32.973],[-24.922,7.882],[-30.268,-11.704],[19.436,-8.241],[11.265,2.328],[0,0]],"v":[[107.869,-50.224],[180.933,-9.057],[150.997,41.26],[44.188,39.478],[40.08,-13.721],[95.193,-17.952],[137.248,-24.892]],"c":true}]},{"i":{"x":0.38,"y":1},"o":{"x":0.33,"y":0},"t":54,"s":[{"i":[[0,0],[-4.8,-30.236],[22.645,-7.162],[30.762,1.767],[-17.411,11.949],[-8.535,2.438],[-9.071,4.234]],"o":[[32.969,1.056],[5.235,32.973],[-24.922,7.882],[-32.422,-1.862],[17.411,-11.949],[11.079,-3.165],[0,0]],"v":[[107.555,-50.359],[193.555,-8.441],[168.853,43.108],[86.798,55.885],[72.101,5.058],[120.587,-11.917],[143.252,-21.659]],"c":true}]},{"t":62.3828125,"s":[{"i":[[0,0],[-4.8,-30.236],[22.645,-7.162],[30.124,6.478],[-17.411,11.949],[-8.876,-0.066],[-19.033,0.597]],"o":[[32.969,1.056],[5.235,32.973],[-24.922,7.882],[-31.75,-6.828],[17.411,-11.949],[11.522,0.085],[0,0]],"v":[[107.555,-50.359],[187.305,-8.441],[157.291,41.858],[58.969,46.324],[44.288,-4.629],[98.315,-14.473],[143.72,-23.691]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.819607853889,0.250980407,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"parent":5,"sr":1,"ks":{"p":{"a":0,"k":[109.483,63.81,0]},"a":{"a":0,"k":[109.483,63.81,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":2,"s":[{"i":[[52.575,3.073],[2.174,-24.269],[-15.021,-4.438],[-15.021,2.048],[-10.242,13.314],[32.774,10.583]],"o":[[-15.031,-0.878],[-2.177,24.298],[15.021,4.438],[15.021,-2.048],[10.242,-13.314],[-32.774,-10.583]],"v":[[67.845,33.323],[25.512,61.686],[67.845,102.285],[130.662,104.675],[186.31,82.171],[167.533,24.475]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":12,"s":[{"i":[[52.575,3.073],[2.174,-24.269],[-15.021,-4.438],[-15.021,2.048],[-10.242,13.314],[32.774,10.583]],"o":[[-15.031,-0.878],[-2.177,24.298],[15.021,4.438],[15.021,-2.048],[10.242,-13.314],[-32.774,-10.583]],"v":[[88.157,41.135],[45.824,69.498],[88.157,110.097],[144.412,106.862],[195.685,81.234],[176.908,23.537]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":22,"s":[{"i":[[52.575,3.073],[2.174,-24.269],[-15.021,-4.438],[-15.021,2.048],[-10.242,13.314],[32.774,10.583]],"o":[[-15.031,-0.878],[-2.177,24.298],[15.021,4.438],[15.021,-2.048],[10.242,-13.314],[-32.774,-10.583]],"v":[[62.845,28.948],[20.512,57.311],[62.845,97.91],[126.599,104.987],[182.247,82.484],[163.47,24.787]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":46,"s":[{"i":[[52.575,3.073],[2.174,-24.269],[-15.021,-4.438],[-15.021,2.048],[-10.242,13.314],[32.774,10.583]],"o":[[-15.031,-0.878],[-2.177,24.298],[15.021,4.438],[15.021,-2.048],[10.242,-13.314],[-32.774,-10.583]],"v":[[62.845,28.948],[20.512,57.311],[62.845,97.91],[126.599,104.987],[182.247,82.484],[163.47,24.787]],"c":true}]},{"i":{"x":0.38,"y":1},"o":{"x":0.33,"y":0},"t":54.146,"s":[{"i":[[52.575,3.073],[2.174,-24.269],[-15.021,-4.438],[-15.021,2.048],[-10.242,13.314],[32.774,10.583]],"o":[[-15.031,-0.878],[-2.177,24.298],[15.021,4.438],[15.021,-2.048],[10.242,-13.314],[-32.774,-10.583]],"v":[[88.157,41.135],[45.824,69.498],[88.157,110.097],[144.412,106.862],[195.685,81.234],[176.908,23.537]],"c":true}]},{"t":61.875,"s":[{"i":[[52.575,3.073],[2.174,-24.269],[-15.021,-4.438],[-15.021,2.048],[-10.242,13.314],[32.774,10.583]],"o":[[-15.031,-0.878],[-2.177,24.298],[15.021,4.438],[15.021,-2.048],[10.242,-13.314],[-32.774,-10.583]],"v":[[67.845,33.323],[25.512,61.686],[67.845,102.285],[130.662,104.675],[186.31,82.171],[167.533,24.475]],"c":true}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.96862745285,0.494117647409,0.254901975393,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":2,"s":[{"i":[[-0.011,-0.493],[36.528,-5.651],[6.532,-13.936],[-25.831,0.044],[9.923,2.938],[-2.186,24.296],[-15.024,-0.875],[-32.784,-10.584],[-3.072,-2.041]],"o":[[0,0],[-36.517,5.651],[-4.341,9.262],[-15.181,0.258],[-15.024,-4.44],[2.164,-24.274],[52.573,3.072],[4.227,1.368],[0.067,0.471]],"v":[[178.571,31.08],[138.982,59.827],[88.248,77.744],[110.616,105.953],[67.842,102.287],[25.517,61.688],[67.842,33.322],[167.538,24.476],[178.448,29.633]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":12,"s":[{"i":[[-0.011,-0.493],[36.528,-5.651],[6.532,-13.936],[-21.279,2.247],[9.923,2.938],[-2.186,24.296],[-15.024,-0.875],[-32.784,-10.584],[-3.072,-2.041]],"o":[[0,0],[-36.517,5.651],[-4.341,9.262],[-15.498,3.341],[-15.024,-4.44],[2.164,-24.274],[52.573,3.072],[4.227,1.368],[0.067,0.471]],"v":[[187.946,30.142],[152.732,62.015],[108.56,85.556],[132.647,108.297],[88.155,110.099],[45.83,69.501],[88.155,41.135],[176.913,23.538],[187.823,28.696]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":22,"s":[{"i":[[-0.011,-0.493],[36.528,-5.651],[6.532,-13.936],[-25.831,0.044],[9.923,2.938],[-2.186,24.296],[-15.024,-0.875],[-32.784,-10.584],[-3.072,-2.041]],"o":[[0,0],[-36.517,5.651],[-4.341,9.262],[-15.181,0.258],[-15.024,-4.44],[2.164,-24.274],[52.573,3.072],[4.227,1.368],[0.067,0.471]],"v":[[174.508,31.392],[134.919,60.14],[83.248,73.369],[104.053,104.078],[62.842,97.912],[20.517,57.313],[62.842,28.947],[163.476,24.788],[174.385,29.946]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":46,"s":[{"i":[[-0.011,-0.493],[36.528,-5.651],[6.532,-13.936],[-25.831,0.044],[9.923,2.938],[-2.186,24.296],[-15.024,-0.875],[-32.784,-10.584],[-3.072,-2.041]],"o":[[0,0],[-36.517,5.651],[-4.341,9.262],[-15.181,0.258],[-15.024,-4.44],[2.164,-24.274],[52.573,3.072],[4.227,1.368],[0.067,0.471]],"v":[[174.508,31.392],[134.919,60.14],[83.248,73.369],[104.053,104.078],[62.842,97.912],[20.517,57.313],[62.842,28.947],[163.476,24.788],[174.385,29.946]],"c":true}]},{"i":{"x":0.38,"y":1},"o":{"x":0.33,"y":0},"t":54.146,"s":[{"i":[[-0.011,-0.493],[36.528,-5.651],[6.532,-13.936],[-21.279,2.247],[9.923,2.938],[-2.186,24.296],[-15.024,-0.875],[-32.784,-10.584],[-3.072,-2.041]],"o":[[0,0],[-36.517,5.651],[-4.341,9.262],[-15.498,3.341],[-15.024,-4.44],[2.164,-24.274],[52.573,3.072],[4.227,1.368],[0.067,0.471]],"v":[[187.946,30.142],[152.732,62.015],[108.56,85.556],[132.647,108.297],[88.155,110.099],[45.83,69.501],[88.155,41.135],[176.913,23.538],[187.823,28.696]],"c":true}]},{"t":61.875,"s":[{"i":[[-0.011,-0.493],[36.528,-5.651],[6.532,-13.936],[-25.831,0.044],[9.923,2.938],[-2.186,24.296],[-15.024,-0.875],[-32.784,-10.584],[-3.072,-2.041]],"o":[[0,0],[-36.517,5.651],[-4.341,9.262],[-15.181,0.258],[-15.024,-4.44],[2.164,-24.274],[52.573,3.072],[4.227,1.368],[0.067,0.471]],"v":[[178.571,31.08],[138.982,59.827],[88.248,77.744],[110.616,105.953],[67.842,102.287],[25.517,61.688],[67.842,33.322],[167.538,24.476],[178.448,29.633]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.694117665291,0.223529413342,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":2,"s":[{"i":[[10.248,-13.32],[6.357,-3.061],[0,0],[0,0],[-2.433,-0.785]],"o":[[-3.319,4.317],[26.476,-24.62],[0,0],[2.254,0.437],[32.772,10.584]],"v":[[186.307,82.172],[165.238,95.81],[167.527,40.52],[160.509,22.648],[167.538,24.476]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":12,"s":[{"i":[[10.248,-13.32],[6.357,-3.061],[0,0],[0,0],[-2.433,-0.785]],"o":[[-3.319,4.317],[26.476,-24.62],[0,0],[2.254,0.437],[32.772,10.584]],"v":[[195.682,81.235],[175.394,96.748],[176.902,39.583],[169.884,21.711],[176.913,23.538]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":22,"s":[{"i":[[10.248,-13.32],[6.357,-3.061],[0,0],[0,0],[-2.433,-0.785]],"o":[[-3.319,4.317],[26.476,-24.62],[0,0],[2.254,0.437],[32.772,10.584]],"v":[[182.245,82.485],[161.176,96.123],[163.465,40.833],[156.446,22.961],[163.476,24.788]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":46,"s":[{"i":[[10.248,-13.32],[6.357,-3.061],[0,0],[0,0],[-2.433,-0.785]],"o":[[-3.319,4.317],[26.476,-24.62],[0,0],[2.254,0.437],[32.772,10.584]],"v":[[182.245,82.485],[161.176,96.123],[163.465,40.833],[156.446,22.961],[163.476,24.788]],"c":true}]},{"i":{"x":0.38,"y":1},"o":{"x":0.33,"y":0},"t":54.146,"s":[{"i":[[10.248,-13.32],[6.357,-3.061],[0,0],[0,0],[-2.433,-0.785]],"o":[[-3.319,4.317],[26.476,-24.62],[0,0],[2.254,0.437],[32.772,10.584]],"v":[[195.682,81.235],[175.394,96.748],[176.902,39.583],[169.884,21.711],[176.913,23.538]],"c":true}]},{"t":61.875,"s":[{"i":[[10.248,-13.32],[6.357,-3.061],[0,0],[0,0],[-2.433,-0.785]],"o":[[-3.319,4.317],[26.476,-24.62],[0,0],[2.254,0.437],[32.772,10.584]],"v":[[186.307,82.172],[165.238,95.81],[167.527,40.52],[160.509,22.648],[167.538,24.476]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.874509811401,0.474509805441,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":2,"s":[{"i":[[52.575,3.073],[2.174,-24.269],[-15.021,-4.438],[-15.021,2.048],[-10.242,13.314],[32.774,10.583]],"o":[[-15.031,-0.878],[-2.177,24.298],[15.021,4.438],[15.021,-2.048],[10.242,-13.314],[-32.774,-10.583]],"v":[[67.845,33.323],[25.512,61.686],[67.845,102.285],[130.662,104.675],[186.31,82.171],[167.533,24.475]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":12,"s":[{"i":[[52.575,3.073],[2.174,-24.269],[-15.021,-4.438],[-15.021,2.048],[-10.242,13.314],[32.774,10.583]],"o":[[-15.031,-0.878],[-2.177,24.298],[15.021,4.438],[15.021,-2.048],[10.242,-13.314],[-32.774,-10.583]],"v":[[88.157,41.135],[45.824,69.498],[88.157,110.097],[144.412,106.862],[195.685,81.234],[176.908,23.537]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":22,"s":[{"i":[[52.575,3.073],[2.174,-24.269],[-15.021,-4.438],[-15.021,2.048],[-10.242,13.314],[32.774,10.583]],"o":[[-15.031,-0.878],[-2.177,24.298],[15.021,4.438],[15.021,-2.048],[10.242,-13.314],[-32.774,-10.583]],"v":[[62.845,28.948],[20.512,57.311],[62.845,97.91],[126.599,104.987],[182.247,82.484],[163.47,24.787]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":46,"s":[{"i":[[52.575,3.073],[2.174,-24.269],[-15.021,-4.438],[-15.021,2.048],[-10.242,13.314],[32.774,10.583]],"o":[[-15.031,-0.878],[-2.177,24.298],[15.021,4.438],[15.021,-2.048],[10.242,-13.314],[-32.774,-10.583]],"v":[[62.845,28.948],[20.512,57.311],[62.845,97.91],[126.599,104.987],[182.247,82.484],[163.47,24.787]],"c":true}]},{"i":{"x":0.38,"y":1},"o":{"x":0.33,"y":0},"t":54.146,"s":[{"i":[[52.575,3.073],[2.174,-24.269],[-15.021,-4.438],[-15.021,2.048],[-10.242,13.314],[32.774,10.583]],"o":[[-15.031,-0.878],[-2.177,24.298],[15.021,4.438],[15.021,-2.048],[10.242,-13.314],[-32.774,-10.583]],"v":[[88.157,41.135],[45.824,69.498],[88.157,110.097],[144.412,106.862],[195.685,81.234],[176.908,23.537]],"c":true}]},{"t":61.875,"s":[{"i":[[52.575,3.073],[2.174,-24.269],[-15.021,-4.438],[-15.021,2.048],[-10.242,13.314],[32.774,10.583]],"o":[[-15.031,-0.878],[-2.177,24.298],[15.021,4.438],[15.021,-2.048],[10.242,-13.314],[-32.774,-10.583]],"v":[[67.845,33.323],[25.512,61.686],[67.845,102.285],[130.662,104.675],[186.31,82.171],[167.533,24.475]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.819607853889,0.250980407,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"parent":5,"sr":1,"ks":{"p":{"a":0,"k":[100.972,119.826,0]},"a":{"a":0,"k":[100.972,119.826,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":4,"s":[{"i":[[67.938,13.314],[2.641,-16.864],[-13.656,-10.754],[-10.56,-0.707],[-20.479,6.503],[-0.541,8.689],[19.118,1.366]],"o":[[-8.436,-1.653],[-2.219,14.168],[16.175,12.738],[14.722,0.986],[19.172,-6.088],[1.053,-16.899],[-27.992,-1.999]],"v":[[49.068,84.874],[23.805,103.992],[41.827,138.865],[86.252,154.889],[152.511,147.378],[178.429,117.164],[155.584,84.874]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":14,"s":[{"i":[[68.551,9.673],[1.738,-16.981],[-14.21,-10.01],[-10.582,-0.143],[-20.103,7.586],[-0.077,8.705],[19.164,0.344]],"o":[[-8.512,-1.201],[-1.46,14.266],[16.832,11.857],[14.754,0.2],[18.82,-7.102],[0.15,-16.931],[-28.059,-0.504]],"v":[[63.148,96.615],[38.94,117.053],[58.796,150.915],[104.012,164.548],[161.863,148.251],[186.132,116.699],[161.598,85.672]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":24,"s":[{"i":[[67.167,16.775],[3.501,-16.707],[-13.087,-11.439],[-10.51,-1.247],[-20.785,5.446],[-0.985,8.65],[19.023,2.343]],"o":[[-8.34,-2.083],[-2.941,14.036],[15.502,13.549],[14.652,1.739],[19.459,-5.099],[1.916,-16.823],[-27.853,-3.43]],"v":[[45.405,74.329],[19.196,92.129],[35.409,127.878],[78.955,146.156],[145.945,145.824],[173.375,116.977],[152.213,83.559]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":46,"s":[{"i":[[67.167,16.775],[3.501,-16.707],[-13.087,-11.439],[-10.51,-1.247],[-20.785,5.446],[-0.985,8.65],[19.023,2.343]],"o":[[-8.34,-2.083],[-2.941,14.036],[15.502,13.549],[14.652,1.739],[19.459,-5.099],[1.916,-16.823],[-27.853,-3.43]],"v":[[45.405,74.329],[19.196,92.129],[35.409,127.878],[78.955,146.156],[145.945,145.824],[173.375,116.977],[152.213,83.559]],"c":true}]},{"i":{"x":0.38,"y":1},"o":{"x":0.33,"y":0},"t":54,"s":[{"i":[[68.551,9.673],[1.738,-16.981],[-14.21,-10.01],[-10.582,-0.143],[-20.103,7.586],[-0.077,8.705],[19.164,0.344]],"o":[[-8.512,-1.201],[-1.46,14.266],[16.832,11.857],[14.754,0.2],[18.82,-7.102],[0.15,-16.931],[-28.059,-0.504]],"v":[[63.148,96.615],[38.94,117.053],[58.796,150.915],[104.012,164.548],[161.863,148.251],[186.132,116.699],[161.598,85.672]],"c":true}]},{"t":61.134765625,"s":[{"i":[[67.938,13.314],[2.641,-16.864],[-13.656,-10.754],[-10.56,-0.707],[-20.479,6.503],[-0.541,8.689],[19.118,1.366]],"o":[[-8.436,-1.653],[-2.219,14.168],[16.175,12.738],[14.722,0.986],[19.172,-6.088],[1.053,-16.899],[-27.992,-1.999]],"v":[[49.068,84.874],[23.805,103.992],[41.827,138.865],[86.252,154.889],[152.511,147.378],[178.429,117.164],[155.584,84.874]],"c":true}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.96862745285,0.494117647409,0.254901975393,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":4,"s":[{"i":[[-3.565,-3.397],[14.529,-5.28],[11.912,-12.427],[-14.191,-1.329],[1.312,0.09],[16.168,12.748],[-2.22,14.172],[-8.443,-1.659],[-27.996,-1.996]],"o":[[-1.267,5.853],[-29.788,10.826],[-10.361,10.809],[-1.547,-0.045],[-10.562,-0.706],[-13.656,-10.752],[2.646,-16.863],[67.933,13.309],[6.974,0.505]],"v":[[171.182,90.951],[150.9,112.759],[79.792,124.191],[90.535,155.084],[86.252,154.893],[41.83,138.86],[23.802,103.991],[49.073,84.874],[155.586,84.874]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":14,"s":[{"i":[[-3.742,-3.202],[14.226,-6.047],[11.233,-13.044],[-14.241,-0.571],[1.315,0.018],[16.833,11.856],[-1.465,14.27],[-8.52,-1.202],[-28.062,-0.53]],"o":[[-0.953,5.912],[-29.169,12.399],[-9.77,11.346],[-1.547,0.038],[-10.584,-0.142],[-14.21,-10.009],[1.743,-16.98],[68.546,9.667],[6.991,0.132]],"v":[[177.498,90.909],[158.407,113.767],[95.924,134.238],[108.299,164.514],[104.012,164.552],[58.799,150.91],[38.937,117.052],[63.153,96.616],[161.6,85.673]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":24,"s":[{"i":[[-3.387,-3.575],[14.78,-4.529],[12.533,-11.801],[-14.104,-2.054],[1.306,0.155],[15.503,13.548],[-2.946,14.039],[-8.348,-2.084],[-27.854,-3.456]],"o":[[-1.565,5.78],[-30.304,9.287],[-10.901,10.264],[-1.543,-0.124],[-10.512,-1.246],[-13.088,-11.437],[3.506,-16.705],[67.163,16.769],[6.939,0.861]],"v":[[167.48,90.427],[146.108,111.167],[74.075,115.167],[83.223,146.569],[78.955,146.16],[35.413,127.874],[19.193,92.128],[45.41,74.33],[152.215,83.56]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":46,"s":[{"i":[[-3.387,-3.575],[14.78,-4.529],[12.533,-11.801],[-14.104,-2.054],[1.306,0.155],[15.503,13.548],[-2.946,14.039],[-8.348,-2.084],[-27.854,-3.456]],"o":[[-1.565,5.78],[-30.304,9.287],[-10.901,10.264],[-1.543,-0.124],[-10.512,-1.246],[-13.088,-11.437],[3.506,-16.705],[67.163,16.769],[6.939,0.861]],"v":[[167.48,90.427],[146.108,111.167],[74.075,115.167],[83.223,146.569],[78.955,146.16],[35.413,127.874],[19.193,92.128],[45.41,74.33],[152.215,83.56]],"c":true}]},{"i":{"x":0.38,"y":1},"o":{"x":0.33,"y":0},"t":54,"s":[{"i":[[-3.742,-3.202],[14.226,-6.047],[11.233,-13.044],[-14.241,-0.571],[1.315,0.018],[16.833,11.856],[-1.465,14.27],[-8.52,-1.202],[-28.062,-0.53]],"o":[[-0.953,5.912],[-29.169,12.399],[-9.77,11.346],[-1.547,0.038],[-10.584,-0.142],[-14.21,-10.009],[1.743,-16.98],[68.546,9.667],[6.991,0.132]],"v":[[177.498,90.909],[158.407,113.767],[95.924,134.238],[108.299,164.514],[104.012,164.552],[58.799,150.91],[38.937,117.052],[63.153,96.616],[161.6,85.673]],"c":true}]},{"t":61.134765625,"s":[{"i":[[-3.565,-3.397],[14.529,-5.28],[11.912,-12.427],[-14.191,-1.329],[1.312,0.09],[16.168,12.748],[-2.22,14.172],[-8.443,-1.659],[-27.996,-1.996]],"o":[[-1.267,5.853],[-29.788,10.826],[-10.361,10.809],[-1.547,-0.045],[-10.562,-0.706],[-13.656,-10.752],[2.646,-16.863],[67.933,13.309],[6.974,0.505]],"v":[[171.182,90.951],[150.9,112.759],[79.792,124.191],[90.535,155.084],[86.252,154.893],[41.83,138.86],[23.802,103.991],[49.073,84.874],[155.586,84.874]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.694117665291,0.223529413342,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":4,"s":[{"i":[[1.031,-16.594],[14.665,-7.052],[0,0],[0,0]],"o":[[-0.482,7.747],[15.573,-26.942],[0,0],[18.264,1.783]],"v":[[178.425,117.165],[158.3,145.083],[158.3,93.216],[156.607,84.964]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":14,"s":[{"i":[[0.146,-16.625],[14.268,-7.824],[0,0],[0,0]],"o":[[-0.068,7.762],[14.114,-27.734],[0,0],[18.333,0.806]],"v":[[186.128,116.699],[167.52,145.651],[164.754,93.858],[162.624,85.708]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":24,"s":[{"i":[[1.881,-16.519],[15.007,-6.292],[0,0],[0,0]],"o":[[-0.878,7.713],[16.932,-26.11],[0,0],[18.149,2.715]],"v":[[173.371,116.977],[151.843,143.828],[154.498,92.029],[153.23,83.702]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":46,"s":[{"i":[[1.881,-16.519],[15.007,-6.292],[0,0],[0,0]],"o":[[-0.878,7.713],[16.932,-26.11],[0,0],[18.149,2.715]],"v":[[173.371,116.977],[151.843,143.828],[154.498,92.029],[153.23,83.702]],"c":true}]},{"i":{"x":0.38,"y":1},"o":{"x":0.33,"y":0},"t":54,"s":[{"i":[[0.146,-16.625],[14.268,-7.824],[0,0],[0,0]],"o":[[-0.068,7.762],[14.114,-27.734],[0,0],[18.333,0.806]],"v":[[186.128,116.699],[167.52,145.651],[164.754,93.858],[162.624,85.708]],"c":true}]},{"t":61.134765625,"s":[{"i":[[1.031,-16.594],[14.665,-7.052],[0,0],[0,0]],"o":[[-0.482,7.747],[15.573,-26.942],[0,0],[18.264,1.783]],"v":[[178.425,117.165],[158.3,145.083],[158.3,93.216],[156.607,84.964]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.874509811401,0.474509805441,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":4,"s":[{"i":[[67.938,13.314],[2.641,-16.864],[-13.656,-10.754],[-10.56,-0.707],[-20.479,6.503],[-0.541,8.689],[19.118,1.366]],"o":[[-8.436,-1.653],[-2.219,14.168],[16.175,12.738],[14.722,0.986],[19.172,-6.088],[1.053,-16.899],[-27.992,-1.999]],"v":[[49.068,84.874],[23.805,103.992],[41.827,138.865],[86.252,154.889],[152.511,147.378],[178.429,117.164],[155.584,84.874]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":14,"s":[{"i":[[68.551,9.673],[1.738,-16.981],[-14.21,-10.01],[-10.582,-0.143],[-20.103,7.586],[-0.077,8.705],[19.164,0.344]],"o":[[-8.512,-1.201],[-1.46,14.266],[16.832,11.857],[14.754,0.2],[18.82,-7.102],[0.15,-16.931],[-28.059,-0.504]],"v":[[63.148,96.615],[38.94,117.053],[58.796,150.915],[104.012,164.548],[161.863,148.251],[186.132,116.699],[161.598,85.672]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":24,"s":[{"i":[[67.167,16.775],[3.501,-16.707],[-13.087,-11.439],[-10.51,-1.247],[-20.785,5.446],[-0.985,8.65],[19.023,2.343]],"o":[[-8.34,-2.083],[-2.941,14.036],[15.502,13.549],[14.652,1.739],[19.459,-5.099],[1.916,-16.823],[-27.853,-3.43]],"v":[[45.405,74.329],[19.196,92.129],[35.409,127.878],[78.955,146.156],[145.945,145.824],[173.375,116.977],[152.213,83.559]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":46,"s":[{"i":[[67.167,16.775],[3.501,-16.707],[-13.087,-11.439],[-10.51,-1.247],[-20.785,5.446],[-0.985,8.65],[19.023,2.343]],"o":[[-8.34,-2.083],[-2.941,14.036],[15.502,13.549],[14.652,1.739],[19.459,-5.099],[1.916,-16.823],[-27.853,-3.43]],"v":[[45.405,74.329],[19.196,92.129],[35.409,127.878],[78.955,146.156],[145.945,145.824],[173.375,116.977],[152.213,83.559]],"c":true}]},{"i":{"x":0.38,"y":1},"o":{"x":0.33,"y":0},"t":54,"s":[{"i":[[68.551,9.673],[1.738,-16.981],[-14.21,-10.01],[-10.582,-0.143],[-20.103,7.586],[-0.077,8.705],[19.164,0.344]],"o":[[-8.512,-1.201],[-1.46,14.266],[16.832,11.857],[14.754,0.2],[18.82,-7.102],[0.15,-16.931],[-28.059,-0.504]],"v":[[63.148,96.615],[38.94,117.053],[58.796,150.915],[104.012,164.548],[161.863,148.251],[186.132,116.699],[161.598,85.672]],"c":true}]},{"t":61.134765625,"s":[{"i":[[67.938,13.314],[2.641,-16.864],[-13.656,-10.754],[-10.56,-0.707],[-20.479,6.503],[-0.541,8.689],[19.118,1.366]],"o":[[-8.436,-1.653],[-2.219,14.168],[16.175,12.738],[14.722,0.986],[19.172,-6.088],[1.053,-16.899],[-27.992,-1.999]],"v":[[49.068,84.874],[23.805,103.992],[41.827,138.865],[86.252,154.889],[152.511,147.378],[178.429,117.164],[155.584,84.874]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.819607853889,0.250980407,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"parent":5,"sr":1,"ks":{"p":{"a":0,"k":[90.532,164.194,0]},"a":{"a":0,"k":[90.532,164.194,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6,"s":[{"i":[[74.083,22.874],[1.028,-12.802],[-4.704,-4.438],[-13.314,-2.731],[-23.215,9.901],[7.169,10.925]],"o":[[-8.137,-2.512],[-0.728,9.07],[4.704,4.438],[13.314,2.731],[23.215,-9.901],[-7.169,-10.925]],"v":[[42.923,134.319],[25.337,151.446],[35.581,174.615],[66.999,191.998],[132.71,187.663],[152.511,139.839]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":16,"s":[{"i":[[74.083,22.874],[1.028,-12.802],[-4.704,-4.438],[-13.314,-2.731],[-23.215,9.901],[7.169,10.925]],"o":[[-8.137,-2.512],[-0.728,9.07],[4.704,4.438],[13.314,2.731],[23.215,-9.901],[-7.169,-10.925]],"v":[[58.86,140.257],[41.275,157.384],[51.518,180.552],[82.936,197.935],[140.523,188.288],[160.324,140.464]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":26,"s":[{"i":[[71.426,30.165],[2.302,-12.636],[-4.237,-4.886],[-12.975,-4.048],[-24.088,7.53],[6.041,11.587]],"o":[[-7.845,-3.313],[-1.631,8.952],[4.237,4.886],[12.975,4.048],[24.088,-7.53],[-6.041,-11.587]],"v":[[39.599,121.849],[20.389,137.132],[28.265,161.209],[57.789,181.645],[123.604,183.901],[148.087,138.296]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":44,"s":[{"i":[[71.426,30.165],[2.302,-12.636],[-4.237,-4.886],[-12.975,-4.048],[-24.088,7.53],[6.041,11.587]],"o":[[-7.845,-3.313],[-1.631,8.952],[4.237,4.886],[12.975,4.048],[24.088,-7.53],[-6.041,-11.587]],"v":[[39.599,121.849],[20.389,137.132],[28.265,161.209],[57.789,181.645],[123.604,183.901],[148.087,138.296]],"c":true}]},{"i":{"x":0.38,"y":1},"o":{"x":0.33,"y":0},"t":54,"s":[{"i":[[74.083,22.874],[1.028,-12.802],[-4.704,-4.438],[-13.314,-2.731],[-23.215,9.901],[7.169,10.925]],"o":[[-8.137,-2.512],[-0.728,9.07],[4.704,4.438],[13.314,2.731],[23.215,-9.901],[-7.169,-10.925]],"v":[[58.86,140.257],[41.275,157.384],[51.518,180.552],[82.936,197.935],[140.523,188.288],[160.324,140.464]],"c":true}]},{"t":61,"s":[{"i":[[74.083,22.874],[1.028,-12.802],[-4.704,-4.438],[-13.314,-2.731],[-23.215,9.901],[7.169,10.925]],"o":[[-8.137,-2.512],[-0.728,9.07],[4.704,4.438],[13.314,2.731],[23.215,-9.901],[-7.169,-10.925]],"v":[[42.923,134.319],[25.337,151.446],[35.581,174.615],[66.999,191.998],[132.71,187.663],[152.511,139.839]],"c":true}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.96862745285,0.494117647409,0.254901975393,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6,"s":[{"i":[[-0.011,-0.045],[22.392,-4.874],[4.521,-13.076],[-9.923,-2.971],[5.785,1.188],[4.698,4.44],[-0.729,9.07],[-8.129,-2.512],[-7.176,-10.92],[-0.549,-2.489]],"o":[[0,0],[-25.599,5.572],[-3.456,9.996],[-9.99,-0.168],[-13.32,-2.725],[-4.709,-4.44],[1.031,-12.804],[74.088,22.872],[1.166,1.783],[0.011,0.045]],"v":[[155.138,146.45],[128.992,165.073],[75.556,176.151],[91.555,194.561],[67.001,191.993],[35.585,174.615],[25.338,151.451],[42.918,134.319],[152.514,139.835],[155.104,146.305]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":16,"s":[{"i":[[-0.011,-0.045],[22.392,-4.874],[4.521,-13.076],[-9.923,-2.971],[5.785,1.188],[4.698,4.44],[-0.729,9.07],[-8.129,-2.512],[-7.176,-10.92],[-0.549,-2.489]],"o":[[0,0],[-25.599,5.572],[-3.456,9.996],[-9.719,1.608],[-13.32,-2.725],[-4.709,-4.44],[1.031,-12.804],[74.088,22.872],[1.166,1.783],[0.011,0.045]],"v":[[162.951,147.075],[136.804,165.698],[91.493,182.088],[106.243,197.686],[82.939,197.931],[51.523,180.552],[41.275,157.388],[58.855,140.257],[160.327,140.46],[162.917,146.93]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":26,"s":[{"i":[[-0.007,-0.046],[22.767,-2.611],[5.806,-12.558],[-9.576,-3.948],[5.639,1.756],[4.236,4.882],[-1.634,8.952],[-7.838,-3.31],[-6.024,-11.596],[-0.298,-2.532]],"o":[[0,0],[-26.028,2.985],[-4.438,9.601],[-9.923,-1.166],[-12.981,-4.042],[-4.242,-4.888],[2.306,-12.637],[71.431,30.164],[0.982,1.89],[0.007,0.046]],"v":[[150.039,145.137],[122.163,161.053],[67.887,166.733],[81.966,186.65],[57.791,181.641],[28.27,161.209],[20.389,137.137],[39.594,121.848],[148.09,138.293],[150.02,144.988]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":44,"s":[{"i":[[-0.007,-0.046],[22.767,-2.611],[5.806,-12.558],[-9.576,-3.948],[5.639,1.756],[4.236,4.882],[-1.634,8.952],[-7.838,-3.31],[-6.024,-11.596],[-0.298,-2.532]],"o":[[0,0],[-26.028,2.985],[-4.438,9.601],[-9.923,-1.166],[-12.981,-4.042],[-4.242,-4.888],[2.306,-12.637],[71.431,30.164],[0.982,1.89],[0.007,0.046]],"v":[[150.039,145.137],[122.163,161.053],[67.887,166.733],[81.966,186.65],[57.791,181.641],[28.27,161.209],[20.389,137.137],[39.594,121.848],[148.09,138.293],[150.02,144.988]],"c":true}]},{"i":{"x":0.38,"y":1},"o":{"x":0.33,"y":0},"t":54,"s":[{"i":[[-0.011,-0.045],[22.392,-4.874],[4.521,-13.076],[-9.923,-2.971],[5.785,1.188],[4.698,4.44],[-0.729,9.07],[-8.129,-2.512],[-7.176,-10.92],[-0.549,-2.489]],"o":[[0,0],[-25.599,5.572],[-3.456,9.996],[-9.719,1.608],[-13.32,-2.725],[-4.709,-4.44],[1.031,-12.804],[74.088,22.872],[1.166,1.783],[0.011,0.045]],"v":[[162.951,147.075],[136.804,165.698],[91.493,182.088],[106.243,197.686],[82.939,197.931],[51.523,180.552],[41.275,157.388],[58.855,140.257],[160.327,140.46],[162.917,146.93]],"c":true}]},{"t":61,"s":[{"i":[[-0.011,-0.045],[22.392,-4.874],[4.521,-13.076],[-9.923,-2.971],[5.785,1.188],[4.698,4.44],[-0.729,9.07],[-8.129,-2.512],[-7.176,-10.92],[-0.549,-2.489]],"o":[[0,0],[-25.599,5.572],[-3.456,9.996],[-9.99,-0.168],[-13.32,-2.725],[-4.709,-4.44],[1.031,-12.804],[74.088,22.872],[1.166,1.783],[0.011,0.045]],"v":[[155.138,146.45],[128.992,165.073],[75.556,176.151],[91.555,194.561],[67.001,191.993],[35.585,174.615],[25.338,151.451],[42.918,134.319],[152.514,139.835],[155.104,146.305]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.694117665291,0.223529413342,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6,"s":[{"i":[[23.209,-9.9],[5.101,-1.065],[0,0],[-0.28,1.973],[-1.57,-2.388]],"o":[[-4.776,2.041],[28.377,-16.952],[0.123,-2.31],[3.857,-0.426],[7.164,10.932]],"v":[[132.714,187.665],[117.802,192.262],[143.892,143.771],[144.498,137.357],[152.514,139.835]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":16,"s":[{"i":[[23.209,-9.9],[5.101,-1.065],[0,0],[-0.28,1.973],[-1.57,-2.388]],"o":[[-4.776,2.041],[28.377,-16.952],[0.123,-2.31],[3.857,-0.426],[7.164,10.932]],"v":[[140.527,188.29],[125.615,192.887],[151.705,144.396],[152.31,137.982],[160.327,140.46]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":26,"s":[{"i":[[24.078,-7.544],[5.182,-0.55],[0,0],[-0.476,1.935],[-1.32,-2.535]],"o":[[-4.956,1.553],[29.93,-14.031],[0.354,-2.286],[3.88,-0.038],[6.036,11.593]],"v":[[123.608,183.904],[108.311,186.987],[139.118,141.346],[140.361,135.026],[148.09,138.293]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":44,"s":[{"i":[[24.078,-7.544],[5.182,-0.55],[0,0],[-0.476,1.935],[-1.32,-2.535]],"o":[[-4.956,1.553],[29.93,-14.031],[0.354,-2.286],[3.88,-0.038],[6.036,11.593]],"v":[[123.608,183.904],[108.311,186.987],[139.118,141.346],[140.361,135.026],[148.09,138.293]],"c":true}]},{"i":{"x":0.38,"y":1},"o":{"x":0.33,"y":0},"t":54,"s":[{"i":[[23.209,-9.9],[5.101,-1.065],[0,0],[-0.28,1.973],[-1.57,-2.388]],"o":[[-4.776,2.041],[28.377,-16.952],[0.123,-2.31],[3.857,-0.426],[7.164,10.932]],"v":[[140.527,188.29],[125.615,192.887],[151.705,144.396],[152.31,137.982],[160.327,140.46]],"c":true}]},{"t":61,"s":[{"i":[[23.209,-9.9],[5.101,-1.065],[0,0],[-0.28,1.973],[-1.57,-2.388]],"o":[[-4.776,2.041],[28.377,-16.952],[0.123,-2.31],[3.857,-0.426],[7.164,10.932]],"v":[[132.714,187.665],[117.802,192.262],[143.892,143.771],[144.498,137.357],[152.514,139.835]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.874509811401,0.474509805441,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6,"s":[{"i":[[74.083,22.874],[1.028,-12.802],[-4.704,-4.438],[-13.314,-2.731],[-23.215,9.901],[7.169,10.925]],"o":[[-8.137,-2.512],[-0.728,9.07],[4.704,4.438],[13.314,2.731],[23.215,-9.901],[-7.169,-10.925]],"v":[[42.923,134.319],[25.337,151.446],[35.581,174.615],[66.999,191.998],[132.71,187.663],[152.511,139.839]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":16,"s":[{"i":[[74.083,22.874],[1.028,-12.802],[-4.704,-4.438],[-13.314,-2.731],[-23.215,9.901],[7.169,10.925]],"o":[[-8.137,-2.512],[-0.728,9.07],[4.704,4.438],[13.314,2.731],[23.215,-9.901],[-7.169,-10.925]],"v":[[58.86,140.257],[41.275,157.384],[51.518,180.552],[82.936,197.935],[140.523,188.288],[160.324,140.464]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":26,"s":[{"i":[[71.426,30.165],[2.302,-12.636],[-4.237,-4.886],[-12.975,-4.048],[-24.088,7.53],[6.041,11.587]],"o":[[-7.845,-3.313],[-1.631,8.952],[4.237,4.886],[12.975,4.048],[24.088,-7.53],[-6.041,-11.587]],"v":[[39.599,121.849],[20.389,137.132],[28.265,161.209],[57.789,181.645],[123.604,183.901],[148.087,138.296]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":44,"s":[{"i":[[71.426,30.165],[2.302,-12.636],[-4.237,-4.886],[-12.975,-4.048],[-24.088,7.53],[6.041,11.587]],"o":[[-7.845,-3.313],[-1.631,8.952],[4.237,4.886],[12.975,4.048],[24.088,-7.53],[-6.041,-11.587]],"v":[[39.599,121.849],[20.389,137.132],[28.265,161.209],[57.789,181.645],[123.604,183.901],[148.087,138.296]],"c":true}]},{"i":{"x":0.38,"y":1},"o":{"x":0.33,"y":0},"t":54,"s":[{"i":[[74.083,22.874],[1.028,-12.802],[-4.704,-4.438],[-13.314,-2.731],[-23.215,9.901],[7.169,10.925]],"o":[[-8.137,-2.512],[-0.728,9.07],[4.704,4.438],[13.314,2.731],[23.215,-9.901],[-7.169,-10.925]],"v":[[58.86,140.257],[41.275,157.384],[51.518,180.552],[82.936,197.935],[140.523,188.288],[160.324,140.464]],"c":true}]},{"t":61,"s":[{"i":[[74.083,22.874],[1.028,-12.802],[-4.704,-4.438],[-13.314,-2.731],[-23.215,9.901],[7.169,10.925]],"o":[[-8.137,-2.512],[-0.728,9.07],[4.704,4.438],[13.314,2.731],[23.215,-9.901],[-7.169,-10.925]],"v":[[42.923,134.319],[25.337,151.446],[35.581,174.615],[66.999,191.998],[132.71,187.663],[152.511,139.839]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.819607853889,0.250980407,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"parent":9,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":12,"s":[-20.177]},{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":27,"s":[14.417]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.67],"y":[0]},"t":47.266,"s":[-21.806]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":58,"s":[3]},{"t":86,"s":[0]}]},"p":{"a":0,"k":[-72.859,72.455,0]},"a":{"a":0,"k":[-72.859,72.455,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-2.582,-2.853]],"o":[[0,0],[0,0]],"v":[[23.016,-197.92],[27.525,-193.816]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[-1.335,-3.243]],"o":[[0,0],[0,0]],"v":[[66.204,-170.767],[68.852,-165.849]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[0,0],[-0.608,-3.471]],"o":[[0,0],[0,0]],"v":[[91.403,-154.924],[92.965,-149.531]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[0.714,-3.344]],"o":[[0,0],[0,0]],"v":[[114.19,-117.544],[113.613,-112.153]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,0],[1.61,-3.259]],"o":[[0,0],[0,0]],"v":[[129.635,-92.207],[127.609,-86.818]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[1.74,-3.247]],"o":[[0,0],[0,0]],"v":[[131.869,-88.543],[129.633,-83.153]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[0,0],[1.862,-3.235]],"o":[[0,0],[0,0]],"v":[[133.977,-85.086],[131.542,-79.697]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[1.973,-3.224]],"o":[[0,0],[0,0]],"v":[[135.898,-81.935],[133.283,-76.545]],"c":false}]},{"t":29,"s":[{"i":[[0,0],[2.067,-3.215]],"o":[[0,0],[0,0]],"v":[[137.514,-79.284],[134.748,-73.894]],"c":false}],"h":1},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":30,"s":[{"i":[[0,0],[2.12,-3.21]],"o":[[0,0],[0,0]],"v":[[138.435,-77.773],[135.582,-72.384]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":35.398,"s":[{"i":[[0,0],[2.12,-3.21]],"o":[[0,0],[0,0]],"v":[[138.435,-77.773],[135.582,-72.384]],"c":false}]},{"i":{"x":0.833,"y":0.808},"o":{"x":0.167,"y":0.192},"t":36.266,"s":[{"i":[[0,0],[2.067,-3.215]],"o":[[0,0],[0,0]],"v":[[137.514,-79.284],[134.748,-73.894]],"c":false}]},{"i":{"x":0.833,"y":0.808},"o":{"x":0.167,"y":0.192},"t":37.133,"s":[{"i":[[0,0],[1.973,-3.224]],"o":[[0,0],[0,0]],"v":[[135.898,-81.935],[133.283,-76.545]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.192},"t":38,"s":[{"i":[[0,0],[1.862,-3.235]],"o":[[0,0],[0,0]],"v":[[133.977,-85.086],[131.542,-79.697]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38.869,"s":[{"i":[[0,0],[1.74,-3.247]],"o":[[0,0],[0,0]],"v":[[131.869,-88.543],[129.633,-83.153]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":39.736,"s":[{"i":[[0,0],[1.61,-3.259]],"o":[[0,0],[0,0]],"v":[[129.635,-92.207],[127.609,-86.818]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":46.676,"s":[{"i":[[0,0],[-2.582,-2.853]],"o":[[0,0],[0,0]],"v":[[23.016,-197.92],[27.525,-193.816]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":51.881,"s":[{"i":[[0,0],[-3.212,-2.118]],"o":[[0,0],[0,0]],"v":[[-19.625,-195.276],[-14.233,-192.427]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":55.775,"s":[{"i":[[0,0],[-2.582,-2.853]],"o":[[0,0],[0,0]],"v":[[23.016,-197.92],[27.525,-193.816]],"c":false}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":60.393,"s":[{"i":[[0,0],[-1.897,-3.347]],"o":[[0,0],[0,0]],"v":[[47.981,-188.203],[51.486,-183.214]],"c":false}]},{"t":77,"s":[{"i":[[0,0],[-2.582,-2.853]],"o":[[0,0],[0,0]],"v":[[23.016,-197.92],[27.525,-193.816]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-0.975,-7.313]],"o":[[2.2,4.707],[0,0]],"v":[[34.895,-182.535],[39.982,-164.594]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[1.737,-6.524]],"o":[[0.32,4.698],[0,0]],"v":[[71.535,-153.925],[69.737,-137.064]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[0,0],[3.319,-6.064]],"o":[[-0.777,4.693],[0,0]],"v":[[92.913,-137.231],[87.099,-121.001]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[5.025,-4.465]],"o":[[-2.344,4.019],[0,0]],"v":[[109.181,-100.994],[98.378,-88.077]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,0],[6.181,-3.381]],"o":[[-3.407,3.563],[0,0]],"v":[[120.208,-76.432],[106.023,-65.761]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[6.349,-3.224]],"o":[[-3.56,3.497],[0,0]],"v":[[121.802,-72.879],[107.129,-62.534]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[0,0],[6.506,-3.077]],"o":[[-3.705,3.434],[0,0]],"v":[[123.307,-69.528],[108.172,-59.489]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[6.65,-2.942]],"o":[[-3.837,3.377],[0,0]],"v":[[124.678,-66.473],[109.123,-56.713]],"c":false}]},{"t":29,"s":[{"i":[[0,0],[6.771,-2.828]],"o":[[-3.948,3.33],[0,0]],"v":[[125.832,-63.903],[109.923,-54.378]],"c":false}],"h":1},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":30,"s":[{"i":[[0,0],[6.84,-2.764]],"o":[[-4.012,3.302],[0,0]],"v":[[126.489,-62.439],[110.379,-53.048]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":35.398,"s":[{"i":[[0,0],[6.84,-2.764]],"o":[[-4.012,3.302],[0,0]],"v":[[126.489,-62.439],[110.379,-53.048]],"c":false}]},{"i":{"x":0.833,"y":0.808},"o":{"x":0.167,"y":0.192},"t":36.266,"s":[{"i":[[0,0],[6.771,-2.828]],"o":[[-3.948,3.33],[0,0]],"v":[[125.832,-63.903],[109.923,-54.378]],"c":false}]},{"i":{"x":0.833,"y":0.808},"o":{"x":0.167,"y":0.192},"t":37.133,"s":[{"i":[[0,0],[6.65,-2.942]],"o":[[-3.837,3.377],[0,0]],"v":[[124.678,-66.473],[109.123,-56.713]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.192},"t":38,"s":[{"i":[[0,0],[6.506,-3.077]],"o":[[-3.705,3.434],[0,0]],"v":[[123.307,-69.528],[108.172,-59.489]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38.869,"s":[{"i":[[0,0],[6.349,-3.224]],"o":[[-3.56,3.497],[0,0]],"v":[[121.802,-72.879],[107.129,-62.534]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":39.736,"s":[{"i":[[0,0],[6.181,-3.381]],"o":[[-3.407,3.563],[0,0]],"v":[[120.208,-76.432],[106.023,-65.761]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":46.676,"s":[{"i":[[0,0],[-0.975,-7.313]],"o":[[2.2,4.707],[0,0]],"v":[[34.895,-182.535],[39.982,-164.594]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":51.881,"s":[{"i":[[0,0],[-2.769,-6.838]],"o":[[3.305,4.009],[0,0]],"v":[[-4.282,-183.342],[5.122,-167.238]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":55.775,"s":[{"i":[[0,0],[-0.975,-7.313]],"o":[[2.2,4.707],[0,0]],"v":[[34.895,-182.535],[39.982,-164.594]],"c":false}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":60.393,"s":[{"i":[[0,0],[0.645,-7.349]],"o":[[1.12,5.074],[0,0]],"v":[[56.215,-170.596],[57.262,-151.977]],"c":false}]},{"t":77,"s":[{"i":[[0,0],[-0.975,-7.313]],"o":[[2.2,4.707],[0,0]],"v":[[34.895,-182.535],[39.982,-164.594]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[-23.929,48.852],[2.114,1.922],[24.913,-24.689],[0.384,-3.939]],"o":[[6.888,-14.061],[-3.077,-2.797],[-21.335,21.142],[-0.384,3.939]],"v":[[3.194,15.822],[7.903,-12.977],[-29.769,36.228],[-60.524,64.578]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[-23.929,48.852],[2.114,1.922],[24.913,-24.689],[0.384,-3.939]],"o":[[6.888,-14.061],[-3.077,-2.797],[-21.335,21.142],[-0.384,3.939]],"v":[[3.194,15.822],[7.903,-12.977],[-29.769,36.228],[-60.524,64.578]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[-23.929,48.852],[2.114,1.922],[24.913,-24.689],[0.384,-3.939]],"o":[[6.888,-14.061],[-3.077,-2.797],[-21.335,21.142],[-0.384,3.939]],"v":[[3.194,15.822],[7.903,-12.977],[-29.769,36.228],[-60.524,64.578]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[-23.929,48.852],[2.114,1.922],[24.913,-24.689],[0.384,-3.939]],"o":[[6.888,-14.061],[-3.077,-2.797],[-21.335,21.142],[-0.384,3.939]],"v":[[3.194,15.822],[7.903,-12.977],[-29.769,36.228],[-60.524,64.578]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[-23.929,48.852],[2.114,1.922],[24.913,-24.689],[0.384,-3.939]],"o":[[6.888,-14.061],[-3.077,-2.797],[-21.335,21.142],[-0.384,3.939]],"v":[[3.194,15.822],[7.903,-12.977],[-29.769,36.228],[-60.524,64.578]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[-23.929,48.852],[2.114,1.922],[24.913,-24.689],[0.384,-3.939]],"o":[[6.888,-14.061],[-3.077,-2.797],[-21.335,21.142],[-0.384,3.939]],"v":[[3.194,15.822],[7.903,-12.977],[-29.769,36.228],[-60.524,64.578]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[-23.929,48.852],[2.114,1.922],[24.913,-24.689],[0.384,-3.939]],"o":[[6.888,-14.061],[-3.077,-2.797],[-21.335,21.142],[-0.384,3.939]],"v":[[3.194,15.822],[7.903,-12.977],[-29.769,36.228],[-60.524,64.578]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[-23.929,48.852],[2.114,1.922],[24.913,-24.689],[0.384,-3.939]],"o":[[6.888,-14.061],[-3.077,-2.797],[-21.335,21.142],[-0.384,3.939]],"v":[[3.194,15.822],[7.903,-12.977],[-29.769,36.228],[-60.524,64.578]],"c":true}]},{"t":29,"s":[{"i":[[-23.929,48.852],[2.114,1.922],[24.913,-24.689],[0.384,-3.939]],"o":[[6.888,-14.061],[-3.077,-2.797],[-21.335,21.142],[-0.384,3.939]],"v":[[3.194,15.822],[7.903,-12.977],[-29.769,36.228],[-60.524,64.578]],"c":true}],"h":1},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":30,"s":[{"i":[[-23.929,48.852],[2.114,1.922],[24.913,-24.689],[0.384,-3.939]],"o":[[6.888,-14.061],[-3.077,-2.797],[-21.335,21.142],[-0.384,3.939]],"v":[[3.194,15.822],[7.903,-12.977],[-29.769,36.228],[-60.524,64.578]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":35.398,"s":[{"i":[[-23.929,48.852],[2.114,1.922],[24.913,-24.689],[0.384,-3.939]],"o":[[6.888,-14.061],[-3.077,-2.797],[-21.335,21.142],[-0.384,3.939]],"v":[[3.194,15.822],[7.903,-12.977],[-29.769,36.228],[-60.524,64.578]],"c":true}]},{"i":{"x":0.833,"y":0.808},"o":{"x":0.167,"y":0.192},"t":36.266,"s":[{"i":[[-23.929,48.852],[2.114,1.922],[24.913,-24.689],[0.384,-3.939]],"o":[[6.888,-14.061],[-3.077,-2.797],[-21.335,21.142],[-0.384,3.939]],"v":[[3.194,15.822],[7.903,-12.977],[-29.769,36.228],[-60.524,64.578]],"c":true}]},{"i":{"x":0.833,"y":0.808},"o":{"x":0.167,"y":0.192},"t":37.133,"s":[{"i":[[-23.929,48.852],[2.114,1.922],[24.913,-24.689],[0.384,-3.939]],"o":[[6.888,-14.061],[-3.077,-2.797],[-21.335,21.142],[-0.384,3.939]],"v":[[3.194,15.822],[7.903,-12.977],[-29.769,36.228],[-60.524,64.578]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.192},"t":38,"s":[{"i":[[-23.929,48.852],[2.114,1.922],[24.913,-24.689],[0.384,-3.939]],"o":[[6.888,-14.061],[-3.077,-2.797],[-21.335,21.142],[-0.384,3.939]],"v":[[3.194,15.822],[7.903,-12.977],[-29.769,36.228],[-60.524,64.578]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38.869,"s":[{"i":[[-23.929,48.852],[2.114,1.922],[24.913,-24.689],[0.384,-3.939]],"o":[[6.888,-14.061],[-3.077,-2.797],[-21.335,21.142],[-0.384,3.939]],"v":[[3.194,15.822],[7.903,-12.977],[-29.769,36.228],[-60.524,64.578]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":39.736,"s":[{"i":[[-23.929,48.852],[2.114,1.922],[24.913,-24.689],[0.384,-3.939]],"o":[[6.888,-14.061],[-3.077,-2.797],[-21.335,21.142],[-0.384,3.939]],"v":[[3.194,15.822],[7.903,-12.977],[-29.769,36.228],[-60.524,64.578]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":46.676,"s":[{"i":[[-23.929,48.852],[2.114,1.922],[24.913,-24.689],[0.384,-3.939]],"o":[[6.888,-14.061],[-3.077,-2.797],[-21.335,21.142],[-0.384,3.939]],"v":[[3.194,15.822],[7.903,-12.977],[-29.769,36.228],[-60.524,64.578]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":51.881,"s":[{"i":[[-23.929,48.852],[2.114,1.922],[24.913,-24.689],[0.384,-3.939]],"o":[[6.888,-14.061],[-3.077,-2.797],[-21.335,21.142],[-0.384,3.939]],"v":[[3.194,15.822],[7.903,-12.977],[-29.769,36.228],[-60.524,64.578]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":55.775,"s":[{"i":[[-23.929,48.852],[2.114,1.922],[24.913,-24.689],[0.384,-3.939]],"o":[[6.888,-14.061],[-3.077,-2.797],[-21.335,21.142],[-0.384,3.939]],"v":[[3.194,15.822],[7.903,-12.977],[-29.769,36.228],[-60.524,64.578]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":60.393,"s":[{"i":[[-23.929,48.852],[2.114,1.922],[24.913,-24.689],[0.384,-3.939]],"o":[[6.888,-14.061],[-3.077,-2.797],[-21.335,21.142],[-0.384,3.939]],"v":[[3.194,15.822],[7.903,-12.977],[-29.769,36.228],[-60.524,64.578]],"c":true}]},{"t":77,"s":[{"i":[[-23.929,48.852],[2.114,1.922],[24.913,-24.689],[0.384,-3.939]],"o":[[6.888,-14.061],[-3.077,-2.797],[-21.335,21.142],[-0.384,3.939]],"v":[[3.194,15.822],[7.903,-12.977],[-29.769,36.228],[-60.524,64.578]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.874509811401,0.474509805441,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-35.335,53.002],[-5.567,22.479],[-21.793,12.034],[-3.48,-42.21],[-3.346,-23.044],[-32.858,-3.356],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[8.95,-36.141],[24.555,-13.559],[3.528,42.788],[3.346,23.044],[40.114,4.097],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[-13.252,-133.194],[-1.418,-214.617],[57.831,-158.315],[38.895,-65.927],[112.397,-49.978],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[-35.335,53.002],[-13.167,17.34],[-24.248,3.318],[11.988,-36.978],[4.187,-15.792],[-32.894,-2.889],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[21.17,-27.879],[27.32,-3.739],[-12.152,37.484],[-4.187,15.792],[40.158,3.527],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[9.789,-127.255],[49.868,-192.704],[83.798,-126.069],[42.366,-55.178],[112.216,-49.497],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[0,0],[-35.335,53.002],[-17.602,14.342],[-25.679,-1.767],[21.013,-33.924],[8.581,-11.56],[-32.915,-2.617],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[28.3,-23.058],[28.933,1.991],[-21.301,34.389],[-8.581,11.56],[40.184,3.194],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[23.233,-123.789],[79.793,-179.918],[98.949,-107.254],[44.391,-48.906],[112.11,-47.457],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[-35.335,53.002],[-20.294,7.491],[-21.512,-9.687],[30.22,-24.21],[15.673,-6.821],[-59.212,-6.062],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[32.627,-12.044],[24.238,10.914],[-30.634,24.542],[-15.673,6.821],[40.103,4.105],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[44.302,-110.709],[113.095,-143.907],[103.692,-71.858],[47.694,-34.844],[115.111,-39.332],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,0],[-35.335,53.002],[-22.118,2.847],[-18.688,-15.055],[36.461,-17.625],[20.48,-3.608],[-22.589,6.762],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[35.56,-4.578],[21.056,16.963],[-36.961,17.867],[-20.48,3.608],[40.311,0.76],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[58.584,-101.844],[135.667,-119.498],[106.907,-47.866],[49.932,-25.312],[105.988,-39.812],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[-35.335,53.002],[-22.382,2.176],[-18.279,-15.832],[37.364,-16.673],[21.358,-1.449],[-31.587,12.499],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[35.985,-3.498],[20.595,17.838],[-37.876,16.901],[-8.42,0.571],[35.601,-2.189],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[60.649,-100.562],[138.932,-115.968],[107.372,-44.396],[50.256,-23.934],[108.58,-39.299],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[0,0],[-35.335,53.002],[-22.631,1.542],[-17.894,-16.564],[38.215,-15.775],[21.955,-1.554],[-29.58,10.587],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[36.385,-2.48],[20.161,18.663],[-38.739,15.991],[-13.169,0.959],[37.099,-0.815],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[62.598,-99.352],[142.011,-112.638],[107.811,-41.123],[50.562,-22.633],[113.135,-39.262],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[-35.335,53.002],[-22.858,0.965],[-17.543,-17.232],[38.991,-14.956],[22.499,-1.651],[-34.396,15.776],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[36.75,-1.551],[19.765,19.415],[-39.526,15.161],[-17.5,1.312],[38.465,0.438],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[64.374,-98.249],[144.819,-109.602],[108.21,-38.139],[50.84,-21.448],[114.827,-39.608],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":false}]},{"t":29,"s":[{"i":[[0,0],[-35.335,53.002],[-23.049,0.479],[-17.247,-17.793],[39.644,-14.267],[22.957,-1.732],[-31.785,18.865],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[37.057,-0.77],[19.432,20.048],[-40.188,14.462],[-21.143,1.609],[39.614,1.491],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[65.868,-97.322],[147.181,-107.048],[108.547,-35.628],[51.074,-20.45],[118.778,-38.79],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":false}],"h":1},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":30,"s":[{"i":[[0,0],[-35.335,53.002],[-23.157,0.202],[-17.079,-18.113],[40.016,-13.874],[23.218,-1.778],[-32.985,-1.713],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[37.231,-0.325],[19.243,20.408],[-40.565,14.064],[-23.218,1.778],[40.269,2.092],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[66.72,-96.793],[148.526,-105.593],[108.739,-34.198],[51.208,-19.882],[113.79,-17.766],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":35.398,"s":[{"i":[[0,0],[-35.335,53.002],[-23.157,0.202],[-17.079,-18.113],[40.016,-13.874],[23.218,-1.778],[-32.985,-1.713],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[37.231,-0.325],[19.243,20.408],[-40.565,14.064],[-23.218,1.778],[40.269,2.092],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[66.72,-96.793],[148.526,-105.593],[108.739,-34.198],[51.208,-19.882],[113.79,-17.766],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":false}]},{"i":{"x":0.833,"y":0.808},"o":{"x":0.167,"y":0.192},"t":36.266,"s":[{"i":[[0,0],[-35.335,53.002],[-23.049,0.479],[-17.247,-17.793],[39.644,-14.267],[22.957,-1.732],[-31.785,18.865],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[37.057,-0.77],[19.432,20.048],[-40.188,14.462],[-21.143,1.609],[39.614,1.491],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[65.868,-97.322],[147.181,-107.048],[108.547,-35.628],[51.074,-20.45],[118.778,-38.79],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":false}]},{"i":{"x":0.833,"y":0.808},"o":{"x":0.167,"y":0.192},"t":37.133,"s":[{"i":[[0,0],[-35.335,53.002],[-22.858,0.965],[-17.543,-17.232],[38.991,-14.956],[22.499,-1.651],[-34.396,15.776],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[36.75,-1.551],[19.765,19.415],[-39.526,15.161],[-17.5,1.312],[38.465,0.438],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[64.374,-98.249],[144.819,-109.602],[108.21,-38.139],[50.84,-21.448],[114.827,-39.608],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.192},"t":38,"s":[{"i":[[0,0],[-35.335,53.002],[-22.631,1.542],[-17.894,-16.564],[38.215,-15.775],[21.955,-1.554],[-29.58,10.587],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[36.385,-2.48],[20.161,18.663],[-38.739,15.991],[-13.169,0.959],[37.099,-0.815],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[62.598,-99.352],[142.011,-112.638],[107.811,-41.123],[50.562,-22.633],[113.135,-39.262],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38.869,"s":[{"i":[[0,0],[-35.335,53.002],[-22.382,2.176],[-18.279,-15.832],[37.364,-16.673],[21.358,-1.449],[-31.587,12.499],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[35.985,-3.498],[20.595,17.838],[-37.876,16.901],[-8.42,0.571],[35.601,-2.189],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[60.649,-100.562],[138.932,-115.968],[107.372,-44.396],[50.256,-23.934],[108.58,-39.299],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":39.736,"s":[{"i":[[0,0],[-35.335,53.002],[-22.118,2.847],[-18.688,-15.055],[36.461,-17.625],[20.48,-3.608],[-22.589,6.762],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[35.56,-4.578],[21.056,16.963],[-36.961,17.867],[-20.48,3.608],[40.311,0.76],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[58.584,-101.844],[135.667,-119.498],[106.907,-47.866],[49.932,-25.312],[105.988,-39.812],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":46.676,"s":[{"i":[[0,0],[-35.335,53.002],[-5.567,22.479],[-21.793,12.034],[-3.48,-42.21],[-3.346,-23.044],[-32.858,-3.356],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[8.95,-36.141],[24.555,-13.559],[3.528,42.788],[3.346,23.044],[40.114,4.097],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[-13.252,-133.194],[-1.418,-214.617],[57.831,-158.315],[38.895,-65.927],[112.397,-49.978],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":51.881,"s":[{"i":[[0,0],[-35.335,53.002],[2.736,22.996],[-16.135,18.959],[-18.171,-38.257],[-3.346,-23.044],[-32.858,-3.356],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[-4.398,-36.972],[18.179,-21.361],[18.42,38.781],[3.346,23.044],[40.114,4.097],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[-36.76,-126.359],[-54.462,-206.711],[20.859,-174.977],[31.082,-66.239],[112.397,-49.978],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":55.775,"s":[{"i":[[0,0],[-35.335,53.002],[-5.567,22.479],[-21.793,12.034],[-3.48,-42.21],[-3.346,-23.044],[-32.858,-3.356],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[8.95,-36.141],[24.555,-13.559],[3.528,42.788],[3.346,23.044],[40.114,4.097],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[-13.252,-133.194],[-1.418,-214.617],[57.831,-158.315],[38.895,-65.927],[112.397,-49.978],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":false}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":60.393,"s":[{"i":[[0,0],[-35.335,53.002],[-9.606,21.072],[-23.635,7.821],[4.343,-42.13],[0.95,-23.267],[-32.858,-3.356],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[15.444,-33.878],[26.63,-8.811],[-4.402,42.707],[-0.95,23.267],[40.114,4.097],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[2.674,-129.298],[29.282,-207.156],[77.165,-140.917],[46.09,-65.463],[112.397,-49.978],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":false}]},{"t":77,"s":[{"i":[[0,0],[-35.335,53.002],[-5.567,22.479],[-21.793,12.034],[-3.48,-42.21],[-3.346,-23.044],[-32.858,-3.356],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[8.95,-36.141],[24.555,-13.559],[3.528,42.788],[3.346,23.044],[40.114,4.097],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[-13.252,-133.194],[-1.418,-214.617],[57.831,-158.315],[38.895,-65.927],[112.397,-49.978],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.96862745285,0.494117647409,0.254901975393,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[31.58,26.707],[6.919,-11.821],[-10.667,-27.389],[-6.524,18.112]],"o":[[0,0],[-6.919,11.821],[10.667,27.389],[6.524,-18.112]],"v":[[32.756,-210.226],[11.843,-208.256],[16.168,-139.063],[54.043,-121.815]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[19.272,32.711],[10.573,-7.852],[0.091,-26.66],[-12.473,13.325]],"o":[[0,0],[-10.573,7.853],[-0.091,26.66],[12.473,-13.325]],"v":[[79.531,-178.137],[59.705,-183.094],[38.793,-122.915],[67.218,-96.249]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[12.09,36.214],[12.705,-5.537],[6.368,-26.234],[-15.944,10.532]],"o":[[0,0],[-12.705,5.537],[-6.368,26.234],[15.944,-10.532]],"v":[[106.823,-159.414],[87.632,-168.412],[51.994,-113.493],[74.906,-81.331]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[-2.493,36.707],[12.931,-1.033],[14.85,-21.832],[-17.505,4.551]],"o":[[0,0],[-12.931,1.033],[-14.85,21.832],[17.505,-4.551]],"v":[[129.088,-116.771],[115.749,-130.986],[65.43,-92.304],[73.713,-55.872]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[-12.378,37.042],[13.084,2.021],[20.598,-18.847],[-18.563,0.497]],"o":[[0,0],[-13.084,-2.021],[-20.598,18.847],[18.563,-0.497]],"v":[[144.18,-87.867],[134.808,-105.618],[74.536,-77.942],[72.905,-38.615]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[-13.807,37.09],[13.106,2.462],[21.43,-18.416],[-18.716,-0.089]],"o":[[0,0],[-13.106,-2.462],[-21.43,18.416],[18.716,0.089]],"v":[[146.363,-83.687],[137.564,-101.949],[75.854,-75.864],[72.788,-36.119]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[-15.156,37.136],[13.126,2.879],[22.214,-18.009],[-18.861,-0.642]],"o":[[0,0],[-13.126,-2.879],[-22.214,18.009],[18.861,0.642]],"v":[[148.422,-79.743],[140.165,-98.488],[77.096,-73.905],[72.678,-33.765]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[-16.385,37.178],[13.145,3.259],[22.929,-17.637],[-18.992,-1.146]],"o":[[0,0],[-13.145,-3.259],[-22.929,17.637],[18.992,1.146]],"v":[[150.299,-76.148],[142.535,-95.333],[78.229,-72.118],[72.577,-31.619]],"c":true}]},{"t":29,"s":[{"i":[[-17.42,37.213],[13.161,3.578],[23.53,-17.325],[-19.103,-1.571]],"o":[[0,0],[-13.161,-3.578],[-23.53,17.325],[19.103,1.571]],"v":[[151.878,-73.124],[144.529,-92.678],[79.182,-70.616],[72.493,-29.813]],"c":true}],"h":1},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":30,"s":[{"i":[[-18.009,37.233],[13.171,3.76],[23.873,-17.147],[-19.166,-1.812]],"o":[[0,0],[-13.171,-3.76],[-23.873,17.147],[19.166,1.812]],"v":[[152.778,-71.401],[145.666,-91.166],[79.725,-69.759],[72.445,-28.784]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":35.398,"s":[{"i":[[-18.009,37.233],[13.171,3.76],[23.873,-17.147],[-19.166,-1.812]],"o":[[0,0],[-13.171,-3.76],[-23.873,17.147],[19.166,1.812]],"v":[[152.778,-71.401],[145.666,-91.166],[79.725,-69.759],[72.445,-28.784]],"c":true}]},{"i":{"x":0.833,"y":0.808},"o":{"x":0.167,"y":0.192},"t":36.266,"s":[{"i":[[-17.42,37.213],[13.161,3.578],[23.53,-17.325],[-19.103,-1.571]],"o":[[0,0],[-13.161,-3.578],[-23.53,17.325],[19.103,1.571]],"v":[[151.878,-73.124],[144.529,-92.678],[79.182,-70.616],[72.493,-29.813]],"c":true}]},{"i":{"x":0.833,"y":0.808},"o":{"x":0.167,"y":0.192},"t":37.133,"s":[{"i":[[-16.385,37.178],[13.145,3.259],[22.929,-17.637],[-18.992,-1.146]],"o":[[0,0],[-13.145,-3.259],[-22.929,17.637],[18.992,1.146]],"v":[[150.299,-76.148],[142.535,-95.333],[78.229,-72.118],[72.577,-31.619]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.192},"t":38,"s":[{"i":[[-15.156,37.136],[13.126,2.879],[22.214,-18.009],[-18.861,-0.642]],"o":[[0,0],[-13.126,-2.879],[-22.214,18.009],[18.861,0.642]],"v":[[148.422,-79.743],[140.165,-98.488],[77.096,-73.905],[72.678,-33.765]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38.869,"s":[{"i":[[-13.807,37.09],[13.106,2.462],[21.43,-18.416],[-18.716,-0.089]],"o":[[0,0],[-13.106,-2.462],[-21.43,18.416],[18.716,0.089]],"v":[[146.363,-83.687],[137.564,-101.949],[75.854,-75.864],[72.788,-36.119]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":39.736,"s":[{"i":[[-12.378,37.042],[13.084,2.021],[20.598,-18.847],[-18.563,0.497]],"o":[[0,0],[-13.084,-2.021],[-20.598,18.847],[18.563,-0.497]],"v":[[144.18,-87.867],[134.808,-105.618],[74.536,-77.942],[72.905,-38.615]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":46.676,"s":[{"i":[[31.58,26.707],[6.919,-11.821],[-10.667,-27.389],[-6.524,18.112]],"o":[[0,0],[-6.919,11.821],[10.667,27.389],[6.524,-18.112]],"v":[[32.756,-210.226],[11.843,-208.256],[16.168,-139.063],[54.043,-121.815]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":51.881,"s":[{"i":[[38.98,13.825],[2.296,-13.503],[-19.657,-21.853],[0.297,19.249]],"o":[[0,0],[-2.296,13.503],[19.657,21.853],[-0.297,-19.249]],"v":[[-20.94,-214.679],[-39.808,-205.447],[-11.312,-142.245],[30.213,-139.494]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":55.775,"s":[{"i":[[31.58,26.707],[6.919,-11.821],[-10.667,-27.389],[-6.524,18.112]],"o":[[0,0],[-6.919,11.821],[10.667,27.389],[6.524,-18.112]],"v":[[32.756,-210.226],[11.843,-208.256],[16.168,-139.063],[54.043,-121.815]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":60.393,"s":[{"i":[[26.129,32.06],[8.975,-10.346],[-5.448,-28.884],[-9.744,16.603]],"o":[[0,0],[-8.975,10.346],[5.448,28.884],[9.744,-16.603]],"v":[[62.066,-196.554],[41.147,-198.464],[32.672,-129.656],[66.728,-105.737]],"c":true}]},{"t":77,"s":[{"i":[[31.58,26.707],[6.919,-11.821],[-10.667,-27.389],[-6.524,18.112]],"o":[[0,0],[-6.919,11.821],[10.667,27.389],[6.524,-18.112]],"v":[[32.756,-210.226],[11.843,-208.256],[16.168,-139.063],[54.043,-121.815]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.874509811401,0.474509805441,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[1.256,-14.508],[71.173,-6.66],[31.965,24.924],[0,0],[-35.34,52.999],[-5.561,22.48],[-21.796,12.03],[-5.566,0.135],[-3.46,-39.788],[19.369,-26.14],[16.912,-48.623],[-9.18,-14.639],[-23.837,-21.729],[-2.949,6.862],[-4.901,27.091],[17.681,4.227],[-28.801,37.93],[-20.776,34.618],[-22.051,20.742],[-0.673,-4.675],[-9.283,-1.816],[0,0],[-12.4,-8.936],[-22.869,-2.02],[-11.526,-16.235]],"o":[[-6.66,76.813],[-71.184,6.66],[0,0],[0,0],[35.329,-53.01],[8.947,-36.136],[2.825,-1.558],[0,0],[2.572,29.578],[-15.654,21.126],[-12.906,37.104],[7.395,11.792],[23.837,21.729],[2.938,-6.85],[2.972,-16.425],[-17.681,-4.227],[10.21,-13.447],[17.298,-28.823],[-1.233,4.989],[1.301,8.936],[0,0.011],[0,0],[12.389,8.947],[8.339,0.736],[0.886,9.967]],"v":[[170.61,37.762],[67.337,182.418],[-85.178,158.537],[-105.472,55.32],[-86.804,-47.157],[-13.254,-133.197],[-1.414,-214.618],[14.726,-218.092],[-1.098,-178.304],[-12.088,-106.356],[-88.934,-10.259],[-85.503,74.313],[-71.668,119.822],[4.192,133.803],[0.311,92.736],[-51.677,88.922],[6.918,46.599],[27.892,-4.912],[42.169,-90.511],[38.893,-67.047],[55.879,-52.225],[55.879,-52.214],[57.976,-33.579],[138.791,-26.718],[171.115,1.278]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[1.256,-14.508],[71.173,-6.66],[31.965,24.924],[0,0],[-35.34,52.999],[-13.163,17.34],[-24.246,3.31],[-5.136,-1.65],[11.136,-34.912],[27.973,-19.523],[16.912,-48.623],[-9.18,-14.639],[-23.837,-21.729],[-2.949,6.862],[-4.901,27.091],[17.681,4.227],[-28.801,37.93],[-20.157,34.964],[-17.512,17.753],[0.854,-3.204],[-9.283,-1.816],[0,0],[-9.377,-6.445],[-22.869,-2.02],[-9.466,-18.224]],"o":[[-6.66,76.813],[-71.184,6.66],[0,0],[0,0],[35.329,-53.01],[21.165,-27.875],[3.143,-0.429],[0,0],[-8.278,25.953],[-29.257,15.467],[-12.906,37.104],[7.395,11.792],[23.837,21.729],[2.938,-6.85],[2.972,-16.425],[-17.681,-4.227],[10.21,-13.447],[13.236,-22.277],[0.408,1.592],[-1.621,6.124],[0,0.011],[0,0],[13.19,6.83],[8.339,0.736],[0.886,9.967]],"v":[[170.61,37.762],[67.337,182.418],[-85.178,158.537],[-105.472,55.32],[-86.804,-47.157],[9.789,-127.258],[49.872,-192.704],[65.876,-190.539],[37.111,-161.741],[2.02,-102.439],[-88.934,-10.259],[-85.503,74.313],[-71.668,119.822],[4.192,133.803],[0.311,92.736],[-51.677,88.922],[6.918,46.599],[27.004,-3.668],[40.162,-70.024],[42.673,-55.901],[54.258,-47.489],[55.279,-47.389],[57.976,-38.923],[138.518,-27.147],[171.115,1.278]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[1.256,-14.508],[71.173,-6.66],[31.965,24.924],[0,0],[-35.34,52.999],[-17.599,14.34],[-25.676,-1.777],[-4.886,-2.691],[19.652,-32.068],[32.993,-15.662],[16.912,-48.623],[-9.18,-14.639],[-23.837,-21.729],[-2.949,6.862],[-4.901,27.091],[17.681,4.227],[-28.801,37.93],[-19.795,35.166],[-14.864,16.009],[1.744,-2.346],[-9.284,-1.816],[0,0],[-7.613,-4.992],[-22.869,-2.02],[-8.264,-19.385]],"o":[[-6.66,76.813],[-71.184,6.66],[0,0],[0,0],[35.329,-53.01],[28.294,-23.055],[3.328,0.23],[0,0],[-14.609,23.839],[-37.194,12.165],[-12.906,37.104],[7.395,11.792],[23.837,21.729],[2.938,-6.85],[2.972,-16.425],[-17.681,-4.227],[10.21,-13.447],[10.866,-18.458],[1.366,-0.39],[-3.326,4.484],[0,0.011],[0,0],[13.658,5.595],[8.339,0.736],[0.886,9.967]],"v":[[170.61,37.762],[67.337,182.418],[-85.178,158.537],[-105.472,55.32],[-86.804,-47.157],[23.233,-123.793],[79.797,-179.917],[95.72,-174.462],[59.405,-152.076],[10.252,-100.154],[-88.934,-10.259],[-85.503,74.313],[-71.668,119.822],[4.192,133.803],[0.311,92.736],[-51.677,88.922],[6.918,46.599],[26.486,-2.943],[38.991,-58.07],[44.879,-49.397],[53.312,-44.254],[54.93,-44.102],[57.976,-40.282],[137.526,-26.421],[171.115,1.278]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[1.256,-14.508],[71.173,-6.66],[31.965,24.924],[0,0],[-35.34,52.999],[-20.292,7.491],[-21.507,-9.696],[-3.253,-3.983],[28.384,-22.951],[32.748,-7.238],[16.912,-48.623],[-9.18,-14.639],[-23.837,-21.729],[-2.949,6.862],[-4.901,27.091],[17.681,4.227],[-28.801,37.93],[-19.214,35.491],[-10.61,13.207],[3.181,-1.385],[-9.303,1.11],[0,0],[-5.197,0.638],[-29.774,-3.569],[-6.333,-21.25]],"o":[[-6.66,76.813],[-71.184,6.66],[0,0],[0,0],[35.329,-53.01],[32.622,-12.043],[2.788,1.257],[0,0],[-21.101,17.062],[-40.578,5.135],[-12.906,37.104],[7.395,11.792],[23.837,21.729],[2.938,-6.85],[2.972,-16.425],[-17.681,-4.227],[10.21,-13.447],[7.058,-12.323],[2.905,-3.574],[-6.077,2.647],[0.001,0.001],[0,0],[14.328,-1.63],[8.311,0.996],[0.886,9.967]],"v":[[170.61,37.762],[67.337,182.418],[-85.178,158.537],[-105.472,55.32],[-86.804,-47.157],[44.304,-110.713],[113.098,-143.905],[124.882,-133.938],[85.583,-125.027],[26.217,-92.321],[-88.934,-10.259],[-85.503,74.313],[-71.668,119.822],[4.192,133.803],[0.311,92.736],[-51.677,88.922],[6.918,46.599],[25.653,-1.777],[37.109,-38.865],[48.487,-35.061],[51.96,-33.452],[54.512,-33.794],[59.935,-34.376],[137.236,-27.841],[171.115,1.278]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[1.256,-14.508],[71.173,-6.66],[31.965,24.924],[0,0],[-35.34,52.999],[-22.117,2.848],[-18.681,-15.064],[-2.146,-4.858],[34.303,-16.772],[32.583,-1.529],[16.912,-48.623],[-9.18,-14.639],[-23.837,-21.729],[-2.949,6.862],[-4.901,27.091],[17.681,4.227],[-28.801,37.93],[-18.821,35.711],[-7.726,11.308],[4.155,-0.734],[-9.403,0.34],[0,0],[-3.011,0.327],[-25.375,-2.582],[-5.024,-22.515]],"o":[[-6.66,76.813],[-71.184,6.66],[0,0],[0,0],[35.329,-53.01],[35.555,-4.579],[2.421,1.952],[0,0],[-25.501,12.468],[-42.872,0.371],[-12.906,37.104],[7.395,11.792],[23.837,21.729],[2.938,-6.85],[2.972,-16.425],[-17.681,-4.227],[10.21,-13.447],[4.477,-8.164],[3.948,-5.732],[-7.941,1.402],[0.002,0.007],[0,0],[37.323,-15.998],[8.329,0.831],[0.886,9.967]],"v":[[170.61,37.762],[67.337,182.418],[-85.178,158.537],[-105.472,55.32],[-86.804,-47.157],[58.586,-101.847],[135.669,-119.495],[144.649,-106.47],[103.327,-106.693],[37.038,-87.012],[-88.934,-10.259],[-85.503,74.313],[-71.668,119.822],[4.192,133.803],[0.311,92.736],[-51.677,88.922],[6.918,46.599],[25.089,-0.987],[35.834,-25.848],[50.932,-25.344],[50.91,-24.635],[54.124,-24.973],[58.732,-25.646],[141.81,-34.889],[171.115,1.278]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[1.256,-14.508],[71.173,-6.66],[31.965,24.924],[0,0],[-35.34,52.999],[-22.381,2.176],[-18.272,-15.84],[-1.986,-4.985],[35.159,-15.878],[32.559,-0.703],[16.912,-48.623],[-9.18,-14.639],[-23.837,-21.729],[-2.949,6.862],[-4.901,27.091],[17.681,4.227],[-28.801,37.93],[-18.764,35.742],[-7.309,11.033],[4.296,-0.639],[-9.417,0.229],[0,0],[-2.695,0.282],[-31.729,-11.516],[-4.835,-22.697]],"o":[[-6.66,76.813],[-71.184,6.66],[0,0],[0,0],[35.329,-53.01],[35.979,-3.499],[2.368,2.053],[0,0],[-26.137,11.804],[-43.204,-0.319],[-12.906,37.104],[7.395,11.792],[23.837,21.729],[2.938,-6.85],[2.972,-16.425],[-17.681,-4.227],[10.21,-13.447],[4.104,-7.562],[4.098,-6.044],[-8.211,1.222],[0.002,0.008],[0,0],[14.984,-1.382],[7.868,2.856],[0.886,9.967]],"v":[[170.61,37.762],[67.337,182.418],[-85.178,158.537],[-105.472,55.32],[-86.804,-47.157],[60.652,-100.564],[138.934,-115.965],[147.508,-102.497],[105.893,-104.041],[38.603,-86.244],[-88.934,-10.259],[-85.503,74.313],[-71.668,119.822],[4.192,133.803],[0.311,92.736],[-51.677,88.922],[6.918,46.599],[25.007,-0.873],[35.65,-23.965],[51.286,-23.938],[50.758,-23.36],[54.068,-23.697],[58.558,-24.383],[142.472,-35.909],[171.115,1.278]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[1.256,-14.508],[71.173,-6.66],[31.965,24.924],[0,0],[-35.34,52.999],[-22.63,1.543],[-17.886,-16.572],[-1.835,-5.104],[35.967,-15.035],[32.536,0.076],[16.912,-48.623],[-9.18,-14.639],[-23.837,-21.729],[-2.949,6.862],[-4.901,27.091],[17.681,4.227],[-28.801,37.93],[-18.71,35.772],[-6.916,10.774],[4.429,-0.55],[-9.43,0.124],[0,0],[-2.397,0.239],[-24.139,-2.305],[-4.656,-22.87]],"o":[[-6.66,76.813],[-71.184,6.66],[0,0],[0,0],[35.329,-53.01],[36.379,-2.481],[2.318,2.148],[0,0],[-26.738,11.177],[-43.517,-0.969],[-12.906,37.104],[7.395,11.792],[23.837,21.729],[2.938,-6.85],[2.972,-16.425],[-17.681,-4.227],[10.21,-13.447],[3.752,-6.995],[4.241,-6.339],[-8.465,1.052],[0.002,0.009],[0,0],[15.062,-1.353],[8.334,0.784],[0.886,9.967]],"v":[[170.61,37.762],[67.337,182.418],[-85.178,158.537],[-105.472,55.32],[-86.804,-47.157],[62.6,-99.355],[142.014,-112.635],[150.204,-98.749],[108.314,-101.539],[40.08,-85.52],[-88.934,-10.259],[-85.503,74.313],[-71.668,119.822],[4.192,133.803],[0.311,92.736],[-51.677,88.922],[6.918,46.599],[24.93,-0.765],[35.476,-22.189],[51.62,-22.613],[50.614,-22.157],[54.016,-22.493],[58.394,-23.192],[139.033,-37.652],[171.115,1.278]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[1.256,-14.508],[71.173,-6.66],[31.965,24.924],[0,0],[-35.34,52.999],[-22.857,0.966],[-17.535,-17.24],[-1.698,-5.213],[36.703,-14.267],[32.515,0.786],[16.912,-48.623],[-9.18,-14.639],[-23.837,-21.729],[-2.949,6.862],[-4.901,27.091],[17.681,4.227],[-28.801,37.93],[-18.661,35.8],[-6.557,10.538],[4.55,-0.469],[-9.443,0.028],[0,0],[-2.125,0.201],[-23.592,-2.182],[-4.493,-23.027]],"o":[[-6.66,76.813],[-71.184,6.66],[0,0],[0,0],[35.329,-53.01],[36.744,-1.552],[2.273,2.234],[0,0],[-27.285,10.606],[-43.802,-1.561],[-12.906,37.104],[7.395,11.792],[23.837,21.729],[2.938,-6.85],[2.972,-16.425],[-17.681,-4.227],[10.21,-13.447],[3.431,-6.478],[4.37,-6.607],[-8.697,0.897],[0.002,0.01],[0,0],[15.133,-1.326],[8.336,0.764],[0.886,9.967]],"v":[[170.61,37.762],[67.337,182.418],[-85.178,158.537],[-105.472,55.32],[-86.804,-47.157],[64.377,-98.252],[144.821,-109.599],[152.663,-95.333],[110.521,-99.259],[41.426,-84.859],[-88.934,-10.259],[-85.503,74.313],[-71.668,119.822],[4.192,133.803],[0.311,92.736],[-51.677,88.922],[6.918,46.599],[24.86,-0.667],[35.317,-20.57],[51.924,-21.404],[50.484,-21.061],[53.967,-21.396],[58.244,-22.106],[142.237,-39.477],[171.115,1.278]],"c":true}]},{"t":29,"s":[{"i":[[1.256,-14.508],[71.173,-6.66],[31.965,24.924],[0,0],[-35.34,52.999],[-23.048,0.48],[-17.239,-17.801],[-1.582,-5.305],[37.323,-13.62],[32.498,1.383],[16.912,-48.623],[-9.18,-14.639],[-23.837,-21.729],[-2.949,6.862],[-4.901,27.091],[17.681,4.227],[-28.801,37.93],[-18.62,35.823],[-6.255,10.339],[4.652,-0.401],[-9.453,-0.052],[0,0],[-1.896,0.168],[-23.131,-2.079],[-4.356,-23.159]],"o":[[-6.66,76.813],[-71.184,6.66],[0,0],[0,0],[35.329,-53.01],[37.051,-0.771],[2.234,2.307],[0,0],[-27.745,10.125],[-44.042,-2.06],[-12.906,37.104],[7.395,11.792],[23.837,21.729],[2.938,-6.85],[2.972,-16.425],[-17.681,-4.227],[10.21,-13.447],[3.161,-6.042],[4.48,-6.833],[-8.892,0.767],[0.002,0.011],[0,0],[15.193,-1.303],[8.337,0.746],[0.886,9.967]],"v":[[170.61,37.762],[67.337,182.418],[-85.178,158.537],[-105.472,55.32],[-86.804,-47.157],[65.871,-97.324],[147.183,-107.044],[154.731,-92.459],[112.378,-97.34],[42.558,-84.304],[-88.934,-10.259],[-85.503,74.313],[-71.668,119.822],[4.192,133.803],[0.311,92.736],[-51.677,88.922],[6.918,46.599],[24.801,-0.584],[35.184,-19.208],[52.18,-20.387],[50.374,-20.138],[53.927,-20.473],[58.119,-21.193],[144.703,-35.937],[171.115,1.278]],"c":true}],"h":1},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":30,"s":[{"i":[[1.256,-14.508],[71.173,-6.66],[31.965,24.924],[0,0],[-35.34,52.999],[-23.157,0.203],[-17.071,-18.121],[-1.516,-5.357],[37.675,-13.252],[32.488,1.724],[16.912,-48.623],[-9.18,-14.639],[-23.837,-21.729],[-2.949,6.862],[-4.901,27.091],[17.681,4.227],[-28.801,37.93],[-18.596,35.836],[-6.083,10.226],[4.71,-0.362],[-9.459,-0.098],[0,0],[-1.766,0.15],[-22.869,-2.02],[-4.278,-23.235]],"o":[[-6.66,76.813],[-71.184,6.66],[0,0],[0,0],[35.329,-53.01],[37.226,-0.326],[2.213,2.349],[0,0],[-28.007,9.851],[-44.179,-2.344],[-12.906,37.104],[7.395,11.792],[23.837,21.729],[2.938,-6.85],[2.972,-16.425],[-17.681,-4.227],[10.21,-13.447],[3.007,-5.794],[4.542,-6.962],[-9.003,0.693],[0.002,0.011],[0,0],[15.228,-1.29],[8.339,0.736],[0.886,9.967]],"v":[[170.61,37.762],[67.337,182.418],[-85.178,158.537],[-105.472,55.32],[-86.804,-47.157],[66.722,-96.796],[148.528,-105.589],[155.91,-90.821],[113.435,-96.247],[43.203,-83.987],[-88.934,-10.259],[-85.503,74.313],[-71.668,119.822],[4.192,133.803],[0.311,92.736],[-51.677,88.922],[6.918,46.599],[24.767,-0.537],[35.108,-18.432],[52.325,-19.808],[50.311,-19.612],[53.904,-19.947],[58.047,-20.672],[144.416,-38.905],[171.115,1.278]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":35.398,"s":[{"i":[[1.256,-14.508],[71.173,-6.66],[31.965,24.924],[0,0],[-35.34,52.999],[-23.157,0.203],[-17.071,-18.121],[-1.516,-5.357],[37.675,-13.252],[32.488,1.724],[16.912,-48.623],[-9.18,-14.639],[-23.837,-21.729],[-2.949,6.862],[-4.901,27.091],[17.681,4.227],[-28.801,37.93],[-18.596,35.836],[-6.083,10.226],[4.71,-0.362],[-9.459,-0.098],[0,0],[-1.766,0.15],[-22.869,-2.02],[-4.278,-23.235]],"o":[[-6.66,76.813],[-71.184,6.66],[0,0],[0,0],[35.329,-53.01],[37.226,-0.326],[2.213,2.349],[0,0],[-28.007,9.851],[-44.179,-2.344],[-12.906,37.104],[7.395,11.792],[23.837,21.729],[2.938,-6.85],[2.972,-16.425],[-17.681,-4.227],[10.21,-13.447],[3.007,-5.794],[4.542,-6.962],[-9.003,0.693],[0.002,0.011],[0,0],[15.228,-1.29],[8.339,0.736],[0.886,9.967]],"v":[[170.61,37.762],[67.337,182.418],[-85.178,158.537],[-105.472,55.32],[-86.804,-47.157],[66.722,-96.796],[148.528,-105.589],[155.91,-90.821],[113.435,-96.247],[43.203,-83.987],[-88.934,-10.259],[-85.503,74.313],[-71.668,119.822],[4.192,133.803],[0.311,92.736],[-51.677,88.922],[6.918,46.599],[24.767,-0.537],[35.108,-18.432],[52.325,-19.808],[50.311,-19.612],[53.904,-19.947],[58.047,-20.672],[144.416,-38.905],[171.115,1.278]],"c":true}]},{"i":{"x":0.833,"y":0.808},"o":{"x":0.167,"y":0.192},"t":36.266,"s":[{"i":[[1.256,-14.508],[71.173,-6.66],[31.965,24.924],[0,0],[-35.34,52.999],[-23.048,0.48],[-17.239,-17.801],[-1.582,-5.305],[37.323,-13.62],[32.498,1.383],[16.912,-48.623],[-9.18,-14.639],[-23.837,-21.729],[-2.949,6.862],[-4.901,27.091],[17.681,4.227],[-28.801,37.93],[-18.62,35.823],[-6.255,10.339],[4.652,-0.401],[-9.453,-0.052],[0,0],[-1.896,0.168],[-23.131,-2.079],[-4.356,-23.159]],"o":[[-6.66,76.813],[-71.184,6.66],[0,0],[0,0],[35.329,-53.01],[37.051,-0.771],[2.234,2.307],[0,0],[-27.745,10.125],[-44.042,-2.06],[-12.906,37.104],[7.395,11.792],[23.837,21.729],[2.938,-6.85],[2.972,-16.425],[-17.681,-4.227],[10.21,-13.447],[3.161,-6.042],[4.48,-6.833],[-8.892,0.767],[0.002,0.011],[0,0],[15.193,-1.303],[8.337,0.746],[0.886,9.967]],"v":[[170.61,37.762],[67.337,182.418],[-85.178,158.537],[-105.472,55.32],[-86.804,-47.157],[65.871,-97.324],[147.183,-107.044],[154.731,-92.459],[112.378,-97.34],[42.558,-84.304],[-88.934,-10.259],[-85.503,74.313],[-71.668,119.822],[4.192,133.803],[0.311,92.736],[-51.677,88.922],[6.918,46.599],[24.801,-0.584],[35.184,-19.208],[52.18,-20.387],[50.374,-20.138],[53.927,-20.473],[58.119,-21.193],[144.703,-35.937],[171.115,1.278]],"c":true}]},{"i":{"x":0.833,"y":0.808},"o":{"x":0.167,"y":0.192},"t":37.133,"s":[{"i":[[1.256,-14.508],[71.173,-6.66],[31.965,24.924],[0,0],[-35.34,52.999],[-22.857,0.966],[-17.535,-17.24],[-1.698,-5.213],[36.703,-14.267],[32.515,0.786],[16.912,-48.623],[-9.18,-14.639],[-23.837,-21.729],[-2.949,6.862],[-4.901,27.091],[17.681,4.227],[-28.801,37.93],[-18.661,35.8],[-6.557,10.538],[4.55,-0.469],[-9.443,0.028],[0,0],[-2.125,0.201],[-23.592,-2.182],[-4.493,-23.027]],"o":[[-6.66,76.813],[-71.184,6.66],[0,0],[0,0],[35.329,-53.01],[36.744,-1.552],[2.273,2.234],[0,0],[-27.285,10.606],[-43.802,-1.561],[-12.906,37.104],[7.395,11.792],[23.837,21.729],[2.938,-6.85],[2.972,-16.425],[-17.681,-4.227],[10.21,-13.447],[3.431,-6.478],[4.37,-6.607],[-8.697,0.897],[0.002,0.01],[0,0],[15.133,-1.326],[8.336,0.764],[0.886,9.967]],"v":[[170.61,37.762],[67.337,182.418],[-85.178,158.537],[-105.472,55.32],[-86.804,-47.157],[64.377,-98.252],[144.821,-109.599],[152.663,-95.333],[110.521,-99.259],[41.426,-84.859],[-88.934,-10.259],[-85.503,74.313],[-71.668,119.822],[4.192,133.803],[0.311,92.736],[-51.677,88.922],[6.918,46.599],[24.86,-0.667],[35.317,-20.57],[51.924,-21.404],[50.484,-21.061],[53.967,-21.396],[58.244,-22.106],[142.237,-39.477],[171.115,1.278]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.192},"t":38,"s":[{"i":[[1.256,-14.508],[71.173,-6.66],[31.965,24.924],[0,0],[-35.34,52.999],[-22.63,1.543],[-17.886,-16.572],[-1.835,-5.104],[35.967,-15.035],[32.536,0.076],[16.912,-48.623],[-9.18,-14.639],[-23.837,-21.729],[-2.949,6.862],[-4.901,27.091],[17.681,4.227],[-28.801,37.93],[-18.71,35.772],[-6.916,10.774],[4.429,-0.55],[-9.43,0.124],[0,0],[-2.397,0.239],[-24.139,-2.305],[-4.656,-22.87]],"o":[[-6.66,76.813],[-71.184,6.66],[0,0],[0,0],[35.329,-53.01],[36.379,-2.481],[2.318,2.148],[0,0],[-26.738,11.177],[-43.517,-0.969],[-12.906,37.104],[7.395,11.792],[23.837,21.729],[2.938,-6.85],[2.972,-16.425],[-17.681,-4.227],[10.21,-13.447],[3.752,-6.995],[4.241,-6.339],[-8.465,1.052],[0.002,0.009],[0,0],[15.062,-1.353],[8.334,0.784],[0.886,9.967]],"v":[[170.61,37.762],[67.337,182.418],[-85.178,158.537],[-105.472,55.32],[-86.804,-47.157],[62.6,-99.355],[142.014,-112.635],[150.204,-98.749],[108.314,-101.539],[40.08,-85.52],[-88.934,-10.259],[-85.503,74.313],[-71.668,119.822],[4.192,133.803],[0.311,92.736],[-51.677,88.922],[6.918,46.599],[24.93,-0.765],[35.476,-22.189],[51.62,-22.613],[50.614,-22.157],[54.016,-22.493],[58.394,-23.192],[139.033,-37.652],[171.115,1.278]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38.869,"s":[{"i":[[1.256,-14.508],[71.173,-6.66],[31.965,24.924],[0,0],[-35.34,52.999],[-22.381,2.176],[-18.272,-15.84],[-1.986,-4.985],[35.159,-15.878],[32.559,-0.703],[16.912,-48.623],[-9.18,-14.639],[-23.837,-21.729],[-2.949,6.862],[-4.901,27.091],[17.681,4.227],[-28.801,37.93],[-18.764,35.742],[-7.309,11.033],[4.296,-0.639],[-9.417,0.229],[0,0],[-2.695,0.282],[-31.729,-11.516],[-4.835,-22.697]],"o":[[-6.66,76.813],[-71.184,6.66],[0,0],[0,0],[35.329,-53.01],[35.979,-3.499],[2.368,2.053],[0,0],[-26.137,11.804],[-43.204,-0.319],[-12.906,37.104],[7.395,11.792],[23.837,21.729],[2.938,-6.85],[2.972,-16.425],[-17.681,-4.227],[10.21,-13.447],[4.104,-7.562],[4.098,-6.044],[-8.211,1.222],[0.002,0.008],[0,0],[14.984,-1.382],[7.868,2.856],[0.886,9.967]],"v":[[170.61,37.762],[67.337,182.418],[-85.178,158.537],[-105.472,55.32],[-86.804,-47.157],[60.652,-100.564],[138.934,-115.965],[147.508,-102.497],[105.893,-104.041],[38.603,-86.244],[-88.934,-10.259],[-85.503,74.313],[-71.668,119.822],[4.192,133.803],[0.311,92.736],[-51.677,88.922],[6.918,46.599],[25.007,-0.873],[35.65,-23.965],[51.286,-23.938],[50.758,-23.36],[54.068,-23.697],[58.558,-24.383],[142.472,-35.909],[171.115,1.278]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":39.736,"s":[{"i":[[1.256,-14.508],[71.173,-6.66],[31.965,24.924],[0,0],[-35.34,52.999],[-22.117,2.848],[-18.681,-15.064],[-2.146,-4.858],[34.303,-16.772],[32.583,-1.529],[16.912,-48.623],[-9.18,-14.639],[-23.837,-21.729],[-2.949,6.862],[-4.901,27.091],[17.681,4.227],[-28.801,37.93],[-18.821,35.711],[-7.726,11.308],[4.155,-0.734],[-9.403,0.34],[0,0],[-3.011,0.327],[-25.375,-2.582],[-5.024,-22.515]],"o":[[-6.66,76.813],[-71.184,6.66],[0,0],[0,0],[35.329,-53.01],[35.555,-4.579],[2.421,1.952],[0,0],[-25.501,12.468],[-42.872,0.371],[-12.906,37.104],[7.395,11.792],[23.837,21.729],[2.938,-6.85],[2.972,-16.425],[-17.681,-4.227],[10.21,-13.447],[4.477,-8.164],[3.948,-5.732],[-7.941,1.402],[0.002,0.007],[0,0],[37.323,-15.998],[8.329,0.831],[0.886,9.967]],"v":[[170.61,37.762],[67.337,182.418],[-85.178,158.537],[-105.472,55.32],[-86.804,-47.157],[58.586,-101.847],[135.669,-119.495],[144.649,-106.47],[103.327,-106.693],[37.038,-87.012],[-88.934,-10.259],[-85.503,74.313],[-71.668,119.822],[4.192,133.803],[0.311,92.736],[-51.677,88.922],[6.918,46.599],[25.089,-0.987],[35.834,-25.848],[50.932,-25.344],[50.91,-24.635],[54.124,-24.973],[58.732,-25.646],[141.81,-34.889],[171.115,1.278]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":46.676,"s":[{"i":[[1.256,-14.508],[71.173,-6.66],[31.965,24.924],[0,0],[-35.34,52.999],[-5.561,22.48],[-21.796,12.03],[-5.566,0.135],[-3.46,-39.788],[19.369,-26.14],[16.912,-48.623],[-9.18,-14.639],[-23.837,-21.729],[-2.949,6.862],[-4.901,27.091],[17.681,4.227],[-28.801,37.93],[-20.776,34.618],[-22.051,20.742],[-0.673,-4.675],[-9.283,-1.816],[0,0],[-12.4,-8.936],[-22.869,-2.02],[-11.526,-16.235]],"o":[[-6.66,76.813],[-71.184,6.66],[0,0],[0,0],[35.329,-53.01],[8.947,-36.136],[2.825,-1.558],[0,0],[2.572,29.578],[-15.654,21.126],[-12.906,37.104],[7.395,11.792],[23.837,21.729],[2.938,-6.85],[2.972,-16.425],[-17.681,-4.227],[10.21,-13.447],[17.298,-28.823],[-1.233,4.989],[1.301,8.936],[0,0.011],[0,0],[12.389,8.947],[8.339,0.736],[0.886,9.967]],"v":[[170.61,37.762],[67.337,182.418],[-85.178,158.537],[-105.472,55.32],[-86.804,-47.157],[-13.254,-133.197],[-1.414,-214.618],[14.726,-218.092],[-1.098,-178.304],[-12.088,-106.356],[-88.934,-10.259],[-85.503,74.313],[-71.668,119.822],[4.192,133.803],[0.311,92.736],[-51.677,88.922],[6.918,46.599],[27.892,-4.912],[42.169,-90.511],[38.893,-67.047],[55.879,-52.225],[55.879,-52.214],[57.976,-33.579],[138.791,-26.718],[171.115,1.278]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":51.881,"s":[{"i":[[1.256,-14.508],[71.173,-6.66],[31.965,24.924],[0,0],[-35.34,52.999],[2.737,22.995],[-16.144,18.952],[-5.159,2.093],[-17.296,-35.998],[8.883,-31.298],[16.912,-48.623],[-9.18,-14.639],[-23.837,-21.729],[-2.949,6.862],[-4.901,27.091],[17.681,4.227],[-28.801,37.93],[-20.776,34.618],[-13.299,27.196],[-0.673,-4.675],[-11.542,0.893],[0,0],[-12.4,-8.936],[-22.869,-2.02],[-11.526,-16.235]],"o":[[-6.66,76.813],[-71.184,6.66],[0,0],[0,0],[35.329,-53.01],[-4.399,-36.966],[2.092,-2.456],[0,0],[12.858,26.761],[-7.179,25.295],[-12.906,37.104],[7.395,11.792],[23.837,21.729],[2.938,-6.85],[2.972,-16.425],[-17.681,-4.227],[10.21,-13.447],[17.298,-28.823],[0.609,5.103],[1.301,8.936],[0,0.011],[0,0],[12.389,8.947],[8.339,0.736],[0.886,9.967]],"v":[[170.61,37.762],[67.337,182.418],[-85.178,158.537],[-105.472,55.32],[-86.804,-47.157],[-36.763,-126.362],[-54.458,-206.714],[-40.587,-215.667],[-41.331,-172.854],[-26.188,-101.664],[-88.934,-10.259],[-85.503,74.313],[-71.668,119.822],[4.192,133.803],[0.311,92.736],[-51.677,88.922],[6.918,46.599],[27.892,-4.912],[27.668,-106.638],[31.08,-67.359],[55.879,-52.225],[55.879,-52.214],[57.976,-33.579],[138.791,-26.718],[171.115,1.278]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":55.775,"s":[{"i":[[1.256,-14.508],[71.173,-6.66],[31.965,24.924],[0,0],[-35.34,52.999],[-5.561,22.48],[-21.796,12.03],[-5.566,0.135],[-3.46,-39.788],[19.369,-26.14],[16.912,-48.623],[-9.18,-14.639],[-23.837,-21.729],[-2.949,6.862],[-4.901,27.091],[17.681,4.227],[-28.801,37.93],[-20.776,34.618],[-22.051,20.742],[-0.673,-4.675],[-9.283,-1.816],[0,0],[-12.4,-8.936],[-22.869,-2.02],[-11.526,-16.235]],"o":[[-6.66,76.813],[-71.184,6.66],[0,0],[0,0],[35.329,-53.01],[8.947,-36.136],[2.825,-1.558],[0,0],[2.572,29.578],[-15.654,21.126],[-12.906,37.104],[7.395,11.792],[23.837,21.729],[2.938,-6.85],[2.972,-16.425],[-17.681,-4.227],[10.21,-13.447],[17.298,-28.823],[-1.233,4.989],[1.301,8.936],[0,0.011],[0,0],[12.389,8.947],[8.339,0.736],[0.886,9.967]],"v":[[170.61,37.762],[67.337,182.418],[-85.178,158.537],[-105.472,55.32],[-86.804,-47.157],[-13.254,-133.197],[-1.414,-214.618],[14.726,-218.092],[-1.098,-178.304],[-12.088,-106.356],[-88.934,-10.259],[-85.503,74.313],[-71.668,119.822],[4.192,133.803],[0.311,92.736],[-51.677,88.922],[6.918,46.599],[27.892,-4.912],[42.169,-90.511],[38.893,-67.047],[55.879,-52.225],[55.879,-52.214],[57.976,-33.579],[138.791,-26.718],[171.115,1.278]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":60.393,"s":[{"i":[[1.256,-14.508],[71.173,-6.66],[31.965,24.924],[0,0],[-35.34,52.999],[-9.605,21.072],[-23.639,7.81],[-5.495,-0.891],[3.917,-39.745],[23.847,-22.131],[16.912,-48.623],[-9.18,-14.639],[-23.837,-21.729],[-2.949,6.862],[-4.901,27.091],[17.681,4.227],[-28.801,37.93],[-20.776,34.618],[-25.49,16.332],[0.191,-4.72],[-9.283,-1.816],[0,0],[-12.4,-8.936],[-22.869,-2.02],[-11.526,-16.235]],"o":[[-6.66,76.813],[-71.184,6.66],[0,0],[0,0],[35.329,-53.01],[15.441,-33.874],[3.064,-1.012],[0,0],[-2.912,29.546],[-19.273,17.886],[-12.906,37.104],[7.395,11.792],[23.837,21.729],[2.938,-6.85],[2.972,-16.425],[-17.681,-4.227],[10.21,-13.447],[17.298,-28.823],[-2.13,4.677],[-0.365,9.023],[0,0.011],[0,0],[12.389,8.947],[8.339,0.736],[0.886,9.967]],"v":[[170.61,37.762],[67.337,182.418],[-85.178,158.537],[-105.472,55.32],[-86.804,-47.157],[2.673,-129.302],[29.286,-207.156],[45.79,-207.602],[22.917,-171.404],[-1.117,-102.704],[-88.934,-10.259],[-85.503,74.313],[-71.668,119.822],[4.192,133.803],[0.311,92.736],[-51.677,88.922],[6.918,46.599],[27.892,-4.912],[49.299,-77.15],[46.295,-66.564],[55.879,-52.225],[55.879,-52.214],[57.976,-33.579],[138.791,-26.718],[171.115,1.278]],"c":true}]},{"t":77,"s":[{"i":[[1.256,-14.508],[71.173,-6.66],[31.965,24.924],[0,0],[-35.34,52.999],[-5.561,22.48],[-21.796,12.03],[-5.566,0.135],[-3.46,-39.788],[19.369,-26.14],[16.912,-48.623],[-9.18,-14.639],[-23.837,-21.729],[-2.949,6.862],[-4.901,27.091],[17.681,4.227],[-28.801,37.93],[-20.776,34.618],[-22.051,20.742],[-0.673,-4.675],[-9.283,-1.816],[0,0],[-12.4,-8.936],[-22.869,-2.02],[-11.526,-16.235]],"o":[[-6.66,76.813],[-71.184,6.66],[0,0],[0,0],[35.329,-53.01],[8.947,-36.136],[2.825,-1.558],[0,0],[2.572,29.578],[-15.654,21.126],[-12.906,37.104],[7.395,11.792],[23.837,21.729],[2.938,-6.85],[2.972,-16.425],[-17.681,-4.227],[10.21,-13.447],[17.298,-28.823],[-1.233,4.989],[1.301,8.936],[0,0.011],[0,0],[12.389,8.947],[8.339,0.736],[0.886,9.967]],"v":[[170.61,37.762],[67.337,182.418],[-85.178,158.537],[-105.472,55.32],[-86.804,-47.157],[-13.254,-133.197],[-1.414,-214.618],[14.726,-218.092],[-1.098,-178.304],[-12.088,-106.356],[-88.934,-10.259],[-85.503,74.313],[-71.668,119.822],[4.192,133.803],[0.311,92.736],[-51.677,88.922],[6.918,46.599],[27.892,-4.912],[42.169,-90.511],[38.893,-67.047],[55.879,-52.225],[55.879,-52.214],[57.976,-33.579],[138.791,-26.718],[171.115,1.278]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.694117665291,0.223529413342,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[-5.897,-35.026],[2.399,3.24],[14.161,2.893],[16.784,4.507],[0,0],[0,0],[-0.011,0],[-1.177,-0.034],[-6.637,0.034],[-4.731,-0.157],[-1.424,-0.09],[-0.706,-0.045],[-0.011,0],[-1.435,-0.146]],"o":[[-1.603,-2.982],[-8.33,-11.223],[-18.724,-3.823],[-19.318,-5.18],[0,0],[0.011,0],[1.132,0.078],[5.886,0.235],[4.63,-0.022],[1.424,0.056],[0.706,0.034],[0.011,0],[1.446,0.09],[30.25,3.094]],"v":[[170.05,-7.22],[164.074,-16.548],[128.207,-32.895],[73.538,-36.719],[65.14,-51.092],[65.151,-51.092],[65.174,-51.092],[68.638,-50.924],[87.586,-50.823],[101.68,-50.678],[105.94,-50.476],[108.059,-50.341],[108.082,-50.341],[112.398,-49.982]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[-5.897,-35.026],[2.399,3.24],[14.233,2.363],[16.807,3.963],[0,0],[0,0],[-0.011,0],[-1.176,-0.058],[-6.634,-0.085],[-4.732,-0.098],[-1.425,-0.07],[-0.707,-0.035],[-0.011,0],[-1.437,-0.126]],"o":[[-1.603,-2.982],[-8.33,-11.223],[-17.744,-3.047],[-14.266,-3.775],[0,0],[0.011,0],[1.13,0.099],[5.879,0.34],[4.628,0.06],[1.424,0.036],[0.707,0.024],[0.011,0],[1.447,0.069],[30.283,2.665]],"v":[[170.316,-4.467],[164.074,-16.548],[127.09,-31.548],[74.115,-40.73],[64.885,-48.356],[64.896,-48.356],[64.918,-48.356],[68.378,-48.126],[87.314,-49.445],[101.492,-50.044],[105.754,-49.903],[107.874,-49.798],[107.896,-49.798],[112.216,-49.501]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[-5.897,-35.026],[2.399,3.24],[14.276,2.055],[16.821,3.646],[0,0],[0,0],[-0.011,-0.001],[-1.175,-0.073],[-6.633,-0.155],[-4.732,-0.064],[-1.425,-0.058],[-0.707,-0.029],[-0.011,0],[-1.438,-0.114]],"o":[[-1.603,-2.982],[-8.33,-11.223],[-17.172,-2.594],[-11.319,-2.955],[0,0],[0.011,0],[1.129,0.11],[5.874,0.402],[4.627,0.108],[1.424,0.024],[0.707,0.018],[0.011,0],[1.448,0.057],[30.302,2.414]],"v":[[170.472,-2.86],[164.074,-16.548],[125.605,-29.785],[74.452,-41.312],[64.54,-44.676],[64.552,-44.676],[64.574,-44.675],[68.031,-44.409],[87.155,-46.117],[101.382,-47.916],[105.645,-47.809],[107.766,-47.723],[107.788,-47.723],[112.11,-47.461]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[-5.897,-35.026],[2.399,3.24],[14.344,1.559],[16.743,-1.852],[0,0],[0,0],[-0.011,0.001],[-1.165,0.141],[-6.577,0.83],[-4.733,-0.009],[-1.426,-0.039],[-0.707,-0.02],[-0.011,0],[-1.439,-0.095]],"o":[[-1.603,-2.982],[-8.33,-11.223],[-16.254,-1.866],[-6.55,0.681],[0,0],[0.011,-0.001],[1.12,-0.132],[5.825,-0.707],[4.589,-0.579],[1.425,0.005],[0.707,0.008],[0.011,0],[1.448,0.038],[30.333,2.011]],"v":[[170.722,-0.279],[164.074,-16.548],[126.009,-29.462],[74.924,-36.269],[63.407,-34.958],[63.418,-34.959],[63.44,-34.962],[66.867,-35.375],[85.804,-37.662],[104.378,-39.648],[108.642,-39.599],[110.764,-39.54],[110.786,-39.541],[115.112,-39.337]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[-5.897,-35.026],[2.399,3.24],[14.39,1.222],[15.408,-4.982],[0,0],[0,0],[-0.011,0],[-1.169,-0.026],[-6.609,0.056],[-4.733,0.029],[-1.426,-0.026],[-0.708,-0.013],[-0.011,0],[-1.44,-0.082]],"o":[[-1.603,-2.982],[-8.33,-11.223],[-50.39,-2.149],[-3.361,0.096],[0,0],[0.011,0],[1.123,0.047],[5.847,0.128],[4.61,-0.039],[1.425,-0.008],[0.707,0.002],[0.011,-0.001],[1.449,0.025],[30.354,1.738]],"v":[[170.891,1.471],[164.074,-16.548],[123.789,-37.151],[75.335,-32.287],[63.939,-30.349],[63.95,-30.349],[63.972,-30.349],[67.412,-30.253],[87.734,-34.949],[95.251,-40.031],[99.516,-40.02],[101.638,-39.98],[101.661,-39.981],[105.989,-39.816]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[-5.897,-35.026],[2.399,3.24],[14.397,1.174],[16.832,1.39],[0,0],[0,0],[-0.011,-0.001],[-1.17,-0.05],[-6.613,-0.056],[-4.209,2.001],[-1.426,-0.024],[-0.708,-0.012],[-0.011,0],[-1.44,-0.08]],"o":[[-1.603,-2.982],[-8.33,-11.223],[-25.525,-6.755],[-2.9,0.011],[0,0],[0.011,0],[1.124,0.073],[5.85,0.249],[4.613,0.039],[1.287,-0.612],[0.707,0.001],[0.011,-0.001],[1.449,0.023],[30.357,1.699]],"v":[[170.915,1.724],[164.074,-16.548],[129.549,-36.295],[75.394,-28.849],[64.016,-29.682],[64.027,-29.682],[64.049,-29.682],[67.491,-29.512],[86.404,-29.191],[101.436,-36.926],[104.295,-37.467],[104.23,-37.587],[104.252,-37.588],[108.581,-39.303]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[-5.897,-35.026],[2.399,3.24],[14.403,1.128],[16.843,1.777],[0,0],[0,0],[-0.011,-0.001],[-1.17,-0.073],[-6.617,-0.161],[-4.377,1.375],[-1.426,-0.022],[-0.708,-0.011],[-0.011,0],[-1.44,-0.079]],"o":[[-1.603,-2.982],[-8.33,-11.223],[-15.456,-1.235],[-2.465,-0.069],[0,0],[0.011,0],[1.124,0.098],[5.853,0.363],[4.616,0.112],[1.331,-0.42],[0.707,0],[0.011,-0.001],[1.449,0.021],[30.36,1.661]],"v":[[170.939,1.962],[164.074,-16.548],[129.971,-32.422],[75.45,-27.965],[64.088,-29.053],[64.099,-29.053],[64.122,-29.052],[67.565,-28.814],[86.476,-28.182],[107.259,-30.829],[108.147,-38.075],[108.785,-38.146],[108.807,-38.148],[113.136,-39.266]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[-5.897,-35.026],[2.399,3.24],[14.409,1.086],[16.852,2.129],[0,0],[0,0],[-0.011,-0.001],[-1.171,-0.093],[-6.621,-0.257],[-4.531,0.804],[-1.427,-0.021],[-0.708,-0.011],[-0.011,0],[-1.44,-0.077]],"o":[[-1.603,-2.982],[-8.33,-11.223],[-15.379,-1.173],[-2.068,-0.142],[0,0],[0.011,0],[1.125,0.12],[5.856,0.467],[4.619,0.18],[1.372,-0.246],[0.707,-0.001],[0.011,-0.001],[1.449,0.02],[30.363,1.627]],"v":[[170.96,2.18],[164.074,-16.548],[132.074,-30.654],[75.501,-27.158],[64.154,-28.48],[64.166,-28.479],[64.188,-28.478],[67.633,-28.177],[86.541,-27.261],[105.445,-25.27],[112.324,-29.398],[113.601,-29.427],[113.624,-29.428],[114.828,-39.612]],"c":true}]},{"t":29,"s":[{"i":[[-5.897,-35.026],[2.399,3.24],[14.414,1.051],[16.86,2.425],[0,0],[0,0],[-0.011,-0.001],[-1.171,-0.111],[-6.625,-0.338],[-4.66,0.323],[-1.427,-0.019],[-0.708,-0.01],[-0.011,0],[-1.44,-0.076]],"o":[[-1.603,-2.982],[-8.33,-11.223],[-15.314,-1.122],[-1.735,-0.203],[0,0],[0.011,0.001],[1.125,0.139],[5.859,0.555],[4.621,0.236],[1.406,-0.099],[0.707,-0.001],[0.011,-0.001],[1.449,0.018],[30.365,1.599]],"v":[[170.977,2.363],[164.074,-16.548],[128.021,-39.146],[75.544,-26.48],[64.21,-27.998],[64.221,-27.997],[64.244,-27.996],[67.69,-27.641],[86.596,-26.487],[100.17,-32.938],[107.571,-32.724],[109.387,-32.716],[109.409,-32.717],[118.779,-38.794]],"c":true}],"h":1},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":30,"s":[{"i":[[-5.897,-35.026],[2.399,3.24],[14.416,1.031],[16.865,2.594],[0,0],[0,0],[-0.011,-0.001],[-1.171,-0.121],[-6.626,-0.384],[-4.734,0.05],[-1.427,-0.019],[-0.708,-0.01],[-0.011,0],[-1.441,-0.075]],"o":[[-1.603,-2.982],[-8.33,-11.223],[-15.277,-1.092],[-1.545,-0.238],[0,0],[0.011,0.001],[1.125,0.149],[5.86,0.604],[4.623,0.268],[1.425,-0.015],[0.707,-0.002],[0.011,-0.001],[1.449,0.018],[30.366,1.582]],"v":[[170.987,2.467],[164.074,-16.548],[130.863,-38.833],[75.569,-26.094],[64.242,-27.723],[64.253,-27.722],[64.275,-27.721],[67.723,-27.336],[86.627,-26.046],[103.05,-17.93],[107.316,-17.941],[109.439,-17.912],[109.461,-17.913],[113.79,-17.77]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":35.398,"s":[{"i":[[-5.897,-35.026],[2.399,3.24],[14.416,1.031],[16.865,2.594],[0,0],[0,0],[-0.011,-0.001],[-1.171,-0.121],[-6.626,-0.384],[-4.734,0.05],[-1.427,-0.019],[-0.708,-0.01],[-0.011,0],[-1.441,-0.075]],"o":[[-1.603,-2.982],[-8.33,-11.223],[-15.277,-1.092],[-1.545,-0.238],[0,0],[0.011,0.001],[1.125,0.149],[5.86,0.604],[4.623,0.268],[1.425,-0.015],[0.707,-0.002],[0.011,-0.001],[1.449,0.018],[30.366,1.582]],"v":[[170.987,2.467],[164.074,-16.548],[130.863,-38.833],[75.569,-26.094],[64.242,-27.723],[64.253,-27.722],[64.275,-27.721],[67.723,-27.336],[86.627,-26.046],[103.05,-17.93],[107.316,-17.941],[109.439,-17.912],[109.461,-17.913],[113.79,-17.77]],"c":true}]},{"i":{"x":0.833,"y":0.808},"o":{"x":0.167,"y":0.192},"t":36.266,"s":[{"i":[[-5.897,-35.026],[2.399,3.24],[14.414,1.051],[16.86,2.425],[0,0],[0,0],[-0.011,-0.001],[-1.171,-0.111],[-6.625,-0.338],[-4.66,0.323],[-1.427,-0.019],[-0.708,-0.01],[-0.011,0],[-1.44,-0.076]],"o":[[-1.603,-2.982],[-8.33,-11.223],[-15.314,-1.122],[-1.735,-0.203],[0,0],[0.011,0.001],[1.125,0.139],[5.859,0.555],[4.621,0.236],[1.406,-0.099],[0.707,-0.001],[0.011,-0.001],[1.449,0.018],[30.365,1.599]],"v":[[170.977,2.363],[164.074,-16.548],[128.021,-39.146],[75.544,-26.48],[64.21,-27.998],[64.221,-27.997],[64.244,-27.996],[67.69,-27.641],[86.596,-26.487],[100.17,-32.938],[107.571,-32.724],[109.387,-32.716],[109.409,-32.717],[118.779,-38.794]],"c":true}]},{"i":{"x":0.833,"y":0.808},"o":{"x":0.167,"y":0.192},"t":37.133,"s":[{"i":[[-5.897,-35.026],[2.399,3.24],[14.409,1.086],[16.852,2.129],[0,0],[0,0],[-0.011,-0.001],[-1.171,-0.093],[-6.621,-0.257],[-4.531,0.804],[-1.427,-0.021],[-0.708,-0.011],[-0.011,0],[-1.44,-0.077]],"o":[[-1.603,-2.982],[-8.33,-11.223],[-15.379,-1.173],[-2.068,-0.142],[0,0],[0.011,0],[1.125,0.12],[5.856,0.467],[4.619,0.18],[1.372,-0.246],[0.707,-0.001],[0.011,-0.001],[1.449,0.02],[30.363,1.627]],"v":[[170.96,2.18],[164.074,-16.548],[132.074,-30.654],[75.501,-27.158],[64.154,-28.48],[64.166,-28.479],[64.188,-28.478],[67.633,-28.177],[86.541,-27.261],[105.445,-25.27],[112.324,-29.398],[113.601,-29.427],[113.624,-29.428],[114.828,-39.612]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.192},"t":38,"s":[{"i":[[-5.897,-35.026],[2.399,3.24],[14.403,1.128],[16.843,1.777],[0,0],[0,0],[-0.011,-0.001],[-1.17,-0.073],[-6.617,-0.161],[-4.377,1.375],[-1.426,-0.022],[-0.708,-0.011],[-0.011,0],[-1.44,-0.079]],"o":[[-1.603,-2.982],[-8.33,-11.223],[-15.456,-1.235],[-2.465,-0.069],[0,0],[0.011,0],[1.124,0.098],[5.853,0.363],[4.616,0.112],[1.331,-0.42],[0.707,0],[0.011,-0.001],[1.449,0.021],[30.36,1.661]],"v":[[170.939,1.962],[164.074,-16.548],[129.971,-32.422],[75.45,-27.965],[64.088,-29.053],[64.099,-29.053],[64.122,-29.052],[67.565,-28.814],[86.476,-28.182],[107.259,-30.829],[108.147,-38.075],[108.785,-38.146],[108.807,-38.148],[113.136,-39.266]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38.869,"s":[{"i":[[-5.897,-35.026],[2.399,3.24],[14.397,1.174],[16.832,1.39],[0,0],[0,0],[-0.011,-0.001],[-1.17,-0.05],[-6.613,-0.056],[-4.209,2.001],[-1.426,-0.024],[-0.708,-0.012],[-0.011,0],[-1.44,-0.08]],"o":[[-1.603,-2.982],[-8.33,-11.223],[-25.525,-6.755],[-2.9,0.011],[0,0],[0.011,0],[1.124,0.073],[5.85,0.249],[4.613,0.039],[1.287,-0.612],[0.707,0.001],[0.011,-0.001],[1.449,0.023],[30.357,1.699]],"v":[[170.915,1.724],[164.074,-16.548],[129.549,-36.295],[75.394,-28.849],[64.016,-29.682],[64.027,-29.682],[64.049,-29.682],[67.491,-29.512],[86.404,-29.191],[101.436,-36.926],[104.295,-37.467],[104.23,-37.587],[104.252,-37.588],[108.581,-39.303]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":39.736,"s":[{"i":[[-5.897,-35.026],[2.399,3.24],[14.39,1.222],[15.408,-4.982],[0,0],[0,0],[-0.011,0],[-1.169,-0.026],[-6.609,0.056],[-4.733,0.029],[-1.426,-0.026],[-0.708,-0.013],[-0.011,0],[-1.44,-0.082]],"o":[[-1.603,-2.982],[-8.33,-11.223],[-50.39,-2.149],[-3.361,0.096],[0,0],[0.011,0],[1.123,0.047],[5.847,0.128],[4.61,-0.039],[1.425,-0.008],[0.707,0.002],[0.011,-0.001],[1.449,0.025],[30.354,1.738]],"v":[[170.891,1.471],[164.074,-16.548],[123.789,-37.151],[75.335,-32.287],[63.939,-30.349],[63.95,-30.349],[63.972,-30.349],[67.412,-30.253],[87.734,-34.949],[95.251,-40.031],[99.516,-40.02],[101.638,-39.98],[101.661,-39.981],[105.989,-39.816]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":46.676,"s":[{"i":[[-5.897,-35.026],[2.399,3.24],[14.161,2.893],[16.784,4.507],[0,0],[0,0],[-0.011,0],[-1.177,-0.034],[-6.637,0.034],[-4.731,-0.157],[-1.424,-0.09],[-0.706,-0.045],[-0.011,0],[-1.435,-0.146]],"o":[[-1.603,-2.982],[-8.33,-11.223],[-18.724,-3.823],[-19.318,-5.18],[0,0],[0.011,0],[1.132,0.078],[5.886,0.235],[4.63,-0.022],[1.424,0.056],[0.706,0.034],[0.011,0],[1.446,0.09],[30.25,3.094]],"v":[[170.05,-7.22],[164.074,-16.548],[128.207,-32.895],[73.538,-36.719],[65.14,-51.092],[65.151,-51.092],[65.174,-51.092],[68.638,-50.924],[87.586,-50.823],[101.68,-50.678],[105.94,-50.476],[108.059,-50.341],[108.082,-50.341],[112.398,-49.982]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":51.881,"s":[{"i":[[-5.897,-35.026],[2.399,3.24],[14.161,2.893],[16.784,4.507],[0,0],[0,0],[-0.011,0],[-1.177,-0.034],[-6.637,0.034],[-4.731,-0.157],[-1.424,-0.09],[-0.706,-0.045],[-0.011,0],[-1.435,-0.146]],"o":[[-1.603,-2.982],[-8.33,-11.223],[-18.724,-3.823],[-19.318,-5.18],[0,0],[0.011,0],[1.132,0.078],[5.886,0.235],[4.63,-0.022],[1.424,0.056],[0.706,0.034],[0.011,0],[1.446,0.09],[30.25,3.094]],"v":[[170.05,-7.22],[164.074,-16.548],[128.207,-32.895],[73.538,-36.719],[65.14,-51.092],[65.151,-51.092],[65.174,-51.092],[68.638,-50.924],[87.586,-50.823],[101.68,-50.678],[105.94,-50.476],[108.059,-50.341],[108.082,-50.341],[112.398,-49.982]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":55.775,"s":[{"i":[[-5.897,-35.026],[2.399,3.24],[14.161,2.893],[16.784,4.507],[0,0],[0,0],[-0.011,0],[-1.177,-0.034],[-6.637,0.034],[-4.731,-0.157],[-1.424,-0.09],[-0.706,-0.045],[-0.011,0],[-1.435,-0.146]],"o":[[-1.603,-2.982],[-8.33,-11.223],[-18.724,-3.823],[-19.318,-5.18],[0,0],[0.011,0],[1.132,0.078],[5.886,0.235],[4.63,-0.022],[1.424,0.056],[0.706,0.034],[0.011,0],[1.446,0.09],[30.25,3.094]],"v":[[170.05,-7.22],[164.074,-16.548],[128.207,-32.895],[73.538,-36.719],[65.14,-51.092],[65.151,-51.092],[65.174,-51.092],[68.638,-50.924],[87.586,-50.823],[101.68,-50.678],[105.94,-50.476],[108.059,-50.341],[108.082,-50.341],[112.398,-49.982]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":60.393,"s":[{"i":[[-5.897,-35.026],[2.399,3.24],[14.161,2.893],[16.784,4.507],[0,0],[0,0],[-0.011,0],[-1.177,-0.034],[-6.637,0.034],[-4.731,-0.157],[-1.424,-0.09],[-0.706,-0.045],[-0.011,0],[-1.435,-0.146]],"o":[[-1.603,-2.982],[-8.33,-11.223],[-18.724,-3.823],[-19.318,-5.18],[0,0],[0.011,0],[1.132,0.078],[5.886,0.235],[4.63,-0.022],[1.424,0.056],[0.706,0.034],[0.011,0],[1.446,0.09],[30.25,3.094]],"v":[[170.05,-7.22],[164.074,-16.548],[128.207,-32.895],[73.538,-36.719],[65.14,-51.092],[65.151,-51.092],[65.174,-51.092],[68.638,-50.924],[87.586,-50.823],[101.68,-50.678],[105.94,-50.476],[108.059,-50.341],[108.082,-50.341],[112.398,-49.982]],"c":true}]},{"t":77,"s":[{"i":[[-5.897,-35.026],[2.399,3.24],[14.161,2.893],[16.784,4.507],[0,0],[0,0],[-0.011,0],[-1.177,-0.034],[-6.637,0.034],[-4.731,-0.157],[-1.424,-0.09],[-0.706,-0.045],[-0.011,0],[-1.435,-0.146]],"o":[[-1.603,-2.982],[-8.33,-11.223],[-18.724,-3.823],[-19.318,-5.18],[0,0],[0.011,0],[1.132,0.078],[5.886,0.235],[4.63,-0.022],[1.424,0.056],[0.706,0.034],[0.011,0],[1.446,0.09],[30.25,3.094]],"v":[[170.05,-7.22],[164.074,-16.548],[128.207,-32.895],[73.538,-36.719],[65.14,-51.092],[65.151,-51.092],[65.174,-51.092],[68.638,-50.924],[87.586,-50.823],[101.68,-50.678],[105.94,-50.476],[108.059,-50.341],[108.082,-50.341],[112.398,-49.982]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.874509811401,0.474509805441,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-35.335,53.002],[-5.567,22.479],[-21.793,12.034],[-3.48,-42.21],[-3.346,-23.044],[-32.858,-3.356],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[8.95,-36.141],[24.555,-13.559],[3.528,42.788],[3.346,23.044],[40.114,4.097],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[-13.252,-133.194],[-1.418,-214.617],[57.831,-158.315],[38.895,-67.048],[112.397,-49.978],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[-35.335,53.002],[-13.167,17.34],[-24.248,3.318],[11.988,-36.978],[4.187,-15.792],[-32.894,-2.889],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[21.17,-27.879],[27.32,-3.739],[-12.152,37.484],[-4.187,15.792],[40.158,3.527],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[9.789,-127.255],[49.868,-192.704],[83.798,-126.069],[42.674,-55.901],[112.216,-49.497],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[0,0],[-35.335,53.002],[-17.602,14.342],[-25.679,-1.767],[21.013,-33.924],[8.581,-11.56],[-32.915,-2.617],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[28.3,-23.058],[28.933,1.991],[-21.301,34.389],[-8.581,11.56],[40.184,3.194],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[23.233,-123.789],[79.793,-179.918],[98.949,-107.254],[44.88,-49.397],[112.11,-47.457],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[-35.335,53.002],[-20.294,7.491],[-21.512,-9.687],[30.22,-24.21],[15.673,-6.821],[-32.949,-2.179],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[32.627,-12.044],[24.238,10.914],[-30.634,24.542],[-15.673,6.821],[40.225,2.66],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[44.302,-110.709],[113.095,-143.907],[103.692,-71.858],[48.488,-35.06],[115.111,-39.332],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,0],[-35.335,53.002],[-22.118,2.847],[-18.688,-15.055],[36.461,-17.625],[20.479,-3.608],[-22.042,7.074],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[35.56,-4.578],[21.056,16.963],[-36.961,17.867],[-20.48,3.608],[40.312,0.73],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[58.584,-101.844],[135.667,-119.498],[106.907,-47.866],[50.933,-25.342],[105.988,-39.812],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[-35.335,53.002],[-22.382,2.176],[-18.279,-15.832],[37.364,-16.673],[21.376,-1.156],[-31.431,12.03],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[35.985,-3.498],[20.595,17.838],[-37.876,16.901],[-7.732,0.418],[40.301,1.076],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[60.649,-100.562],[138.932,-115.968],[107.372,-44.396],[51.287,-23.937],[108.58,-39.299],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[0,0],[-35.335,53.002],[-22.631,1.542],[-17.894,-16.564],[38.215,-15.775],[21.967,-1.356],[-31.455,13.087],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[36.385,-2.48],[20.161,18.663],[-38.739,15.991],[-12.702,0.855],[40.29,1.402],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[62.598,-99.352],[142.011,-112.638],[107.811,-41.123],[51.621,-22.611],[113.135,-39.262],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[-35.335,53.002],[-22.858,0.965],[-17.543,-17.232],[38.991,-14.956],[22.506,-1.538],[-34.396,16.245],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[36.75,-1.551],[19.765,19.415],[-39.526,15.161],[-17.234,1.253],[40.281,1.699],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[64.374,-98.249],[144.819,-109.602],[108.21,-38.139],[51.925,-21.402],[114.827,-39.608],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":true}]},{"t":29,"s":[{"i":[[0,0],[-35.335,53.002],[-23.049,0.479],[-17.247,-17.793],[39.644,-14.267],[22.96,-1.691],[-31.16,19.021],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[37.057,-0.77],[19.432,20.048],[-40.188,14.462],[-21.046,1.587],[40.273,1.949],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[65.868,-97.322],[147.181,-107.048],[108.547,-35.628],[52.181,-20.386],[118.778,-38.79],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":true}],"h":1},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":30,"s":[{"i":[[0,0],[-35.335,53.002],[-23.157,0.202],[-17.079,-18.113],[40.016,-13.874],[23.218,-1.778],[-32.985,-1.713],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[37.231,-0.325],[19.243,20.408],[-40.565,14.064],[-23.218,1.778],[40.269,2.092],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[66.72,-96.793],[148.526,-105.593],[108.739,-34.198],[52.327,-19.806],[113.79,-17.766],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":35.398,"s":[{"i":[[0,0],[-35.335,53.002],[-23.157,0.202],[-17.079,-18.113],[40.016,-13.874],[23.218,-1.778],[-32.985,-1.713],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[37.231,-0.325],[19.243,20.408],[-40.565,14.064],[-23.218,1.778],[40.269,2.092],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[66.72,-96.793],[148.526,-105.593],[108.739,-34.198],[52.327,-19.806],[113.79,-17.766],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":true}]},{"i":{"x":0.833,"y":0.808},"o":{"x":0.167,"y":0.192},"t":36.266,"s":[{"i":[[0,0],[-35.335,53.002],[-23.049,0.479],[-17.247,-17.793],[39.644,-14.267],[22.96,-1.691],[-31.16,19.021],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[37.057,-0.77],[19.432,20.048],[-40.188,14.462],[-21.046,1.587],[40.273,1.949],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[65.868,-97.322],[147.181,-107.048],[108.547,-35.628],[52.181,-20.386],[118.778,-38.79],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":true}]},{"i":{"x":0.833,"y":0.808},"o":{"x":0.167,"y":0.192},"t":37.133,"s":[{"i":[[0,0],[-35.335,53.002],[-22.858,0.965],[-17.543,-17.232],[38.991,-14.956],[22.506,-1.538],[-34.396,16.245],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[36.75,-1.551],[19.765,19.415],[-39.526,15.161],[-17.234,1.253],[40.281,1.699],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[64.374,-98.249],[144.819,-109.602],[108.21,-38.139],[51.925,-21.402],[114.827,-39.608],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.192},"t":38,"s":[{"i":[[0,0],[-35.335,53.002],[-22.631,1.542],[-17.894,-16.564],[38.215,-15.775],[21.967,-1.356],[-31.455,13.087],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[36.385,-2.48],[20.161,18.663],[-38.739,15.991],[-12.702,0.855],[40.29,1.402],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[62.598,-99.352],[142.011,-112.638],[107.811,-41.123],[51.621,-22.611],[113.135,-39.262],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38.869,"s":[{"i":[[0,0],[-35.335,53.002],[-22.382,2.176],[-18.279,-15.832],[37.364,-16.673],[21.376,-1.156],[-31.431,12.03],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[35.985,-3.498],[20.595,17.838],[-37.876,16.901],[-7.732,0.418],[40.301,1.076],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[60.649,-100.562],[138.932,-115.968],[107.372,-44.396],[51.287,-23.937],[108.58,-39.299],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":39.736,"s":[{"i":[[0,0],[-35.335,53.002],[-22.118,2.847],[-18.688,-15.055],[36.461,-17.625],[20.479,-3.608],[-22.042,7.074],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[35.56,-4.578],[21.056,16.963],[-36.961,17.867],[-20.48,3.608],[40.312,0.73],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[58.584,-101.844],[135.667,-119.498],[106.907,-47.866],[50.933,-25.342],[105.988,-39.812],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":46.676,"s":[{"i":[[0,0],[-35.335,53.002],[-5.567,22.479],[-21.793,12.034],[-3.48,-42.21],[-3.346,-23.044],[-32.858,-3.356],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[8.95,-36.141],[24.555,-13.559],[3.528,42.788],[3.346,23.044],[40.114,4.097],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[-13.252,-133.194],[-1.418,-214.617],[57.831,-158.315],[38.895,-67.048],[112.397,-49.978],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":51.881,"s":[{"i":[[0,0],[-35.335,53.002],[2.736,22.996],[-16.135,18.959],[-18.171,-38.257],[-3.346,-23.044],[-32.858,-3.356],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[-4.398,-36.972],[18.179,-21.361],[18.42,38.781],[3.346,23.044],[40.114,4.097],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[-36.76,-126.359],[-54.462,-206.711],[20.859,-174.977],[31.082,-67.361],[112.397,-49.978],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":55.775,"s":[{"i":[[0,0],[-35.335,53.002],[-5.567,22.479],[-21.793,12.034],[-3.48,-42.21],[-3.346,-23.044],[-32.858,-3.356],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[8.95,-36.141],[24.555,-13.559],[3.528,42.788],[3.346,23.044],[40.114,4.097],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[-13.252,-133.194],[-1.418,-214.617],[57.831,-158.315],[38.895,-67.048],[112.397,-49.978],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":60.393,"s":[{"i":[[0,0],[-35.335,53.002],[-9.606,21.072],[-23.635,7.821],[4.343,-42.13],[0.95,-23.267],[-32.858,-3.356],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[15.444,-33.878],[26.63,-8.811],[-4.402,42.707],[-0.95,23.267],[40.114,4.097],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[2.674,-129.298],[29.282,-207.156],[77.165,-140.917],[46.297,-66.565],[112.397,-49.978],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":true}]},{"t":77,"s":[{"i":[[0,0],[-35.335,53.002],[-5.567,22.479],[-21.793,12.034],[-3.48,-42.21],[-3.346,-23.044],[-32.858,-3.356],[6.657,-76.814],[71.181,-6.657],[31.957,24.914]],"o":[[0,0],[35.335,-53.002],[8.95,-36.141],[24.555,-13.559],[3.528,42.788],[3.346,23.044],[40.114,4.097],[-6.657,76.814],[-71.181,6.657],[0,0]],"v":[[-105.471,55.314],[-86.808,-47.162],[-13.252,-133.194],[-1.418,-214.617],[57.831,-158.315],[38.895,-67.048],[112.397,-49.978],[170.605,37.761],[67.333,182.416],[-85.175,158.542]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.819607853889,0.250980407,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":3,"parent":7,"sr":1,"ks":{"o":{"a":0,"k":0},"r":{"a":1,"k":[{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.33],"y":[0]},"t":21,"s":[17.203]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.67],"y":[0]},"t":45,"s":[-20]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":58,"s":[5]},{"t":81,"s":[0]}]},"p":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[-287.188,148.438,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":21,"s":[-287.188,179.688,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0,"y":1},"o":{"x":0.67,"y":0},"t":45,"s":[-309.688,117.188,0],"to":[0,0,0],"ti":[0,0,0]},{"t":69,"s":[-287.188,148.438,0]}]},"s":{"a":0,"k":[125,125,100]}},"ao":0,"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":3,"parent":8,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":0,"k":[100,-91,0]},"s":{"a":0,"k":[80,80,100]}},"ao":0,"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":3,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":0,"k":[198,332,0]}},"ao":0,"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"parent":6,"sr":1,"ks":{"p":{"a":0,"k":[26.816,0.469,0]},"a":{"a":0,"k":[-162.347,76.575,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[6.631,3.364],[7.496,-10.379],[3.171,-19.028],[-7.348,-7.961],[-6.631,7.208],[2.165,18.654]],"o":[[-3.331,-1.69],[-7.496,10.379],[-3.171,19.028],[6.919,7.496],[6.631,-7.208],[-3.748,-32.294]],"v":[[-122.732,-5.303],[-150.761,0.478],[-168.06,42.859],[-164.889,92.447],[-117.606,92.447],[-121.643,44.592]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":12,"s":[{"i":[[7.227,1.747],[7.496,-10.379],[3.171,-19.028],[-7.348,-7.961],[-6.631,7.208],[6.4,17.655]],"o":[[-3.63,-0.878],[-7.496,10.379],[-3.171,19.028],[6.919,7.496],[6.631,-7.208],[-11.081,-30.564]],"v":[[-143.994,-3.752],[-150.761,0.478],[-168.06,42.859],[-164.889,92.447],[-117.606,92.447],[-131.449,44.553]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":27,"s":[{"i":[[6.069,4.296],[7.496,-10.379],[3.171,-19.028],[-7.348,-7.961],[-6.631,7.208],[-0.582,18.77]],"o":[[-3.049,-2.158],[-7.496,10.379],[-3.171,19.028],[6.919,7.496],[6.631,-7.208],[1.007,-32.495]],"v":[[-111.926,-4.259],[-150.761,0.478],[-168.06,42.859],[-164.889,92.447],[-117.606,92.447],[-118.134,45.26]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.67,"y":0},"t":47.266,"s":[{"i":[[7.227,1.747],[7.496,-10.379],[3.171,-19.028],[-7.348,-7.961],[-6.631,7.208],[6.4,17.655]],"o":[[-3.63,-0.878],[-7.496,10.379],[-3.171,19.028],[6.919,7.496],[6.631,-7.208],[-11.081,-30.564]],"v":[[-143.994,-3.752],[-150.761,0.478],[-168.06,42.859],[-164.889,92.447],[-117.606,92.447],[-131.449,44.553]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.333,"y":0},"t":58,"s":[{"i":[[6.631,3.364],[7.496,-10.379],[3.171,-19.028],[-7.348,-7.961],[-6.631,7.208],[2.165,18.654]],"o":[[-3.331,-1.69],[-7.496,10.379],[-3.171,19.028],[6.919,7.496],[6.631,-7.208],[-3.748,-32.294]],"v":[[-122.732,-5.303],[-150.761,0.478],[-168.06,42.859],[-164.889,92.447],[-117.606,92.447],[-121.643,44.592]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.67,"y":0},"t":86,"s":[{"i":[[6.631,3.364],[7.496,-10.379],[3.171,-19.028],[-7.348,-7.961],[-6.631,7.208],[2.165,18.654]],"o":[[-3.331,-1.69],[-7.496,10.379],[-3.171,19.028],[6.919,7.496],[6.631,-7.208],[-3.748,-32.294]],"v":[[-122.732,-5.303],[-150.761,0.478],[-168.06,42.859],[-164.889,92.447],[-117.606,92.447],[-121.643,44.592]],"c":true}]},{"t":180,"s":[{"i":[[6.631,3.364],[7.496,-10.379],[3.171,-19.028],[-7.348,-7.961],[-6.631,7.208],[2.165,18.654]],"o":[[-3.331,-1.69],[-7.496,10.379],[-3.171,19.028],[6.919,7.496],[6.631,-7.208],[-3.748,-32.294]],"v":[[-122.732,-5.303],[-150.761,0.478],[-168.06,42.859],[-164.889,92.447],[-117.606,92.447],[-121.643,44.592]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.819607853889,0.250980407,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[95.277,-43.87],[39.46,3.414],[-16.728,-58.72],[-21.773,5.469],[-8.406,-1.418]],"o":[[0,0],[-32.154,-2.782],[12.203,42.836],[12.25,-3.077],[65.95,11.123]],"v":[[-92.414,-38.03],[-145.147,-21.773],[-182.985,111.844],[-123.485,163.981],[-85.175,158.542]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":12,"s":[{"i":[[95.277,-43.87],[39.46,3.414],[-16.728,-58.72],[-21.773,5.469],[-8.406,-1.418]],"o":[[0,0],[-32.154,-2.782],[12.203,42.836],[12.25,-3.077],[65.95,11.123]],"v":[[-92.414,-38.03],[-145.147,-21.773],[-182.985,111.844],[-123.485,163.981],[-57.506,156.96]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":27,"s":[{"i":[[95.277,-43.87],[39.46,3.414],[-16.728,-58.72],[-21.773,5.469],[-8.406,-1.418]],"o":[[0,0],[-32.154,-2.782],[12.203,42.836],[12.25,-3.077],[65.95,11.123]],"v":[[-63.434,-30.637],[-145.147,-21.773],[-182.985,111.844],[-123.485,163.981],[-85.175,158.542]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.67,"y":0},"t":47.266,"s":[{"i":[[95.277,-43.87],[39.46,3.414],[-16.728,-58.72],[-21.773,5.469],[-8.406,-1.418]],"o":[[0,0],[-32.154,-2.782],[12.203,42.836],[12.25,-3.077],[65.95,11.123]],"v":[[-92.414,-38.03],[-145.147,-21.773],[-182.985,111.844],[-123.485,163.981],[-57.506,156.96]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.333,"y":0},"t":58,"s":[{"i":[[95.277,-43.87],[39.46,3.414],[-16.728,-58.72],[-21.773,5.469],[-8.406,-1.418]],"o":[[0,0],[-32.154,-2.782],[12.203,42.836],[12.25,-3.077],[65.95,11.123]],"v":[[-69.3,-31.227],[-145.147,-21.773],[-182.985,111.844],[-123.485,163.981],[-85.175,158.542]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.67,"y":0},"t":86,"s":[{"i":[[95.277,-43.87],[39.46,3.414],[-16.728,-58.72],[-21.773,5.469],[-8.406,-1.418]],"o":[[0,0],[-32.154,-2.782],[12.203,42.836],[12.25,-3.077],[65.95,11.123]],"v":[[-84.838,-37.381],[-145.147,-21.773],[-182.985,111.844],[-123.485,163.981],[-85.175,158.542]],"c":true}]},{"t":180,"s":[{"i":[[95.277,-43.87],[39.46,3.414],[-16.728,-58.72],[-21.773,5.469],[-8.406,-1.418]],"o":[[0,0],[-32.154,-2.782],[12.203,42.836],[12.25,-3.077],[65.95,11.123]],"v":[[-92.414,-38.03],[-145.147,-21.773],[-182.985,111.844],[-123.485,163.981],[-85.175,158.542]],"c":true}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.96862745285,0.494117647409,0.254901975393,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[95.277,-43.87],[39.46,3.414],[-16.728,-58.72],[-21.773,5.469],[-8.406,-1.418]],"o":[[0,0],[-32.154,-2.782],[12.203,42.836],[12.25,-3.077],[65.95,11.123]],"v":[[-92.414,-38.03],[-145.147,-21.773],[-182.985,111.844],[-123.485,163.981],[-85.175,158.542]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":12,"s":[{"i":[[95.277,-43.87],[39.46,3.414],[-16.728,-58.72],[-21.773,5.469],[-8.406,-1.418]],"o":[[0,0],[-32.154,-2.782],[12.203,42.836],[12.25,-3.077],[65.95,11.123]],"v":[[-92.414,-38.03],[-145.147,-21.773],[-182.985,111.844],[-123.485,163.981],[-57.506,156.96]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":27,"s":[{"i":[[95.277,-43.87],[39.46,3.414],[-16.728,-58.72],[-21.773,5.469],[-8.406,-1.418]],"o":[[0,0],[-32.154,-2.782],[12.203,42.836],[12.25,-3.077],[65.95,11.123]],"v":[[-63.434,-30.637],[-145.147,-21.773],[-182.985,111.844],[-123.485,163.981],[-85.175,158.542]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.67,"y":0},"t":47.266,"s":[{"i":[[95.277,-43.87],[39.46,3.414],[-16.728,-58.72],[-21.773,5.469],[-8.406,-1.418]],"o":[[0,0],[-32.154,-2.782],[12.203,42.836],[12.25,-3.077],[65.95,11.123]],"v":[[-92.414,-38.03],[-145.147,-21.773],[-182.985,111.844],[-123.485,163.981],[-57.506,156.96]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.333,"y":0},"t":58,"s":[{"i":[[95.277,-43.87],[39.46,3.414],[-16.728,-58.72],[-21.773,5.469],[-8.406,-1.418]],"o":[[0,0],[-32.154,-2.782],[12.203,42.836],[12.25,-3.077],[65.95,11.123]],"v":[[-69.3,-31.227],[-145.147,-21.773],[-182.985,111.844],[-123.485,163.981],[-85.175,158.542]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.67,"y":0},"t":86,"s":[{"i":[[95.277,-43.87],[39.46,3.414],[-16.728,-58.72],[-21.773,5.469],[-8.406,-1.418]],"o":[[0,0],[-32.154,-2.782],[12.203,42.836],[12.25,-3.077],[65.95,11.123]],"v":[[-84.838,-37.381],[-145.147,-21.773],[-182.985,111.844],[-123.485,163.981],[-85.175,158.542]],"c":true}]},{"t":180,"s":[{"i":[[95.277,-43.87],[39.46,3.414],[-16.728,-58.72],[-21.773,5.469],[-8.406,-1.418]],"o":[[0,0],[-32.154,-2.782],[12.203,42.836],[12.25,-3.077],[65.95,11.123]],"v":[[-92.414,-38.03],[-145.147,-21.773],[-182.985,111.844],[-123.485,163.981],[-85.175,158.542]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.694117665291,0.223529413342,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":120,"st":0,"bm":0}]} \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/wallet_sync.tgs b/TMessagesProj/src/main/res/raw/wallet_sync.tgs deleted file mode 100644 index 5998bbb02..000000000 --- a/TMessagesProj/src/main/res/raw/wallet_sync.tgs +++ /dev/null @@ -1 +0,0 @@ -{"tgs":1,"v":"5.5.2","fr":60,"ip":0,"op":180,"w":512,"h":512,"nm":"02","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":3,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":0,"k":[256,256,0]},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":131,"s":[100,100,100]},{"i":{"x":[0.34,0.34,0.34],"y":[1,1,1]},"o":{"x":[0.66,0.66,0.66],"y":[0,0,0]},"t":144,"s":[88,88,100]},{"t":160,"s":[100,100,100]}]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"parent":4,"sr":1,"ks":{"r":{"a":0,"k":180},"p":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":130,"s":[0,-0.75,0],"to":[0,0,0],"ti":[0,0,0]},{"t":160,"s":[0,0,0]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":130,"s":[{"i":[[0,0],[79.026,55.926],[15.003,-8.209],[17,-61]],"o":[[0,0],[-16.25,-11.5],[-13.25,7.25],[-21.611,77.545]],"v":[[101.5,169.5],[37.25,20.75],[-29,20.5],[-108.75,118.25]],"c":false}]},{"t":160,"s":[{"i":[[0,0],[79.026,55.926],[15.003,-8.209],[17,-61]],"o":[[0,0],[-16.25,-11.5],[-13.25,7.25],[-21.611,77.545]],"v":[[101.5,169.5],[37.25,20.75],[-29,20.5],[-108.75,118.25]],"c":false}]}]},"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":130,"s":[43]},{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":139,"s":[43]},{"t":160,"s":[90]}]},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":130,"s":[43]},{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":139,"s":[43]},{"t":160,"s":[92]}]},"o":{"a":0,"k":0},"m":1,"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.67],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":130,"s":[0]},{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.66],"y":[0]},"t":139,"s":[0]},{"t":160,"s":[6]}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":130,"s":[{"i":[[0,0],[79.026,55.926],[15.003,-8.209],[17,-61]],"o":[[0,0],[-16.25,-11.5],[-13.25,7.25],[-21.611,77.545]],"v":[[101.5,169.5],[37.25,20.75],[-29,20.5],[-108.75,118.25]],"c":false}]},{"t":160,"s":[{"i":[[0,0],[79.026,55.926],[15.003,-8.209],[17,-61]],"o":[[0,0],[-16.25,-11.5],[-13.25,7.25],[-21.611,77.545]],"v":[[101.5,169.5],[37.25,20.75],[-29,20.5],[-108.75,118.25]],"c":false}]}]},"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":130,"s":[43]},{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":139,"s":[43]},{"t":160,"s":[95.8]}]},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":130,"s":[43]},{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":139,"s":[43]},{"t":160,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.67],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":130,"s":[0]},{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.66],"y":[0]},"t":139,"s":[0]},{"t":160,"s":[6]}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":130,"s":[{"i":[[0,0],[38.25,39.75],[42.75,-14.75],[-1.25,-80.25]],"o":[[0,0],[-13.804,-14.345],[-21.499,7.418],[1.254,80.49]],"v":[[95.5,150.75],[58.625,62.625],[-29.25,32.25],[-98.5,169.5]],"c":false}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":139,"s":[{"i":[[0,0],[38.25,39.75],[42.75,-14.75],[-1.25,-80.25]],"o":[[0,0],[-13.804,-14.345],[-21.499,7.418],[1.254,80.49]],"v":[[95.5,150.75],[58.625,62.625],[-29.25,32.25],[-98.5,169.5]],"c":false}]},{"t":160,"s":[{"i":[[0,0],[79.026,55.926],[13.5,-10.5],[-1.25,-80.25]],"o":[[0,0],[-16.25,-11.5],[-17.952,13.963],[1.254,80.49]],"v":[[101.5,169.5],[29.25,31],[-29.25,32.25],[-98.5,169.5]],"c":false}]}]},"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":130,"s":[0]},{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":142,"s":[0]},{"t":160,"s":[65]}]},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":130,"s":[0]},{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":139,"s":[0]},{"t":160,"s":[67.3]}]},"o":{"a":0,"k":0},"m":1,"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":40},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":130,"s":[0]},{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":139,"s":[0]},{"t":160,"s":[35]}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.66,"y":0},"t":130,"s":[{"i":[[0,0],[38.25,39.75],[42.75,-14.75],[-1.25,-80.25]],"o":[[0,0],[-13.804,-14.345],[-21.499,7.418],[1.254,80.49]],"v":[[95.5,150.75],[58.625,62.625],[-29.25,32.25],[-98.5,169.5]],"c":false}]},{"t":160,"s":[{"i":[[0,0],[79.026,55.926],[13.5,-10.5],[-1.25,-80.25]],"o":[[0,0],[-16.25,-11.5],[-17.952,13.963],[1.254,80.49]],"v":[[101.5,169.5],[29.25,31],[-29.25,32.25],[-98.5,169.5]],"c":false}]}]},"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.67],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":130,"s":[0]},{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.66],"y":[0]},"t":134,"s":[0]},{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.33],"y":[0]},"t":156,"s":[79]},{"t":160,"s":[79]}]},"e":{"a":1,"k":[{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.66],"y":[0]},"t":130,"s":[26.3]},{"t":160,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":40},"w":{"a":0,"k":35},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[1.562,96.412]},"a":{"a":0,"k":[1.562,96.412]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"parent":4,"sr":1,"ks":{"p":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":130,"s":[0,0,0],"to":[0,0,0],"ti":[0,0,0]},{"t":160,"s":[0,0.75,0]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.33,"y":0},"t":130,"s":[{"i":[[0,0],[79.026,55.926],[15.003,-8.209],[17,-61]],"o":[[0,0],[-16.25,-11.5],[-13.25,7.25],[-21.611,77.545]],"v":[[101.5,169.5],[37.25,20.75],[-29,20.5],[-108.75,118.25]],"c":false}]},{"t":160,"s":[{"i":[[0,0],[79.026,55.926],[15.003,-8.209],[17,-61]],"o":[[0,0],[-16.25,-11.5],[-13.25,7.25],[-21.611,77.545]],"v":[[101.5,169.5],[37.25,20.75],[-29,20.5],[-108.75,118.25]],"c":false}]}]},"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":130,"s":[90]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":147,"s":[43]},{"t":160,"s":[43]}]},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":130,"s":[92]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":147,"s":[43]},{"t":160,"s":[43]}]},"o":{"a":0,"k":0},"m":1,"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":130,"s":[6]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.33],"y":[0]},"t":147,"s":[0]},{"t":160,"s":[0]}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.33,"y":0},"t":130,"s":[{"i":[[0,0],[79.026,55.926],[15.003,-8.209],[17,-61]],"o":[[0,0],[-16.25,-11.5],[-13.25,7.25],[-21.611,77.545]],"v":[[101.5,169.5],[37.25,20.75],[-29,20.5],[-108.75,118.25]],"c":false}]},{"t":160,"s":[{"i":[[0,0],[79.026,55.926],[15.003,-8.209],[17,-61]],"o":[[0,0],[-16.25,-11.5],[-13.25,7.25],[-21.611,77.545]],"v":[[101.5,169.5],[37.25,20.75],[-29,20.5],[-108.75,118.25]],"c":false}]}]},"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":130,"s":[95.8]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":147,"s":[43]},{"t":160,"s":[43]}]},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":130,"s":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":147,"s":[43]},{"t":160,"s":[43]}]},"o":{"a":0,"k":0},"m":1,"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":130,"s":[6]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.33],"y":[0]},"t":147,"s":[0]},{"t":160,"s":[0]}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":130,"s":[{"i":[[0,0],[79.026,55.926],[13.5,-10.5],[-1.25,-80.25]],"o":[[0,0],[-16.25,-11.5],[-17.952,13.963],[1.254,80.49]],"v":[[101.5,169.5],[29.25,31],[-29.25,32.25],[-98.5,169.5]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":147,"s":[{"i":[[0,0],[38.25,39.75],[42.75,-14.75],[-1.25,-80.25]],"o":[[0,0],[-13.804,-14.345],[-21.499,7.418],[1.254,80.49]],"v":[[95.5,150.75],[58.625,62.625],[-29.25,32.25],[-98.5,169.5]],"c":false}]},{"t":160,"s":[{"i":[[0,0],[38.25,39.75],[42.75,-14.75],[-1.25,-80.25]],"o":[[0,0],[-13.804,-14.345],[-21.499,7.418],[1.254,80.49]],"v":[[95.5,150.75],[58.625,62.625],[-29.25,32.25],[-98.5,169.5]],"c":false}]}]},"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.33],"y":[0]},"t":130,"s":[65]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":141,"s":[0]},{"t":160,"s":[0]}]},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.33],"y":[0]},"t":130,"s":[67.3]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":147,"s":[0]},{"t":160,"s":[0]}]},"o":{"a":0,"k":0},"m":1,"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":40},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":130,"s":[35]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":147,"s":[0]},{"t":160,"s":[0]}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":130,"s":[{"i":[[0,0],[79.026,55.926],[13.5,-10.5],[-1.25,-80.25]],"o":[[0,0],[-16.25,-11.5],[-17.952,13.963],[1.254,80.49]],"v":[[101.5,169.5],[29.25,31],[-29.25,32.25],[-98.5,169.5]],"c":false}]},{"t":160,"s":[{"i":[[0,0],[38.25,39.75],[42.75,-14.75],[-1.25,-80.25]],"o":[[0,0],[-13.804,-14.345],[-21.499,7.418],[1.254,80.49]],"v":[[95.5,150.75],[58.625,62.625],[-29.25,32.25],[-98.5,169.5]],"c":false}]}]},"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":130,"s":[79]},{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.33],"y":[0]},"t":135,"s":[79]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.33],"y":[0]},"t":157,"s":[0]},{"t":160,"s":[0]}]},"e":{"a":1,"k":[{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.33],"y":[0]},"t":130,"s":[100]},{"t":160,"s":[26.3]}]},"o":{"a":0,"k":0},"m":1,"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":40},"w":{"a":0,"k":35},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[1.562,96.412]},"a":{"a":0,"k":[1.562,96.412]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":3,"parent":1,"sr":1,"ks":{"o":{"a":0,"k":0},"r":{"a":1,"k":[{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.33],"y":[0]},"t":130,"s":[0]},{"t":160,"s":[180]}]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"parent":4,"sr":1,"ks":{"r":{"a":1,"k":[{"t":144,"s":[0],"h":1},{"t":145,"s":[180],"h":1}]},"p":{"a":1,"k":[{"t":144,"s":[1.854,-214.82,0],"h":1},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":145,"s":[1.854,209.68,0],"to":[0,0,0],"ti":[0,0,0]},{"t":160,"s":[-2.146,214.93,0]}]},"a":{"a":0,"k":[1.854,-214.82,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":130,"s":[{"i":[[0,-5.56],[-91.81,0],[-27.64,1.24],[28.46,0],[0,4.52],[-91.81,0],[-30.4,-1.93],[67.49,0]],"o":[[0,5.57],[37.06,0],[-23.42,0.63],[-91.81,0],[0,-4.53],[53.45,0],[-26.04,-3.5],[-91.81,0]],"v":[[-164.376,-231.753],[1.854,-221.673],[100.764,-223.653],[22.084,-222.673],[-144.146,-230.863],[22.084,-239.053],[153.484,-235.883],[1.854,-241.823]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":145,"s":[{"i":[[0,0.001],[-91.81,0],[-27.64,0],[28.46,0],[0,0],[-91.81,0],[-30.4,0],[67.49,0]],"o":[[0,-0.001],[37.06,0],[-23.42,0],[-91.81,0],[0,0],[53.45,0],[-26.04,0],[-91.81,0]],"v":[[-164.376,-231.749],[1.854,-231.75],[100.764,-231.75],[22.084,-231.75],[-144.146,-231.749],[22.084,-231.748],[153.484,-231.749],[1.854,-231.748]],"c":true}]},{"t":160,"s":[{"i":[[0,-5.56],[-91.81,0],[-27.64,1.24],[28.46,0],[0,4.52],[-91.81,0],[-30.4,-1.93],[67.49,0]],"o":[[0,5.57],[37.06,0],[-23.42,0.63],[-91.81,0],[0,-4.53],[53.45,0],[-26.04,-3.5],[-91.81,0]],"v":[[-164.376,-231.753],[1.854,-221.673],[100.764,-223.653],[22.084,-222.673],[-144.146,-230.863],[22.084,-239.053],[153.484,-235.883],[1.854,-241.823]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.839215695858,0.603921592236,0.298039227724,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":130,"s":[{"i":[[-9.9,-0.36],[0,0],[0,0],[11.74,-0.08],[0,0]],"o":[[0,0],[0,0],[-10.86,0.22],[0,0],[11.1,0.24]],"v":[[87.42,-240.386],[55.16,-222.206],[55.15,-222.206],[21.18,-221.746],[55.86,-241.286]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":145,"s":[{"i":[[-9.9,0],[0,0],[0,0],[11.74,0],[0,0]],"o":[[0,0],[0,0],[-10.86,0],[0,0],[11.1,0]],"v":[[87.42,-231.748],[55.16,-231.75],[55.15,-231.75],[21.18,-231.75],[55.86,-231.748]],"c":true}]},{"t":160,"s":[{"i":[[-9.9,-0.36],[0,0],[0,0],[11.74,-0.08],[0,0]],"o":[[0,0],[0,0],[-10.86,0.22],[0,0],[11.1,0.24]],"v":[[87.42,-240.386],[55.16,-222.206],[55.15,-222.206],[21.18,-221.746],[55.86,-241.286]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":15},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":130,"s":[{"i":[[-8.19,-0.08],[0,0],[23.83,0.97],[0,0],[-21.71,0]],"o":[[0,0],[-30.44,-0.11],[0,0],[19.01,-0.46],[8.54,0]],"v":[[26.96,-241.706],[-8.56,-221.696],[-91.06,-223.396],[-59.61,-241.116],[1.85,-241.826]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":145,"s":[{"i":[[-8.19,0],[0,0],[23.83,0],[0,0],[-21.71,0]],"o":[[0,0],[-30.44,0],[0,0],[19.01,0],[8.54,0]],"v":[[26.96,-231.748],[-8.56,-231.75],[-91.06,-231.75],[-59.61,-231.748],[1.85,-231.748]],"c":true}]},{"t":160,"s":[{"i":[[-8.19,-0.08],[0,0],[23.83,0.97],[0,0],[-21.71,0]],"o":[[0,0],[-30.44,-0.11],[0,0],[19.01,-0.46],[8.54,0]],"v":[[26.96,-241.706],[-8.56,-221.696],[-91.06,-223.396],[-59.61,-241.116],[1.85,-241.826]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":15},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":130,"s":[{"i":[[0,-5.566],[91.806,0],[0,5.566],[-91.806,0]],"o":[[0,5.566],[-91.806,0],[0,-5.566],[91.806,0]],"v":[[168.083,-231.749],[1.853,-221.671],[-164.376,-231.749],[1.853,-241.827]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":145,"s":[{"i":[[0,0.001],[91.806,0],[0,-0.001],[-91.806,0]],"o":[[0,-0.001],[-91.806,0],[0,0.001],[91.806,0]],"v":[[168.083,-231.749],[1.853,-231.75],[-164.376,-231.749],[1.853,-231.748]],"c":true}]},{"t":160,"s":[{"i":[[0,-5.566],[91.806,0],[0,5.566],[-91.806,0]],"o":[[0,5.566],[-91.806,0],[0,-5.566],[91.806,0]],"v":[[168.083,-231.749],[1.853,-221.671],[-164.376,-231.749],[1.853,-241.827]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.627451002598,0.396078437567,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":130,"s":[{"i":[[0,0],[-91.806,0],[0,5.566]],"o":[[0,5.566],[91.806,0],[0,0]],"v":[[-164.376,-213.833],[1.853,-203.755],[168.083,-213.833]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":145,"s":[{"i":[[0,0],[-91.806,0],[0,0.184]],"o":[[0,0.184],[91.806,0],[0,0]],"v":[[-164.376,-214.833],[1.853,-214.5],[168.083,-214.833]],"c":false}]},{"t":160,"s":[{"i":[[0,0],[-91.806,0],[0,5.566]],"o":[[0,5.566],[91.806,0],[0,0]],"v":[[-164.376,-213.833],[1.853,-203.755],[168.083,-213.833]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.156862750649,0.090196080506,0.04705882445,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":5},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":130,"s":[{"i":[[0,0],[0,0],[5.12,-0.97],[0,0]],"o":[[0,0],[0,1.08],[0,0],[0,0]],"v":[[168.084,-231.753],[168.084,-197.893],[160.194,-194.813],[160.194,-231.753]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":145,"s":[{"i":[[0,0],[0,0],[5.12,-0.002],[0,0]],"o":[[0,0],[0,0.002],[0,0],[0,0]],"v":[[168.084,-231.749],[168.084,-197.893],[160.194,-197.887],[160.194,-231.749]],"c":true}]},{"t":160,"s":[{"i":[[0,0],[0,0],[5.12,-0.97],[0,0]],"o":[[0,0],[0,1.08],[0,0],[0,0]],"v":[[168.084,-231.753],[168.084,-197.893],[160.194,-194.813],[160.194,-231.753]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.509803950787,0.301960796118,0.164705887437,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":130,"s":[{"i":[[0,0],[0,0],[0,1.08],[0,0]],"o":[[0,0],[-5.12,-0.97],[0,0],[0,0]],"v":[[-156.486,-231.753],[-156.486,-194.813],[-164.376,-197.893],[-164.376,-231.753]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":145,"s":[{"i":[[0,0],[0,0],[0,0.002],[0,0]],"o":[[0,0],[-5.12,-0.002],[0,0],[0,0]],"v":[[-156.486,-231.749],[-156.486,-197.887],[-164.376,-197.893],[-164.376,-231.749]],"c":true}]},{"t":160,"s":[{"i":[[0,0],[0,0],[0,1.08],[0,0]],"o":[[0,0],[-5.12,-0.97],[0,0],[0,0]],"v":[[-156.486,-231.753],[-156.486,-194.813],[-164.376,-197.893],[-164.376,-231.753]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.509803950787,0.301960796118,0.164705887437,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":130,"s":[{"i":[[0,0],[0,0],[91.81,0],[21.45,4.06],[0,1.08],[0,0]],"o":[[0,0],[0,5.57],[-74.11,0],[-5.12,-0.97],[0,0],[0,0]],"v":[[168.084,-231.753],[168.084,-197.893],[1.854,-187.813],[-156.486,-194.813],[-164.376,-197.893],[-164.376,-231.753]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":145,"s":[{"i":[[0,0],[0,0],[91.81,0],[21.45,0.007],[0,0.002],[0,0]],"o":[[0,0],[0,0.01],[-74.11,0],[-5.12,-0.002],[0,0],[0,0]],"v":[[168.084,-231.749],[168.084,-197.893],[1.854,-197.875],[-156.486,-197.887],[-164.376,-197.893],[-164.376,-231.749]],"c":true}]},{"t":160,"s":[{"i":[[0,0],[0,0],[91.81,0],[21.45,4.06],[0,1.08],[0,0]],"o":[[0,0],[0,5.57],[-74.11,0],[-5.12,-0.97],[0,0],[0,0]],"v":[[168.084,-231.753],[168.084,-197.893],[1.854,-187.813],[-156.486,-194.813],[-164.376,-197.893],[-164.376,-231.753]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.337254911661,0.211764708161,0.1254902035,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":130,"s":[{"i":[[0,0],[0,0],[5.12,-0.97],[0,0]],"o":[[0,0],[0,1.08],[0,0],[0,0]],"v":[[168.084,-231.753],[168.084,-197.893],[160.194,-194.813],[160.194,-231.753]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":145,"s":[{"i":[[0,0],[0,0],[5.12,-0.002],[0,0]],"o":[[0,0],[0,0.002],[0,0],[0,0]],"v":[[168.084,-231.749],[168.084,-197.893],[160.194,-197.887],[160.194,-231.749]],"c":true}]},{"t":160,"s":[{"i":[[0,0],[0,0],[5.12,-0.97],[0,0]],"o":[[0,0],[0,1.08],[0,0],[0,0]],"v":[[168.084,-231.753],[168.084,-197.893],[160.194,-194.813],[160.194,-231.753]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.509803950787,0.301960796118,0.164705887437,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":130,"s":[{"i":[[0,0],[0,0],[0,1.08],[0,0]],"o":[[0,0],[-5.12,-0.97],[0,0],[0,0]],"v":[[-156.486,-231.753],[-156.486,-194.813],[-164.376,-197.893],[-164.376,-231.753]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":145,"s":[{"i":[[0,0],[0,0],[0,0.002],[0,0]],"o":[[0,0],[-5.12,-0.002],[0,0],[0,0]],"v":[[-156.486,-231.749],[-156.486,-197.887],[-164.376,-197.893],[-164.376,-231.749]],"c":true}]},{"t":160,"s":[{"i":[[0,0],[0,0],[0,1.08],[0,0]],"o":[[0,0],[-5.12,-0.97],[0,0],[0,0]],"v":[[-156.486,-231.753],[-156.486,-194.813],[-164.376,-197.893],[-164.376,-231.753]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.509803950787,0.301960796118,0.164705887437,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"parent":46,"sr":1,"ks":{"o":{"a":0,"k":30},"p":{"a":0,"k":[1.509,-7.643,0]},"a":{"a":0,"k":[1.509,-7.643,0]},"s":{"a":1,"k":[{"t":145,"s":[100,100,100],"h":1},{"t":146,"s":[-100,100,100],"h":1}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-15.79,19.015],[11.3,-11.31],[0.76,-0.73],[1.55,-1.37],[1.57,-1.28],[0.79,-0.63],[3.26,-2.15],[1.65,-0.99],[1.65,-0.91],[7.44,-2.44],[-3.77,-1.23],[-14.72,-12.41],[87.737,-65.216],[-19.02,6.22],[-0.44,0.44],[-0.1,0.13],[0.97,1.34],[0.15,0.14],[0.17,0.12],[0.21,0.1],[0.24,0.08],[21.56,41.53],[-76.181,1.161]],"o":[[-8.53,16.36],[-0.75,0.75],[-1.52,1.46],[-1.55,1.38],[-0.79,0.64],[-3.18,2.49],[-1.62,1.07],[-1.64,0.99],[-7.45,4.09],[-3.77,1.23],[15.54,5.08],[-1.31,-0.64],[17.28,-17.29],[0.7,-0.23],[0.11,-0.11],[1.02,-1.31],[-0.12,-0.17],[-0.15,-0.16],[-0.18,-0.13],[-0.2,-0.1],[-31.54,-10.32],[1.29,1.69],[76.031,-1.159]],"v":[[120.594,-80.773],[90.454,-39.333],[88.184,-37.103],[83.584,-32.853],[78.894,-28.863],[76.514,-26.963],[66.844,-20.003],[61.934,-16.903],[56.994,-14.053],[34.574,-4.283],[34.574,3.057],[80.734,29.177],[-87.426,38.097],[-31.556,3.057],[-29.836,2.027],[-29.516,1.667],[-29.436,-2.793],[-29.836,-3.253],[-30.316,-3.663],[-30.896,-4.013],[-31.556,-4.283],[-117.716,-81.053],[3.024,-19.666]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.447058826685,0.286274522543,0.486274510622,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":20},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[2.33,-14.02],[134.08,-0.49],[-2.198,-47.428],[-0.032,-0.42],[0,18.71],[-1.2,8.18],[0,0],[0,-8.88]],"o":[[2.171,-31.46],[-119.044,0.43],[0,0],[-3.07,-15.78],[0,-8.88],[0,0],[1.2,8.18],[0,16.23]],"v":[[141.124,-143.763],[5.064,-184.193],[-136.978,-137.823],[-136.946,-137.403],[-141.696,-189.123],[-139.876,-214.723],[142.914,-214.723],[144.724,-189.123]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.447058826685,0.286274522543,0.486274510622,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":20},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-40.9],[0.03,-1.29],[0,-0.01],[0,-0.13],[8.85,-0.93],[56.18,0],[23.48,2.46],[0.56,1.11],[-0.01,0.13],[0,0],[0,1.31],[-3.07,15.81],[-0.3,1.41],[-0.69,2.73],[-0.37,1.34],[-0.39,1.32],[-0.41,1.3],[-0.42,1.27],[-0.44,1.25],[-0.71,1.82],[-0.49,1.19],[-2.24,4.39],[-2.53,4.1],[0,0],[-9.223,-25.509],[-67.029,-0.289],[3.29,22.37]],"o":[[0,1.31],[0,0],[0,0.14],[-0.62,1.11],[-23.34,2.45],[-56.29,0],[-8.9,-0.94],[-0.01,-0.12],[0,0],[-0.04,-1.29],[0,-18.75],[0.28,-1.43],[0.6,-2.83],[0.35,-1.36],[0.37,-1.34],[0.39,-1.32],[0.41,-1.29],[0.43,-1.27],[0.67,-1.87],[0.48,-1.21],[1.97,-4.75],[2.28,-4.48],[0,0],[0,0],[9.612,26.584],[132.619,0.571],[12.85,27.17]],"v":[[144.714,187.897],[144.674,191.797],[144.674,191.807],[144.664,192.217],[129.974,195.297],[1.854,199.437],[-126.956,195.287],[-141.646,192.197],[-141.656,191.817],[-141.656,191.807],[-141.706,187.897],[-136.946,136.087],[-136.076,131.817],[-134.136,123.477],[-133.066,119.417],[-131.936,115.427],[-130.746,111.507],[-129.496,107.657],[-128.186,103.877],[-126.116,98.347],[-124.666,94.737],[-118.346,81.017],[-111.116,68.157],[-111.096,68.147],[-113.948,118.65],[-3.081,172.377],[123.824,86.037]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.447058826685,0.286274522543,0.486274510622,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":20},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":3,"parent":4,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":130,"s":[0,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":144,"s":[0,-22,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":156,"s":[0,-67,0],"to":[0,0,0],"ti":[0,0,0]},{"t":180,"s":[0,-21,0]}]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":3,"parent":7,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":130,"s":[0,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":139,"s":[53,0,0],"to":[0,0,0],"ti":[0,0,0]},{"t":180,"s":[-91,0,0]}]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":3,"parent":8,"sr":1,"ks":{"o":{"a":0,"k":0},"r":{"a":1,"k":[{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":130,"s":[0]},{"t":180,"s":[-239]}]},"p":{"a":0,"k":[3,130,0]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"parent":17,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.12],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":130,"s":[0]},{"t":180,"s":[-9.549]}]},"p":{"a":1,"k":[{"i":{"x":0.667,"y":0.667},"o":{"x":0.167,"y":0.167},"t":0,"s":[76.612,-136.136,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":8,"s":[76.612,-136.136,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":13,"s":[81.494,-120.634,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":32,"s":[81.494,-120.634,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.139,"y":0.139},"o":{"x":0.347,"y":0.347},"t":36,"s":[76.612,-136.136,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.66,"y":1},"o":{"x":0.326,"y":0},"t":124,"s":[76.612,-136.136,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":128,"s":[80.322,-124.199,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":133,"s":[76.612,-136.136,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":143,"s":[76.612,-136.136,0],"to":[0,0,0],"ti":[0,0,0]},{"t":180,"s":[76.866,-136.08,0]}]},"a":{"a":0,"k":[76.612,-136.136,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-0.148,-1.599],[3.298,-0.348],[0.148,1.599],[-3.298,0.348]],"o":[[0.148,1.599],[-3.298,0.348],[-0.148,-1.599],[3.298,-0.348]],"v":[[82.584,-136.765],[76.879,-133.24],[70.64,-135.506],[76.344,-139.031]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.007843137719,0.149019613862,0.20000000298,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"parent":14,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.12],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":130,"s":[0]},{"t":180,"s":[7.038]}]},"p":{"a":1,"k":[{"i":{"x":0.667,"y":0.667},"o":{"x":0.167,"y":0.167},"t":0,"s":[33.643,-90.043,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":45,"s":[33.643,-90.043,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":49,"s":[50.967,-82.18,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":64,"s":[50.967,-82.18,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.137,"y":0.137},"o":{"x":0.187,"y":0.187},"t":69,"s":[33.643,-90.043,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.653,"y":1},"o":{"x":0.319,"y":0},"t":124,"s":[33.643,-90.043,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.334,"y":0},"t":128,"s":[41.341,-71.498,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.671,"y":0.671},"o":{"x":0.337,"y":0.337},"t":133,"s":[33.643,-90.043,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":1},"o":{"x":0.352,"y":0},"t":143,"s":[33.643,-90.043,0],"to":[0,0,0],"ti":[0,0,0]},{"t":180,"s":[33.847,-89.918,0]}]},"a":{"a":0,"k":[33.643,-90.043,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.431,-0.495],[1.022,-3.369],[1.431,0.495],[-1.022,3.369]],"o":[[1.431,0.495],[-1.022,3.369],[-1.431,-0.495],[1.022,-3.369]],"v":[[35.493,-96.144],[36.233,-89.147],[31.794,-83.943],[31.053,-90.94]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.007843137719,0.149019613862,0.20000000298,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":3,"parent":9,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[-234,-130,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6,"s":[-234,-100,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":15,"s":[-234,-110,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":24,"s":[-234,-91,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":47,"s":[-234,-74,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":63,"s":[-234,106,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":68,"s":[-234,122,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.263,"y":0},"t":76,"s":[-234,109,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.688,"y":1},"o":{"x":0.333,"y":0},"t":88,"s":[-234,100.983,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.327,"y":0},"t":105,"s":[-234,113.638,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.12,"y":1},"o":{"x":0.333,"y":0},"t":115,"s":[-234,40.782,0],"to":[0,0,0],"ti":[0,0,0]},{"t":130,"s":[-234,76,0]}]},"s":{"a":0,"k":[25,25,100]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":3,"parent":12,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[0,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":15,"s":[-320,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":32,"s":[-160,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":45.143,"s":[-268,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.167,"y":0.167},"t":52,"s":[-228,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.19,"y":0},"t":64,"s":[-228,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.324,"y":0},"t":100,"s":[-619.221,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.12,"y":1},"o":{"x":0.333,"y":0},"t":115,"s":[-266.86,20.81,0],"to":[0,0,0],"ti":[0,0,0]},{"t":130,"s":[-360,0,0]}]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"parent":13,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":16,"s":[72.705]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.315],"y":[0]},"t":36,"s":[-26.332]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.307],"y":[0]},"t":49,"s":[-48.451]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.307],"y":[0]},"t":64,"s":[-19.775]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.297],"y":[0]},"t":81,"s":[104.607]},{"i":{"x":[0.19],"y":[0.856]},"o":{"x":[0.382],"y":[0]},"t":100,"s":[-25.273]},{"i":{"x":[0.649],"y":[0.993]},"o":{"x":[0.31],"y":[0.014]},"t":124,"s":[31.83]},{"i":{"x":[0.667],"y":[1.035]},"o":{"x":[0.327],"y":[-0.009]},"t":128,"s":[69.813]},{"i":{"x":[0.381],"y":[1]},"o":{"x":[0.164],"y":[0.292]},"t":133,"s":[34.803]},{"t":180,"s":[54.392]}]},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":130,"s":[1158.646,-302.98,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0.167},"t":143,"s":[1158.646,-302.98,0],"to":[0,0,0],"ti":[0,0,0]},{"t":180,"s":[1125.183,-335.372,0]}]},"a":{"a":0,"k":[58.661,-75.745,0]},"s":{"a":0,"k":[400,400,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[7.369,-12.615],[0,0]],"o":[[0,0],[-5.469,9.363],[0,0]],"v":[[63.376,-92.91],[43.274,-84.127],[43.673,-65.037]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":45,"s":[{"i":[[0,0],[7.369,-12.615],[0,0]],"o":[[0,0],[-5.469,9.363],[0,0]],"v":[[63.376,-92.91],[43.274,-84.127],[43.673,-65.037]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":49,"s":[{"i":[[0,0],[3.729,-11.138],[0,0]],"o":[[0,0],[-2.767,8.266],[0,0]],"v":[[60.01,-84.812],[55.369,-71.01],[51.493,-59.389]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":64,"s":[{"i":[[0,0],[3.729,-11.138],[0,0]],"o":[[0,0],[-2.767,8.266],[0,0]],"v":[[60.01,-84.812],[55.369,-71.01],[51.493,-59.389]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":69,"s":[{"i":[[0,0],[7.369,-12.615],[0,0]],"o":[[0,0],[-5.469,9.363],[0,0]],"v":[[63.376,-92.91],[43.274,-84.127],[43.673,-65.037]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":124,"s":[{"i":[[0,0],[7.369,-12.615],[0,0]],"o":[[0,0],[-5.469,9.363],[0,0]],"v":[[63.376,-92.91],[43.274,-84.127],[43.673,-65.037]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":128,"s":[{"i":[[0,0],[3.729,-11.138],[0,0]],"o":[[0,0],[-2.767,8.266],[0,0]],"v":[[60.01,-84.812],[55.369,-71.01],[51.493,-59.389]],"c":false}]},{"t":133,"s":[{"i":[[0,0],[7.369,-12.615],[0,0]],"o":[[0,0],[-5.469,9.363],[0,0]],"v":[[63.376,-92.91],[43.274,-84.127],[43.673,-65.037]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.007843137719,0.149019613862,0.20000000298,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":4},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[46.613,-74.65],[50.634,-77.052]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":45,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[46.613,-74.65],[50.634,-77.052]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":49,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[53.815,-66.348],[54.691,-68.964]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":64,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[53.815,-66.348],[54.691,-68.964]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":69,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[46.613,-74.65],[50.634,-77.052]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":124,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[46.613,-74.65],[50.634,-77.052]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":128,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[53.815,-66.348],[54.691,-68.964]],"c":false}]},{"t":133,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[46.613,-74.65],[50.634,-77.052]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":4},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[60.5,-77]},"a":{"a":0,"k":[60.5,-77]},"s":{"a":0,"k":[100,100]},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":16,"s":[-72.705]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.315],"y":[0]},"t":36,"s":[26.332]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.307],"y":[0]},"t":46,"s":[48.451]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":49,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":66,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.307],"y":[0]},"t":69,"s":[19.775]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.297],"y":[0]},"t":81,"s":[-104.607]},{"i":{"x":[0.12],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":100,"s":[25.273]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":124,"s":[-33]},{"i":{"x":[0.12],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":128,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":133,"s":[-33]},{"t":156,"s":[0]}]},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[2.931,-5.671],[6.198,3.029],[-5.342,10.147],[-5.488,-4.321]],"o":[[-5.443,4.277],[-7.142,-3.506],[7.134,-5.686],[8.175,6.437]],"v":[[74.073,-67.905],[54.328,-65.446],[47.641,-89.296],[70.791,-89.735]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":45,"s":[{"i":[[2.931,-5.671],[6.198,3.029],[-5.342,10.147],[-5.488,-4.321]],"o":[[-5.443,4.277],[-7.142,-3.506],[7.134,-5.686],[8.175,6.437]],"v":[[74.073,-67.905],[54.328,-65.446],[47.641,-89.296],[70.791,-89.735]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":49,"s":[{"i":[[1.623,-4.83],[0.218,-0.603],[-2.921,8.686],[0.249,-0.81]],"o":[[-1.699,5.057],[-0.354,0.982],[2.277,-6.77],[-0.1,0.326]],"v":[[55.831,-72.252],[52.986,-63.773],[57.108,-76.192],[60.083,-84.988]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":64,"s":[{"i":[[1.623,-4.83],[0.218,-0.603],[-2.921,8.686],[0.249,-0.81]],"o":[[-1.699,5.057],[-0.354,0.982],[2.277,-6.77],[-0.1,0.326]],"v":[[55.831,-72.252],[52.986,-63.773],[57.108,-76.192],[60.083,-84.988]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":69,"s":[{"i":[[2.931,-5.671],[6.198,3.029],[-5.342,10.147],[-5.488,-4.321]],"o":[[-5.443,4.277],[-7.142,-3.506],[7.134,-5.686],[8.175,6.437]],"v":[[74.073,-67.905],[54.328,-65.446],[47.641,-89.296],[70.791,-89.735]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":124,"s":[{"i":[[2.931,-5.671],[6.198,3.029],[-5.342,10.147],[-5.488,-4.321]],"o":[[-5.443,4.277],[-7.142,-3.506],[7.134,-5.686],[8.175,6.437]],"v":[[74.073,-67.905],[54.328,-65.446],[47.641,-89.296],[70.791,-89.735]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":128,"s":[{"i":[[1.623,-4.83],[0.218,-0.603],[-2.921,8.686],[0.249,-0.81]],"o":[[-1.699,5.057],[-0.354,0.982],[2.277,-6.77],[-0.1,0.326]],"v":[[55.831,-72.252],[52.986,-63.773],[57.108,-76.192],[60.083,-84.988]],"c":true}]},{"t":133,"s":[{"i":[[2.931,-5.671],[6.198,3.029],[-5.342,10.147],[-5.488,-4.321]],"o":[[-5.443,4.277],[-7.142,-3.506],[7.134,-5.686],[8.175,6.437]],"v":[[74.073,-67.905],[54.328,-65.446],[47.641,-89.296],[70.791,-89.735]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.007843137719,0.149019613862,0.20000000298,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[9.676,7.612],[6.25,-11.098],[-7.274,-3.562],[-4.995,6.645]],"o":[[-6.785,-5.337],[-5.82,10.334],[7.488,3.666],[3.516,-4.678]],"v":[[70.793,-89.734],[43.274,-84.127],[49.656,-59.717],[72.426,-65.23]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":45,"s":[{"i":[[9.676,7.612],[6.25,-11.098],[-7.274,-3.562],[-4.995,6.645]],"o":[[-6.785,-5.337],[-5.82,10.334],[7.488,3.666],[3.516,-4.678]],"v":[[70.793,-89.734],[43.274,-84.127],[49.656,-59.717],[72.426,-65.23]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":49,"s":[{"i":[[-0.062,0.206],[3.244,-9.692],[-0.41,1.148],[-2.138,6.378]],"o":[[0.237,-0.79],[-3.021,9.025],[0.422,-1.182],[1.505,-4.49]],"v":[[60.083,-84.988],[55.369,-71.01],[51.085,-58.106],[55.027,-69.851]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":64,"s":[{"i":[[-0.062,0.206],[3.244,-9.692],[-0.41,1.148],[-2.138,6.378]],"o":[[0.237,-0.79],[-3.021,9.025],[0.422,-1.182],[1.505,-4.49]],"v":[[60.083,-84.988],[55.369,-71.01],[51.085,-58.106],[55.027,-69.851]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":69,"s":[{"i":[[9.676,7.612],[6.25,-11.098],[-7.274,-3.562],[-4.995,6.645]],"o":[[-6.785,-5.337],[-5.82,10.334],[7.488,3.666],[3.516,-4.678]],"v":[[70.793,-89.734],[43.274,-84.127],[49.656,-59.717],[72.426,-65.23]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":124,"s":[{"i":[[9.676,7.612],[6.25,-11.098],[-7.274,-3.562],[-4.995,6.645]],"o":[[-6.785,-5.337],[-5.82,10.334],[7.488,3.666],[3.516,-4.678]],"v":[[70.793,-89.734],[43.274,-84.127],[49.656,-59.717],[72.426,-65.23]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":128,"s":[{"i":[[-0.062,0.206],[3.244,-9.692],[-0.41,1.148],[-2.138,6.378]],"o":[[0.237,-0.79],[-3.021,9.025],[0.422,-1.182],[1.505,-4.49]],"v":[[60.083,-84.988],[55.369,-71.01],[51.085,-58.106],[55.027,-69.851]],"c":true}]},{"t":133,"s":[{"i":[[9.676,7.612],[6.25,-11.098],[-7.274,-3.562],[-4.995,6.645]],"o":[[-6.785,-5.337],[-5.82,10.334],[7.488,3.666],[3.516,-4.678]],"v":[[70.793,-89.734],[43.274,-84.127],[49.656,-59.717],[72.426,-65.23]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":3,"parent":9,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":0,"s":[182,-130,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":12,"s":[182,-40,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":0.401},"o":{"x":0.333,"y":0},"t":30,"s":[182,158,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0.176},"t":37,"s":[182,163.005,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":44,"s":[182,146,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":64,"s":[182,156,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":88,"s":[182,146,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":100,"s":[182,136,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108,"s":[182,145,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.12,"y":1},"o":{"x":0.333,"y":0},"t":116,"s":[182,76,0],"to":[0,0,0],"ti":[0,0,0]},{"t":130,"s":[182,110,0]}]},"s":{"a":0,"k":[25,25,100]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":3,"parent":15,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[0,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.167,"y":0.167},"t":15,"s":[-320,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":28,"s":[-320,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":51,"s":[40,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":74,"s":[-120,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":100,"s":[80,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.12,"y":1},"o":{"x":0.333,"y":0},"t":115,"s":[-248,0,0],"to":[0,0,0],"ti":[0,0,0]},{"t":130,"s":[-224,0,0]}]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"parent":16,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":13,"s":[-73.4]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":25,"s":[-86.195]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":55,"s":[116.158]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":100,"s":[-38.757]},{"i":{"x":[0.286],"y":[0.738]},"o":{"x":[0.438],"y":[0]},"t":114,"s":[70.61]},{"i":{"x":[0.583],"y":[1]},"o":{"x":[0.258],"y":[0.097]},"t":124,"s":[32.218]},{"i":{"x":[0.686],"y":[0.966]},"o":{"x":[0.354],"y":[0]},"t":128,"s":[17.268]},{"i":{"x":[0.343],"y":[1]},"o":{"x":[0.295],"y":[0.113]},"t":133,"s":[29.08]},{"t":180,"s":[60.129]}]},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":130,"s":[-375.957,-445.278,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0.167},"t":143,"s":[-375.957,-445.278,0],"to":[0,0,0],"ti":[0,0,0]},{"t":180,"s":[-489.14,-435.602,0]}]},"a":{"a":0,"k":[91.011,-111.319,0]},"s":{"a":0,"k":[400,400,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":8,"s":[{"i":[[0,0],[-6.582,6.906],[-5.457,-0.945]],"o":[[0,0],[5.632,-5.909],[0,0]],"v":[[75.269,-105.603],[79.358,-121.503],[97.803,-126.436]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":13,"s":[{"i":[[0,0],[-8.296,2.987],[-4.337,1.547]],"o":[[0,0],[7.098,-2.556],[0,0]],"v":[[74.818,-106.053],[84.395,-109.527],[102.15,-115.889]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":32,"s":[{"i":[[0,0],[-8.296,2.987],[-4.337,1.547]],"o":[[0,0],[7.098,-2.556],[0,0]],"v":[[74.818,-106.053],[84.395,-109.527],[102.15,-115.889]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":36,"s":[{"i":[[0,0],[-6.582,6.906],[-5.457,-0.945]],"o":[[0,0],[5.632,-5.909],[0,0]],"v":[[75.269,-105.603],[79.358,-121.503],[97.803,-126.436]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":124,"s":[{"i":[[0,0],[-6.582,6.906],[-5.457,-0.945]],"o":[[0,0],[5.632,-5.909],[0,0]],"v":[[75.269,-105.603],[79.358,-121.503],[97.803,-126.436]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":128,"s":[{"i":[[0,0],[-8.296,2.987],[-4.337,1.547]],"o":[[0,0],[7.098,-2.556],[0,0]],"v":[[74.818,-106.053],[84.395,-109.527],[102.15,-115.889]],"c":false}]},{"t":133,"s":[{"i":[[0,0],[-6.582,6.906],[-5.457,-0.945]],"o":[[0,0],[5.632,-5.909],[0,0]],"v":[[75.269,-105.603],[79.358,-121.503],[97.803,-126.436]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.007843137719,0.149019613862,0.20000000298,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":4},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":8,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[79.468,-106.909],[83.489,-109.312]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":13,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[78.931,-107.527],[83.306,-109.098]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":32,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[78.931,-107.527],[83.306,-109.098]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":36,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[79.468,-106.909],[83.489,-109.312]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":124,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[79.468,-106.909],[83.489,-109.312]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":128,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[78.931,-107.527],[83.306,-109.098]],"c":false}]},{"t":133,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[79.468,-106.909],[83.489,-109.312]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":4},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[91.5,-112]},"a":{"a":0,"k":[91.5,-112]},"s":{"a":0,"k":[100,100]},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[0.565]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[-0.272]},"t":8,"s":[49.179]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":13,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":32,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":36,"s":[31]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":55,"s":[-77.158]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":100,"s":[77.757]},{"i":{"x":[0.667],"y":[0.702]},"o":{"x":[0.333],"y":[0]},"t":114,"s":[-31.61]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[-0.163]},"t":123,"s":[49.179]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":126,"s":[0]},{"i":{"x":[0.667],"y":[1.012]},"o":{"x":[0.333],"y":[0]},"t":128,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0.109]},"t":133,"s":[10.175]},{"t":179,"s":[0]}]},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":8,"s":[{"i":[[3.88,-7.632],[5.07,1.17],[-5.016,10.03],[-3.29,-2.014]],"o":[[-5.275,5.882],[-6.356,-1.482],[7.314,-8.068],[7.808,4.781]],"v":[[103.029,-101.271],[85.219,-96.287],[75.981,-116.825],[97.012,-121.372]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":13,"s":[{"i":[[6.249,-2.251],[3.911,-1.394],[-8.142,2.933],[-2.064,0.731]],"o":[[-6.782,2.443],[-4.906,1.749],[9.369,-3.374],[4.899,-1.735]],"v":[[97.061,-113.988],[79.833,-107.815],[79.706,-107.836],[99.541,-114.94]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":32,"s":[{"i":[[6.249,-2.251],[3.911,-1.394],[-8.142,2.933],[-2.064,0.731]],"o":[[-6.782,2.443],[-4.906,1.749],[9.369,-3.374],[4.899,-1.735]],"v":[[97.061,-113.988],[79.833,-107.815],[79.706,-107.836],[99.541,-114.94]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":36,"s":[{"i":[[3.88,-7.632],[5.07,1.17],[-5.016,10.03],[-3.29,-2.014]],"o":[[-5.275,5.882],[-6.356,-1.482],[7.314,-8.068],[7.808,4.781]],"v":[[103.029,-101.271],[85.219,-96.287],[75.981,-116.825],[97.012,-121.372]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":124,"s":[{"i":[[3.88,-7.632],[5.07,1.17],[-5.016,10.03],[-3.29,-2.014]],"o":[[-5.275,5.882],[-6.356,-1.482],[7.314,-8.068],[7.808,4.781]],"v":[[103.029,-101.271],[85.219,-96.287],[75.981,-116.825],[97.012,-121.372]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":128,"s":[{"i":[[6.249,-2.251],[3.911,-1.394],[-8.142,2.933],[-2.064,0.731]],"o":[[-6.782,2.443],[-4.906,1.749],[9.369,-3.374],[4.899,-1.735]],"v":[[97.061,-113.988],[79.833,-107.815],[79.706,-107.836],[99.541,-114.94]],"c":true}]},{"t":133,"s":[{"i":[[3.88,-7.632],[5.07,1.17],[-5.016,10.03],[-3.29,-2.014]],"o":[[-5.275,5.882],[-6.356,-1.482],[7.314,-8.068],[7.808,4.781]],"v":[[103.029,-101.271],[85.219,-96.287],[75.981,-116.825],[97.012,-121.372]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.007843137719,0.149019613862,0.20000000298,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":8,"s":[{"i":[[7.664,3.131],[7.045,-10.734],[-6.736,-1.563],[-5.161,9.121]],"o":[[-2.281,-0.932],[-7.045,10.734],[5.916,1.373],[4.374,-7.731]],"v":[[99.795,-125.421],[77.044,-118.659],[85.216,-96.291],[105.449,-104.645]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":13,"s":[{"i":[[5.404,-1.921],[10.153,-3.664],[-5.202,1.854],[-7.917,2.859]],"o":[[-1.608,0.572],[-10.153,3.664],[4.569,-1.628],[6.71,-2.423]],"v":[[103.478,-116.36],[81.32,-108.419],[79.832,-107.814],[100.429,-115.203]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":32,"s":[{"i":[[5.404,-1.921],[10.153,-3.664],[-5.202,1.854],[-7.917,2.859]],"o":[[-1.608,0.572],[-10.153,3.664],[4.569,-1.628],[6.71,-2.423]],"v":[[103.478,-116.36],[81.32,-108.419],[79.832,-107.814],[100.429,-115.203]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":36,"s":[{"i":[[7.664,3.131],[7.045,-10.734],[-6.736,-1.563],[-5.161,9.121]],"o":[[-2.281,-0.932],[-7.045,10.734],[5.916,1.373],[4.374,-7.731]],"v":[[99.795,-125.421],[77.044,-118.659],[85.216,-96.291],[105.449,-104.645]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":124,"s":[{"i":[[7.664,3.131],[7.045,-10.734],[-6.736,-1.563],[-5.161,9.121]],"o":[[-2.281,-0.932],[-7.045,10.734],[5.916,1.373],[4.374,-7.731]],"v":[[99.795,-125.421],[77.044,-118.659],[85.216,-96.291],[105.449,-104.645]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":128,"s":[{"i":[[5.404,-1.921],[10.153,-3.664],[-5.202,1.854],[-7.917,2.859]],"o":[[-1.608,0.572],[-10.153,3.664],[4.569,-1.628],[6.71,-2.423]],"v":[[103.478,-116.36],[81.32,-108.419],[79.832,-107.814],[100.429,-115.203]],"c":true}]},{"t":133,"s":[{"i":[[7.664,3.131],[7.045,-10.734],[-6.736,-1.563],[-5.161,9.121]],"o":[[-2.281,-0.932],[-7.045,10.734],[5.916,1.373],[4.374,-7.731]],"v":[[99.795,-125.421],[77.044,-118.659],[85.216,-96.291],[105.449,-104.645]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":3,"parent":9,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":0,"s":[71,-147,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":11,"s":[71,-17,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":22,"s":[71,123,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.221,"y":0},"t":33,"s":[71,113,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.327,"y":0.327},"t":55,"s":[71,118.127,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.331,"y":0},"t":61,"s":[71,118.127,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.668,"y":1},"o":{"x":0.333,"y":0},"t":64,"s":[71,126.156,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.328,"y":0},"t":76,"s":[71,99.592,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.328,"y":0},"t":89,"s":[71,108.679,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.327,"y":0},"t":100,"s":[71,112.36,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.12,"y":1},"o":{"x":0.333,"y":0},"t":117,"s":[71,57.812,0],"to":[0,0,0],"ti":[0,0,0]},{"t":130,"s":[71,72,0]}]},"s":{"a":0,"k":[25,25,100]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":3,"parent":18,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[0,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":0.34},"o":{"x":0.17,"y":0.17},"t":14,"s":[-320,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.17,"y":0},"t":20,"s":[-320,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":30,"s":[80,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.33,"y":0},"t":72,"s":[-220,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":100,"s":[-60,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.12,"y":1},"o":{"x":0.33,"y":0},"t":117,"s":[-296,0,0],"to":[0,0,0],"ti":[0,0,0]},{"t":130,"s":[-332,0,0]}]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":20,"ty":4,"parent":19,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":10,"s":[115.093]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":24,"s":[-162.907]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":60,"s":[186.093]},{"i":{"x":[0.12],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":99,"s":[-105.907]},{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.33],"y":[0]},"t":130,"s":[52]},{"t":180,"s":[58.101]}]},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":130,"s":[49.095,-275.576,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0.167},"t":143,"s":[49.095,-275.576,0],"to":[0,0,0],"ti":[0,0,0]},{"t":180,"s":[-34.665,-247.997,0]}]},"a":{"a":0,"k":[86.274,-85.894,0]},"s":{"a":0,"k":[400,400,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[84.489,-86.907],[89.5,-82.895]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.007843137719,0.149019613862,0.20000000298,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":4},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[85.93,-88.893],[83.047,-84.921]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.007843137719,0.149019613862,0.20000000298,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":5},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":21,"ty":3,"parent":9,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":0,"s":[-161,-147,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":5,"s":[-161,-87,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":0.806},"o":{"x":0.333,"y":0},"t":19,"s":[-161,96,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0.369},"t":25,"s":[-161,84.846,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":32,"s":[-161,78,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":58,"s":[-161,75,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":65,"s":[-161,85,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":78,"s":[-161,75,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":102,"s":[-161,55,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.12,"y":1},"o":{"x":0.333,"y":0},"t":115,"s":[-161,15,0],"to":[0,0,0],"ti":[0,0,0]},{"t":130,"s":[-161,36,0]}]},"s":{"a":0,"k":[25,25,100]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":22,"ty":3,"parent":21,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[0,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":5,"s":[-124,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":14,"s":[-124,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":34,"s":[-564,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":61,"s":[-284,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":65,"s":[-364,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.03,"y":1},"o":{"x":0.333,"y":0},"t":78,"s":[-284,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.03,"y":1},"o":{"x":0.33,"y":0},"t":102,"s":[-564,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.12,"y":1},"o":{"x":0.33,"y":0},"t":115,"s":[-284,0,0],"to":[0,0,0],"ti":[0,0,0]},{"t":130,"s":[-400,0,0]}]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":23,"ty":4,"parent":22,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":7,"s":[-76]},{"i":{"x":[0.03],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":16,"s":[-86]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.33],"y":[0]},"t":34,"s":[109]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":62,"s":[-24]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":65,"s":[31.002]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":75,"s":[13]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":102,"s":[65]},{"i":{"x":[0.12],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":115,"s":[0]},{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":130,"s":[29]},{"t":180,"s":[58.368]}]},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":130,"s":[757.515,-133.946,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0.167},"t":143,"s":[757.515,-133.946,0],"to":[0,0,0],"ti":[0,0,0]},{"t":180,"s":[725.564,-216.245,0]}]},"a":{"a":0,"k":[31.379,-50.486,0]},"s":{"a":0,"k":[400,400,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[5.116,-9.22]],"o":[[0,0],[0,0]],"v":[[41.066,-51.598],[28.373,-40.536]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.007843137719,0.149019613862,0.20000000298,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":4},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[6.976,-6.233]],"o":[[0,0],[0,0]],"v":[[38.395,-60.437],[21.691,-54.103]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.007843137719,0.149019613862,0.20000000298,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":4},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":24,"ty":3,"parent":9,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.653,"y":0.617},"o":{"x":0.333,"y":0},"t":0,"s":[127,-147,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.418,"y":0.444},"t":6,"s":[127,-88.394,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":14,"s":[127,-7,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":27,"s":[127,180,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":44,"s":[127,165,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":60,"s":[127,179,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":83,"s":[127,166,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.665,"y":0},"o":{"x":0.331,"y":0},"t":102,"s":[127,148,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0.356},"t":108,"s":[127,136.046,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.12,"y":1},"o":{"x":0.167,"y":0},"t":117,"s":[127,86,0],"to":[0,0,0],"ti":[0,0,0]},{"t":130,"s":[127,116,0]}]},"s":{"a":0,"k":[25,25,100]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":25,"ty":3,"parent":24,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[0,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":14,"s":[-400,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":27,"s":[-400,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":45,"s":[40,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":74,"s":[-40,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":102,"s":[68,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.12,"y":1},"o":{"x":0.33,"y":0},"t":115,"s":[-220,0,0],"to":[0,0,0],"ti":[0,0,0]},{"t":130,"s":[-132,0,0]}]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":26,"ty":4,"parent":25,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":12,"s":[121.264]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":44,"s":[-226.736]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":92,"s":[92.264]},{"i":{"x":[0.12],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":115,"s":[71.264]},{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":130,"s":[74.264]},{"t":180,"s":[59.749]}]},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":130,"s":[-99.378,-497.647,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0.167},"t":143,"s":[-99.378,-497.647,0],"to":[0,0,0],"ti":[0,0,0]},{"t":180,"s":[-232.445,-472.524,0]}]},"a":{"a":0,"k":[105.156,-141.412,0]},"s":{"a":0,"k":[400,400,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-5.599,5.859]],"o":[[0,0],[0,0]],"v":[[106.836,-133.738],[112.209,-148.956]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.007843137719,0.149019613862,0.20000000298,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":4},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-3.432,9.243]],"o":[[0,0],[0,0]],"v":[[98.901,-132.435],[99.96,-150.388]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.007843137719,0.149019613862,0.20000000298,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":4},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":27,"ty":3,"parent":9,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.935,"y":0},"o":{"x":0.167,"y":0.167},"t":0,"s":[-234,-130,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.704,"y":1},"o":{"x":0.332,"y":0.277},"t":9,"s":[-234,-118.659,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.704,"y":1},"o":{"x":0.333,"y":0},"t":18,"s":[-234,90,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":27,"s":[-234,98,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":42,"s":[-234,80,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":51,"s":[-234,95,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":76,"s":[-234,-55,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":100,"s":[-234,85,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":117,"s":[-234,25,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":139,"s":[-233.699,74.999,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.297,"y":0},"t":153,"s":[-233.699,3.999,0],"to":[0,0,0],"ti":[0,0,0]},{"t":180,"s":[-233.699,-25.001,0]}]},"s":{"a":0,"k":[25,25,100]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":28,"ty":3,"parent":27,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":0,"s":[0,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":9,"s":[120,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":15,"s":[152,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":36,"s":[-240,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":51,"s":[-280,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":100,"s":[600,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":117,"s":[200,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":135,"s":[-119.994,1.925,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.67,"y":0.633},"o":{"x":0.296,"y":0},"t":149,"s":[366.006,1.925,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.243,"y":1},"t":167,"s":[-236.462,1.925,0],"to":[0,0,0],"ti":[0,0,0]},{"t":180,"s":[-353.994,1.925,0]}]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":29,"ty":4,"parent":28,"sr":1,"ks":{"o":{"a":0,"k":60},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[146.237]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":9,"s":[208.564]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":16,"s":[241.577]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":24,"s":[324.041]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":31,"s":[354.71]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":40,"s":[354.71]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":47,"s":[278.708]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":56,"s":[447.521]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":96,"s":[593.516]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":102,"s":[720.622]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":109,"s":[720.622]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":113,"s":[739.543]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":122,"s":[658.386]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":134,"s":[643.347]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":140,"s":[497.297]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":151,"s":[382.617]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":165,"s":[319.733]},{"t":179,"s":[200.903]}]},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":155,"s":[799.6,-148.418,0],"to":[0,0,0],"ti":[0,0,0]},{"t":179,"s":[790.474,-167.436,0]}]},"a":{"a":0,"k":[-31.1,-37.104,0]},"s":{"a":0,"k":[400,400,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.214,-0.433],[0.433,0.214],[-0.214,0.433],[-0.433,-0.214]],"o":[[-0.214,0.433],[-0.433,-0.214],[0.214,-0.433],[0.433,0.214]],"v":[[-37.258,-41.349],[-38.429,-40.952],[-38.825,-42.122],[-37.655,-42.519]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.007843137719,0.149019613862,0.20000000298,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[2.268,1.119],[-0.215,2.096],[2.224,1.098],[-0.975,1.975],[0,0]],"o":[[-1.646,-0.813],[-1.703,0.169],[-3.922,-1.936],[0,0],[-1.426,2.89]],"v":[[-27.086,-29.812],[-29.326,-34.639],[-35.488,-36.034],[-40.823,-43.107],[-24.5,-35.051]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.227450981736,0.027450980619,0,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":15},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.422,-0.856],[1.287,-0.12],[2.224,1.098],[-0.975,1.975],[-3.922,-1.936],[-0.901,-1.455]],"o":[[-0.423,0.856],[-1.703,0.169],[-3.922,-1.936],[0.975,-1.975],[2.224,1.098],[0.684,1.102]],"v":[[-26.629,-36.102],[-29.326,-34.639],[-35.488,-36.034],[-40.823,-43.107],[-31.96,-43.182],[-27.105,-39.139]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.988235294819,0.525490224361,0.152941182256,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[1.426,-2.89],[2.268,1.119],[-0.215,2.096],[-0.397,0.805],[-0.592,0.554],[-1.639,-0.809]],"o":[[-1.426,2.89],[-1.646,-0.813],[0.072,-0.81],[0.401,-0.812],[1.529,-1.438],[2.268,1.119]],"v":[[-24.5,-35.051],[-27.086,-29.812],[-29.326,-34.639],[-28.619,-37.084],[-27.105,-39.139],[-21.915,-40.289]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.768627464771,0.250980407,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":30,"ty":4,"parent":1,"sr":1,"ks":{"p":{"a":0,"k":[-95.5,0.5,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-17.75,53.5],[0,0]],"o":[[-12,-66],[0,0]],"v":[[103.25,163.75],[47.625,153.375]],"c":false}},"hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[-17.75,53.5],[0,0]],"o":[[9,-65.75],[0,0]],"v":[[111,163],[201.875,156.375]],"c":false}},"hd":false},{"ind":2,"ty":"sh","ks":{"a":0,"k":{"i":[[-17.75,53.5],[0,0]],"o":[[-6.5,-140.5],[0,0]],"v":[[111,163],[126.875,162.875]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.078431372549,0.729411764706,0.956862804936,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":63,"s":[6]},{"t":81,"s":[0]}]},"lc":2,"lj":1,"ml":4,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":65.225,"s":[0]},{"t":79.71484375,"s":[100]}]},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":63,"s":[0]},{"t":78.97265625,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"hd":false}],"ip":63,"op":81,"st":-30,"bm":0},{"ddd":0,"ind":31,"ty":4,"parent":1,"sr":1,"ks":{"p":{"a":0,"k":[-95.5,0.5,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-17.75,53.5],[0,0]],"o":[[-55.25,-80.25],[0,0]],"v":[[103.25,163.75],[11.125,156.875]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.078431372549,0.729411764706,0.956862804936,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":63,"s":[6]},{"t":77,"s":[0]}]},"lc":2,"lj":1,"ml":4,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":64.73,"s":[0]},{"t":76,"s":[100]}]},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":63,"s":[0]},{"t":75.423828125,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"hd":false}],"ip":63,"op":78,"st":-30,"bm":0},{"ddd":0,"ind":32,"ty":4,"parent":1,"sr":1,"ks":{"p":{"a":0,"k":[-84,13.5,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-17.75,53.5],[0,0]],"o":[[14.75,-79.5],[0,0]],"v":[[101,150],[156.625,135.625]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.078431372549,0.729411764706,0.956862804936,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":63,"s":[6]},{"t":77,"s":[0]}]},"lc":2,"lj":1,"ml":4,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":64.73,"s":[0]},{"t":76,"s":[100]}]},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":63,"s":[0]},{"t":75.423828125,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"hd":false}],"ip":63,"op":78,"st":-30,"bm":0},{"ddd":0,"ind":33,"ty":4,"parent":1,"sr":1,"ks":{},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-17.75,53.5],[0,0]],"o":[[-41.5,-65],[0,0]],"v":[[104.25,148.5],[60.375,160.375]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.078431372549,0.729411764706,0.956862804936,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":93,"s":[6]},{"t":107,"s":[0]}]},"lc":2,"lj":1,"ml":4,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":94.73,"s":[0]},{"t":106,"s":[100]}]},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":93,"s":[0]},{"t":105.423828125,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"hd":false}],"ip":93,"op":108,"st":0,"bm":0},{"ddd":0,"ind":34,"ty":4,"parent":1,"sr":1,"ks":{},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-17.75,53.5],[0,0]],"o":[[-6.5,-74],[0,0]],"v":[[104.25,148.5],[119.125,131.125]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.078431372549,0.729411764706,0.956862804936,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":93,"s":[6]},{"t":107,"s":[0]}]},"lc":2,"lj":1,"ml":4,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":94.73,"s":[0]},{"t":106,"s":[100]}]},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":93,"s":[0]},{"t":105.423828125,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"hd":false}],"ip":93,"op":108,"st":0,"bm":0},{"ddd":0,"ind":35,"ty":4,"parent":1,"sr":1,"ks":{},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-17.75,53.5],[-14.5,-13]],"o":[[68.75,-163],[31.228,18.737]],"v":[[-83.75,151],[53,56]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.078431372549,0.729411764706,0.956862804936,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":62,"s":[6]},{"t":76,"s":[0]}]},"lc":2,"lj":1,"ml":4,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":65,"s":[0]},{"t":88,"s":[100]}]},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":62,"s":[0]},{"t":87,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":36,"ty":4,"parent":4,"sr":1,"ks":{"p":{"a":0,"k":[6.706,-31.468,0]},"a":{"a":0,"k":[6.706,-31.468,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[0,0],[-3.117,1.495]],"o":[[0,0],[0,0]],"v":[[-40.351,185.225],[-32.258,185.88]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[-2.944,0.687]],"o":[[0,0],[0,0]],"v":[[-86.64,188.032],[-78.546,189.207]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[0,0],[-2.829,0.149]],"o":[[0,0],[0,0]],"v":[[-69.832,188.499],[-61.738,190.02]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[0,0],[-2.742,-0.255]],"o":[[0,0],[0,0]],"v":[[-71.851,185.35],[-63.758,187.13]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[0,0],[-2.688,0.6]],"o":[[0,0],[0,0]],"v":[[-45.929,171.887],[-37.68,171.093]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":57,"s":[{"i":[[0,0],[-2.742,-0.065]],"o":[[0,0],[0,0]],"v":[[-47.851,157.1],[-39.758,157.552]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":60,"s":[{"i":[[0,0],[-2.742,-0.065]],"o":[[0,0],[0,0]],"v":[[-52.101,154.35],[-44.008,154.802]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":63,"s":[{"i":[[0,0],[-2.67,0.629]],"o":[[0,0],[0,0]],"v":[[-54.939,148.52],[-46.993,146.915]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":65,"s":[{"i":[[0,0],[-2.522,1.08]],"o":[[0,0],[0,0]],"v":[[-56.742,146.192],[-49.191,143.242]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":68,"s":[{"i":[[0,0],[-2.63,0.716]],"o":[[0,0],[0,0]],"v":[[-60.268,155.431],[-52.432,153.567]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":70,"s":[{"i":[[0,0],[-2.702,0.473]],"o":[[0,0],[0,0]],"v":[[-47.202,155.757],[-39.176,154.617]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":75,"s":[{"i":[[0,0],[-2.522,1.08]],"o":[[0,0],[0,0]],"v":[[-48.742,162.442],[-41.191,159.492]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":83,"s":[{"i":[[0,0],[-2.714,0.402]],"o":[[0,0],[0,0]],"v":[[-55.743,150.182],[-47.69,149.253]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":89,"s":[{"i":[[0,0],[-2.736,-0.195]],"o":[[0,0],[0,0]],"v":[[-52.978,150.596],[-44.915,151.434]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":95,"s":[{"i":[[0,0],[-2.705,-0.41]],"o":[[0,0],[0,0]],"v":[[-56.398,165.412],[-48.447,166.879]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":100,"s":[{"i":[[0,0],[-2.679,-0.588]],"o":[[0,0],[0,0]],"v":[[-58.331,172.258],[-50.474,174.251]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":101,"s":[{"i":[[0,0],[-2.383,-0.891]],"o":[[0,0],[0,0]],"v":[[-55.438,168.829],[-48.332,171.768]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":103,"s":[{"i":[[0,0],[-2.156,-0.155]],"o":[[0,0],[0,0]],"v":[[-48.328,157.976],[-41.478,158.793]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":107,"s":[{"i":[[0,0],[-1.32,2.016]],"o":[[0,0],[0,0]],"v":[[-31.731,133.584],[-26.43,127.734]],"c":false}]},{"i":{"x":0.29,"y":1},"o":{"x":0.333,"y":0},"t":114,"s":[{"i":[[0,0],[-0.584,2.338]],"o":[[0,0],[0,0]],"v":[[-25.403,96.291],[-22.318,89.024]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":130,"s":[{"i":[[0,0],[-1.953,1.412]],"o":[[0,0],[0,0]],"v":[[-62.786,99.383],[-55.746,95.811]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":138,"s":[{"i":[[0,0],[-0.42,2.373]],"o":[[0,0],[0,0]],"v":[[36.668,94.921],[40.187,88.271]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":139,"s":[{"i":[[0,0],[-0.912,2.144]],"o":[[0,0],[0,0]],"v":[[14.886,112.498],[19.662,106.549]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":140,"s":[{"i":[[0,0],[-1.545,1.85]],"o":[[0,0],[0,0]],"v":[[-15.517,129.91],[-9.125,124.862]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":141,"s":[{"i":[[0,0],[-0.912,2.144]],"o":[[0,0],[0,0]],"v":[[-35.818,150.188],[-32.252,145.36]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":142,"s":[{"i":[[0,0],[-0.42,2.373]],"o":[[0,0],[0,0]],"v":[[-53.759,167.952],[-50.24,161.303]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":144,"s":[{"i":[[0,0],[0.55,1.4]],"o":[[0,0],[0,0]],"v":[[-48.202,174.854],[-49.001,170.803]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":146,"s":[{"i":[[0,0],[1.796,0.149]],"o":[[0,0],[0,0]],"v":[[-18.534,178.355],[-24.884,177.645]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":148,"s":[{"i":[[0,0],[2.389,0.313]],"o":[[0,0],[0,0]],"v":[[5.723,171.581],[-3.487,169.488]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":150,"s":[{"i":[[0,0],[2.367,0.453]],"o":[[0,0],[0,0]],"v":[[38.467,169.586],[29.397,166.953]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":152,"s":[{"i":[[0,0],[2.294,0.719]],"o":[[0,0],[0,0]],"v":[[43.74,157.185],[35.051,153.54]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":154,"s":[{"i":[[0,0],[2.266,0.758]],"o":[[0,0],[0,0]],"v":[[44.842,147.595],[36.275,143.809]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":155,"s":[{"i":[[0,0],[2.388,0.234]],"o":[[0,0],[0,0]],"v":[[46.094,141.991],[36.86,140.208]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":156,"s":[{"i":[[0,0],[2.393,0.185]],"o":[[0,0],[0,0]],"v":[[49.852,133.102],[40.582,131.507]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":160,"s":[{"i":[[0,0],[2.41,0.014]],"o":[[0,0],[0,0]],"v":[[48.074,129.44],[39.176,127.505]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":166,"s":[{"i":[[0,0],[0.164,-0.411]],"o":[[0,0],[0,0]],"v":[[52.713,123.742],[47.086,121.661]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":167,"s":[{"i":[[0,0],[0.417,-0.232]],"o":[[0,0],[0,0]],"v":[[55.017,123.435],[49.198,121.324]],"c":false}]},{"t":179,"s":[{"i":[[0,0],[3.219,1.754]],"o":[[0,0],[0,0]],"v":[[50.344,126.074],[42.406,123.621]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":18,"s":[0]},{"t":40,"s":[4]}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[0,0],[-0.513,0.161]],"o":[[0.571,-0.275],[0,0]],"v":[[-24.35,184.962],[-23.075,184.464]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[-0.513,0.01]],"o":[[0.596,-0.099],[0,0]],"v":[[-62.382,188.521],[-61.082,188.405]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[0,0],[-0.512,-0.09]],"o":[[0.612,0.018],[0,0]],"v":[[-44.165,189.857],[-42.848,189.997]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[0,0],[-0.512,-0.165]],"o":[[0.625,0.106],[0,0]],"v":[[-51.502,187.797],[-50.173,188.129]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[0,0],[-0.515,0.155]],"o":[[0.575,-0.268],[0,0]],"v":[[-29.728,169.454],[-28.447,168.972]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":56,"s":[{"i":[[0,0],[-0.512,-0.042]],"o":[[0.625,0.027],[0,0]],"v":[[-28.002,157.535],[-26.673,157.619]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":60,"s":[{"i":[[0,0],[-0.512,-0.042]],"o":[[0.625,0.027],[0,0]],"v":[[-35.752,154.535],[-34.423,154.619]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":63,"s":[{"i":[[0,0],[-0.506,0.088]],"o":[[0.611,-0.132],[0,0]],"v":[[-39.072,144.574],[-37.766,144.32]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":65,"s":[{"i":[[0,0],[-0.506,0.088]],"o":[[0.611,-0.132],[0,0]],"v":[[-41.322,140.824],[-40.016,140.57]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":68,"s":[{"i":[[0,0],[-0.506,-0.014]],"o":[[0.617,-0.006],[0,0]],"v":[[-42.032,150.38],[-40.719,150.393]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":70,"s":[{"i":[[0,0],[-0.507,-0.083]],"o":[[0.621,0.077],[0,0]],"v":[[-26.672,153.834],[-25.354,154.025]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":75,"s":[{"i":[[0,0],[-0.506,0.088]],"o":[[0.611,-0.132],[0,0]],"v":[[-28.822,152.574],[-27.516,152.32]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":83,"s":[{"i":[[0,0],[-0.239,-0.455]],"o":[[0.312,0.542],[0,0]],"v":[[-29.443,150.438],[-28.802,151.605]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":89,"s":[{"i":[[0,0],[-0.134,-0.496]],"o":[[0.187,0.597],[0,0]],"v":[[-37.857,154.543],[-37.485,155.821]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":95,"s":[{"i":[[0,0],[-0.233,-0.447]],"o":[[0.304,0.533],[0,0]],"v":[[-40.785,168.84],[-40.161,169.987]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":100,"s":[{"i":[[0,0],[-0.314,-0.406]],"o":[[0.402,0.479],[0,0]],"v":[[-42.309,175.254],[-41.474,176.292]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":101,"s":[{"i":[[0,0],[-0.241,-0.374]],"o":[[0.311,0.444],[0,0]],"v":[[-41.408,173.915],[-40.766,174.873]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":103,"s":[{"i":[[0,0],[-0.285,-0.16]],"o":[[0.354,0.181],[0,0]],"v":[[-36.213,159.354],[-35.467,159.755]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":107,"s":[{"i":[[0,0],[-0.328,0.395]],"o":[[0.381,-0.496],[0,0]],"v":[[-25.239,123.79],[-24.407,122.751]],"c":false}]},{"i":{"x":0.29,"y":1},"o":{"x":0.333,"y":0},"t":114,"s":[{"i":[[0,0],[-0.181,0.481]],"o":[[0.197,-0.594],[0,0]],"v":[[-22.487,84.908],[-22.043,83.653]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":130,"s":[{"i":[[0,0],[-0.502,0.108]],"o":[[0.606,-0.156],[0,0]],"v":[[-50.006,94.559],[-48.711,94.253]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":138,"s":[{"i":[[0,0],[-0.285,0.427]],"o":[[0.327,-0.533],[0,0]],"v":[[43.393,82.63],[44.111,81.509]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":139,"s":[{"i":[[0,0],[-0.362,0.34]],"o":[[0.424,-0.431],[0,0]],"v":[[23.91,101.932],[24.83,101.033]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":140,"s":[{"i":[[0,0],[-0.46,0.229]],"o":[[0.549,-0.3],[0,0]],"v":[[-3.537,121.563],[-2.357,120.948]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":142,"s":[{"i":[[0,0],[-0.285,0.427]],"o":[[0.327,-0.533],[0,0]],"v":[[-47.034,155.661],[-46.315,154.54]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":144,"s":[{"i":[[0,0],[-0.013,0.32]],"o":[[0,-0.39],[0,0]],"v":[[-49.132,166.755],[-49.115,165.924]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":146,"s":[{"i":[[0,0],[0.338,0.183]],"o":[[-0.42,-0.207],[0,0]],"v":[[-29.307,175.646],[-30.192,175.189]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":148,"s":[{"i":[[0,0],[0.44,0.266]],"o":[[-0.547,-0.302],[0,0]],"v":[[-9.267,166.54],[-10.419,165.873]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":150,"s":[{"i":[[0,0],[0.423,0.291]],"o":[[-0.529,-0.334],[0,0]],"v":[[23.801,163.669],[22.69,162.935]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":152,"s":[{"i":[[0,0],[0.386,0.337]],"o":[[-0.486,-0.392],[0,0]],"v":[[29.879,149.646],[28.862,148.792]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":154,"s":[{"i":[[0,0],[0.441,0.254]],"o":[[-0.549,-0.289],[0,0]],"v":[[30.246,140.707],[29.09,140.07]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":155,"s":[{"i":[[0,0],[0.446,0.25]],"o":[[-0.555,-0.283],[0,0]],"v":[[31.011,137.461],[29.843,136.834]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":156,"s":[{"i":[[0,0],[0.451,0.241]],"o":[[-0.56,-0.272],[0,0]],"v":[[34.676,128.881],[33.495,128.278]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":160,"s":[{"i":[[0,0],[0.469,0.209]],"o":[[-0.581,-0.232],[0,0]],"v":[[31.575,126.296],[30.349,125.777]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":166,"s":[{"i":[[0,0],[0.504,-0.073]],"o":[[-0.61,0.113],[0,0]],"v":[[37.663,120.666],[36.359,120.88]],"c":false}]},{"t":179,"s":[{"i":[[0,0],[0.396,0.327]],"o":[[-0.498,-0.379],[0,0]],"v":[[36.983,121.075],[35.94,120.248]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":18,"s":[0]},{"t":40,"s":[4]}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[1.583,191.136],[4.726,191.856]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-5.565,177.197],[-3.396,175.025]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-5.244,175.549],[-2.448,173.942]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-9.488,164.883],[-7.203,162.608]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":56,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-6.378,160.248],[-3.314,159.243]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":60,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0.501,156.581],[2.308,153.91]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":63,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[4.994,162.35],[5.314,159.141]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":66,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[3.409,160.456],[4.81,158.66]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":68,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-14.856,161.361],[-12.735,160.506]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":70,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.621,156.765],[-5.779,156.852]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":75,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-11.031,148.731],[-8.161,147.26]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":83,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-14.674,155.168],[-11.517,155.824]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":89,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-22.674,158.668],[-19.517,159.324]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":95,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-27.743,172.918],[-24.586,173.574]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":100,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-26.924,177.918],[-23.767,178.574]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":101,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-27.261,178.231],[-24.4,179.217]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":103,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-22.896,159.06],[-20.234,159.102]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":104,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-18.128,143.366],[-16.017,142.004]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":107,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-16.456,109.859],[-14.736,107.132]],"c":false}]},{"i":{"x":0.29,"y":1},"o":{"x":0.333,"y":0},"t":114,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-16.244,65.851],[-15.948,62.64]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":130,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-27.851,90.324],[-24.841,89.167]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":138,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[50.808,63.757],[51.892,60.72]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":139,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[37.859,85.173],[40.828,79.255]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":140,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[13.937,108.138],[21.263,102.154]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":142,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-35.949,141.572],[-33.623,139.339]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":144,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-41.841,150.101],[-39.734,149.806]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":146,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-47.583,162.006],[-45.758,164.204]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":148,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-28.387,156.172],[-25.301,157.107]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":150,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[5.326,152.191],[8.351,153.307]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":152,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[12.598,136.37],[15.469,137.821]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":155,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[10.895,128.514],[13.997,129.344]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":156,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[14.077,122.995],[17.196,123.762]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":160,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.817,119.88],[12.995,120.425]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":166,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[13.504,118.355],[16.476,118.169]],"c":false}]},{"t":179,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[25.106,100.503],[26.706,103.302]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.20000000298,0.850980401039,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":18,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":40,"s":[12]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":56,"s":[12]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":60,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":71,"s":[0]},{"t":73,"s":[12]}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[0,0],[-15.411,20.813]],"o":[[0,0],[0,0]],"v":[[-47.451,185.962],[-8.089,175.437]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[-22.892,11.668]],"o":[[0,0],[0,0]],"v":[[-102.662,185.789],[-8.858,186.082]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[0,0],[-26.582,19.947]],"o":[[0,0],[0,0]],"v":[[-82.506,187.174],[-12.168,182.303]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[0,0],[-35.911,20.813]],"o":[[0,0],[0,0]],"v":[[-93.951,177.462],[-14.089,181.437]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[0,0],[-23.411,8.313]],"o":[[0,0],[0,0]],"v":[[-90.201,168.712],[-26.339,172.187]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":56,"s":[{"i":[[0,0],[-23.411,2.112]],"o":[[0,0],[0,0]],"v":[[-89.701,159.755],[-25.839,160.638]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":60,"s":[{"i":[[0,0],[-23.411,2.112]],"o":[[0,0],[0,0]],"v":[[-89.701,159.755],[-35.339,156.888]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":63,"s":[{"i":[[0,0],[-18.921,9.754]],"o":[[0,0],[0,0]],"v":[[-84.951,162.755],[-38.079,146.746]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":65,"s":[{"i":[[0,0],[-18.921,9.754]],"o":[[0,0],[0,0]],"v":[[-84.951,162.755],[-40.329,142.996]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":68,"s":[{"i":[[0,0],[-11.874,2.199]],"o":[[0,0],[0,0]],"v":[[-89.876,165.43],[-41.501,152.676]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":70,"s":[{"i":[[0,0],[-7.176,-2.838]],"o":[[0,0],[0,0]],"v":[[-83.826,167.13],[-26.449,156.213]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":75,"s":[{"i":[[0,0],[-6.171,13.254]],"o":[[0,0],[0,0]],"v":[[-78.951,171.005],[-27.829,154.746]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":83,"s":[{"i":[[0,0],[-14.505,-1.833]],"o":[[0,0],[0,0]],"v":[[-85.701,158.505],[-31.208,152.047]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":89,"s":[{"i":[[0,0],[-13.764,-4.931]],"o":[[0,0],[0,0]],"v":[[-92.777,154.484],[-39.93,155.731]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":95,"s":[{"i":[[0,0],[-11.702,-2.322]],"o":[[0,0],[0,0]],"v":[[-90.257,156.809],[-42.522,170.413]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":100,"s":[{"i":[[0,0],[-9.984,-0.148]],"o":[[0,0],[0,0]],"v":[[-88.157,158.747],[-43.766,177.148]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":101,"s":[{"i":[[0,0],[-9.473,-0.154]],"o":[[0,0],[0,0]],"v":[[-83.871,157.695],[-42.522,175.358]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":103,"s":[{"i":[[0,0],[-8.063,4.994]],"o":[[0,0],[0,0]],"v":[[-75.3,155.592],[-35.799,160.428]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":104,"s":[{"i":[[0,0],[-6.752,4.842]],"o":[[0,0],[0,0]],"v":[[-70.452,155.103],[-32.248,151.158]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":107,"s":[{"i":[[0,0],[-0.906,17.155]],"o":[[0,0],[0,0]],"v":[[-55.909,153.635],[-21.594,123.345]],"c":false}]},{"i":{"x":0.29,"y":1},"o":{"x":0.333,"y":0},"t":114,"s":[{"i":[[0,0],[-3.059,16.959]],"o":[[0,0],[0,0]],"v":[[-44.008,137.863],[-19.191,83.291]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":130,"s":[{"i":[[0,0],[-28.387,11.544]],"o":[[0,0],[0,0]],"v":[[-92.758,122.613],[-46.113,96.456]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":138,"s":[{"i":[[0,0],[-17.269,42.897]],"o":[[0,0],[0,0]],"v":[[2.279,127.477],[46.02,81.684]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":139,"s":[{"i":[[0,0],[-27.156,22.195]],"o":[[0,0],[0,0]],"v":[[-27.106,146.032],[29.095,103.815]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":140,"s":[{"i":[[0,0],[-36.446,20.416]],"o":[[0,0],[0,0]],"v":[[-64.887,169.888],[-0.788,122.049]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":142,"s":[{"i":[[0,0],[-25.652,28.785]],"o":[[0,0],[0,0]],"v":[[-31.463,176.85],[-44.407,154.715]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":144,"s":[{"i":[[0,0],[-7.608,17.753]],"o":[[0,0],[0,0]],"v":[[19.662,178.559],[-48.042,165.395]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":146,"s":[{"i":[[0,0],[15.591,3.569]],"o":[[0,0],[0,0]],"v":[[40.861,179.812],[-30.193,173.755]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":148,"s":[{"i":[[0,0],[28.233,10.177]],"o":[[0,0],[0,0]],"v":[[57.561,177.42],[-10.33,163.958]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":150,"s":[{"i":[[0,0],[27.583,11.825]],"o":[[0,0],[0,0]],"v":[[73.845,175.044],[22.892,161.029]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":152,"s":[{"i":[[0,0],[25.989,14.869]],"o":[[0,0],[0,0]],"v":[[75.328,167.356],[29.279,146.926]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":153,"s":[{"i":[[0,0],[26.837,14.174]],"o":[[0,0],[0,0]],"v":[[74.063,165.934],[29.209,142.548]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":154,"s":[{"i":[[0,0],[27.685,13.48]],"o":[[0,0],[0,0]],"v":[[74.404,160.714],[29.139,138.17]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":155,"s":[{"i":[[0,0],[28.43,9.211]],"o":[[0,0],[0,0]],"v":[[78.35,151.699],[29.869,134.926]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":156,"s":[{"i":[[0,0],[28.619,8.628]],"o":[[0,0],[0,0]],"v":[[82.893,140.403],[33.482,126.369]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":157,"s":[{"i":[[0,0],[34.347,9.541]],"o":[[0,0],[0,0]],"v":[[81.898,138.807],[32.562,125.667]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":160,"s":[{"i":[[0,0],[49.051,11.884]],"o":[[0,0],[0,0]],"v":[[84.854,128.605],[30.199,123.866]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":163,"s":[{"i":[[17.239,-4.759],[17.15,4.305]],"o":[[-15.921,4.395],[0,0]],"v":[[89.921,135.105],[31.1,121.695]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":167,"s":[{"i":[[0,0],[18.057,-10.166]],"o":[[0,0],[0,0]],"v":[[88.853,135.861],[31.943,119.666]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":173,"s":[{"i":[[0,0],[29.314,11.417]],"o":[[0,0],[0,0]],"v":[[94.748,134.346],[33.831,115.116]],"c":false}]},{"t":179,"s":[{"i":[[0,0],[29.051,21.884]],"o":[[0,0],[0,0]],"v":[[95.854,109.855],[35.824,113.991]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.20000000298,0.850980401039,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":18,"s":[0]},{"t":40,"s":[12]}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0.509,-20.612]},"a":{"a":0,"k":[0.509,-20.612]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[-2.833,-1.381]],"o":[[0,0],[0,0]],"v":[[-49.959,-126.215],[-42.836,-124.008]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[-2.739,-1.558]],"o":[[0,0],[0,0]],"v":[[-42.726,-94.4],[-35.758,-90.995]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[0,0],[-2.739,-1.558]],"o":[[0,0],[0,0]],"v":[[-51.976,-70.65],[-45.008,-67.245]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[0,0],[-2.293,0.09]],"o":[[0,0],[0,0]],"v":[[-48.397,-57.072],[-40.451,-57.246]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,0],[-1.8,0.877]],"o":[[0,0],[0,0]],"v":[[-43.16,-53.101],[-34.45,-53.877]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":29,"s":[{"i":[[0,0],[-3.203,-0.057]],"o":[[0,0],[0,0]],"v":[[-36.127,-47.326],[-28.797,-47.193]],"c":false}]},{"t":45,"s":[{"i":[[0,0],[-1.981,0.18]],"o":[[0,0],[0,0]],"v":[[-9.74,-22.907],[-5.207,-23.316]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":4},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[-0.424,-0.331]],"o":[[0.551,0.314],[0,0]],"v":[[-37.416,-121.558],[-36.281,-120.792]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[-0.402,-0.357]],"o":[[0.53,0.348],[0,0]],"v":[[-30.504,-88.206],[-29.421,-87.368]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[0,0],[-0.402,-0.357]],"o":[[0.53,0.348],[0,0]],"v":[[-35.754,-63.956],[-34.671,-63.118]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[0,0],[-0.48,-0.131]],"o":[[0.576,0.072],[0,0]],"v":[[-31.804,-58.203],[-30.569,-57.953]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,0],[-0.492,-0.079]],"o":[[0.575,0.008],[0,0]],"v":[[-26.357,-55.814],[-25.107,-55.7]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":29,"s":[{"i":[[0,0],[-0.412,-0.248]],"o":[[0.507,0.21],[0,0]],"v":[[-18.999,-45.454],[-17.925,-44.906]],"c":false}]},{"t":45,"s":[{"i":[[0,0],[-0.283,-0.216]],"o":[[0.337,0.171],[0,0]],"v":[[1.038,-22.313],[1.765,-21.848]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":4},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-26.429,-103.635],[-24.763,-100.874]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-13.417,-71.864],[-10.274,-71.144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.708,-62.239],[-1.484,-62.269]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":29,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-0.418,-40.612],[2.726,-39.897]],"c":false}]},{"t":45,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[13.066,-18.876],[15.089,-18.397]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.20000000298,0.850980401039,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":12},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[-30.407,-20.795]],"o":[[0,0],[0,0]],"v":[[-95.897,-109.904],[-36.281,-114.223]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[-28.661,-28.687]],"o":[[0,0],[0,0]],"v":[[-89.076,-96.163],[-29.839,-80.813]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[0,0],[-22.483,-17.687]],"o":[[0,0],[0,0]],"v":[[-76.54,-88.127],[-30.267,-66.813]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[0,0],[-21.661,-4.937]],"o":[[0,0],[0,0]],"v":[[-72.826,-72.913],[-30.589,-56.313]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[0,0],[-19.522,1.878]],"o":[[0,0],[0,0]],"v":[[-63.345,-56.901],[-25.127,-53.608]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,0],[-17.398,1.331]],"o":[[0,0],[0,0]],"v":[[-54.365,-49.89],[-20.122,-51.933]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":29,"s":[{"i":[[0,0],[-15.184,-0.403]],"o":[[0,0],[0,0]],"v":[[-44.01,-42.878],[-13.566,-41.597]],"c":false}]},{"t":45,"s":[{"i":[[0,0],[-9.406,0.721]],"o":[[0,0],[0,0]],"v":[[-14.07,-17.909],[4.845,-18.884]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.20000000298,0.850980401039,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":12},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0.509,-20.612]},"a":{"a":0,"k":[0.509,-20.612]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":38,"s":[100]},{"t":45,"s":[0]}]},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":37,"ty":4,"parent":4,"sr":1,"ks":{"p":{"a":0,"k":[6.706,-31.468,0]},"a":{"a":0,"k":[6.706,-31.468,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[-1.334,-5.293]],"o":[[0.709,4.033],[0,0]],"v":[[-116.709,184.717],[-115.916,189.293]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[-1.334,-5.293]],"o":[[1.709,10.783],[0,0]],"v":[[-117.959,168.717],[-115.916,182.793]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":34,"s":[{"i":[[0,0],[-1.334,-5.793]],"o":[[-1.041,11.533],[0,0]],"v":[[-108.959,170.217],[-109.666,187.293]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":48,"s":[{"i":[[0,0],[-1.334,-5.793]],"o":[[-1.041,11.533],[0,0]],"v":[[-107.459,168.717],[-109.666,187.293]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":56,"s":[{"i":[[0,0],[-0.084,-7.043]],"o":[[-0.041,9.783],[0,0]],"v":[[-110.959,159.717],[-110.666,186.293]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":65,"s":[{"i":[[0,0],[-0.084,-7.043]],"o":[[-0.041,9.783],[0,0]],"v":[[-110.709,165.967],[-110.666,186.293]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":74,"s":[{"i":[[0,0],[-0.084,-7.043]],"o":[[-0.041,9.783],[0,0]],"v":[[-110.668,153.717],[-110.666,186.293]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":85,"s":[{"i":[[0,0],[-0.084,-7.043]],"o":[[-0.041,9.783],[0,0]],"v":[[-110.586,165.717],[-110.666,186.293]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":99,"s":[{"i":[[0,0],[-0.084,-7.043]],"o":[[-0.041,9.783],[0,0]],"v":[[-110.673,144.467],[-110.666,186.293]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":113,"s":[{"i":[[0,0],[-4.334,-3.043]],"o":[[-3.154,4.283],[0,0]],"v":[[-106.346,171.467],[-106.416,183.293]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":129,"s":[{"i":[[0,0],[-4.334,-3.043]],"o":[[-3.154,4.283],[0,0]],"v":[[-112.096,156.967],[-106.416,183.293]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":134,"s":[{"i":[[0,0],[-5.365,-2.326]],"o":[[-4.34,10.936],[0,0]],"v":[[-90.565,163.289],[-85.56,182.803]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":137,"s":[{"i":[[0,0],[-6.334,-1.652]],"o":[[-5.454,17.188],[0,0]],"v":[[-71.105,166.511],[-37.238,183.513]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":140,"s":[{"i":[[0,0],[-9.368,0.46]],"o":[[12.777,6.571],[0,0]],"v":[[-57.255,173.103],[11.992,181.576]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":145,"s":[{"i":[[0,0],[-13.509,3.341]],"o":[[-3.154,4.283],[0,0]],"v":[[72.976,183.751],[124.337,176.489]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":150,"s":[{"i":[[0,0],[17.519,44.604]],"o":[[8.351,1.39],[0,0]],"v":[[100.209,181.918],[117.573,136.001]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":153,"s":[{"i":[[0,0],[14.795,34.623]],"o":[[-2.036,-8.679],[0,0]],"v":[[118.541,158.477],[105.86,109.139]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":158,"s":[{"i":[[0,0],[14.902,9.068]],"o":[[-6.101,-9.43],[0,0]],"v":[[97.193,81.015],[63.169,41.642]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":163,"s":[{"i":[[0,0],[14.759,2.319]],"o":[[-10.166,-10.182],[0,0]],"v":[[59.416,39.432],[16.991,17.181]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":170,"s":[{"i":[[0,0],[6.12,17.033]],"o":[[-3.978,-1.351],[0,0]],"v":[[28.228,24.101],[9.608,7.636]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[2.436,9.563]],"o":[[-2.609,-1.157],[0,0]],"v":[[20.859,19.032],[9.689,4.062]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0,0.607843160629,0.878431379795,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":22,"s":[0]},{"t":28,"s":[12]}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[-2.537,-9.519]],"o":[[2.421,0.609],[0,0]],"v":[[-21.209,-19.033],[-10.166,-5.307]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[{"i":[[0,0],[-1.834,-16.193]],"o":[[2.421,0.609],[0,0]],"v":[[-21.209,-19.033],[-10.166,1.943]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[0,0],[0.166,-8.943]],"o":[[11.709,2.283],[0,0]],"v":[[-23.459,-18.033],[-8.666,7.193]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":27,"s":[{"i":[[0,0],[-0.834,-4.693]],"o":[[11.959,1.033],[0,0]],"v":[[-23.459,-18.033],[-9.666,4.443]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":44,"s":[{"i":[[0,0],[-3.834,-41.443]],"o":[[14.209,3.533],[0,0]],"v":[[-19.709,-18.033],[-0.916,62.443]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[{"i":[[0,0],[-0.834,-47.193]],"o":[[11.584,10.658],[0,0]],"v":[[-9.584,-3.408],[0.209,55.693]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":52,"s":[{"i":[[0,0],[-7.334,-41.193]],"o":[[10.709,13.033],[0,0]],"v":[[-6.209,1.467],[2.834,54.693]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":56,"s":[{"i":[[0,0],[-0.168,-27.193]],"o":[[3.32,16.589],[0,0]],"v":[[-1.82,35.411],[6.39,102.527]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":59,"s":[{"i":[[0,0],[0.332,-12.193]],"o":[[2.354,7.856],[0,0]],"v":[[2.246,105.444],[5.557,133.327]],"c":false}]},{"t":61,"s":[{"i":[[0,0],[0.666,-2.193]],"o":[[1.709,2.033],[0,0]],"v":[[-4.209,155.467],[-4.166,157.193]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0,0.607843160629,0.878431379795,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[12]},{"t":43,"s":[0]}]},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":38,"ty":4,"parent":4,"sr":1,"ks":{"p":{"a":0,"k":[6.706,-31.468,0]},"a":{"a":0,"k":[6.706,-31.468,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[11.17,-10.56],[3.891,4.699],[-11.17,10.56],[-3.891,-4.699]],"o":[[-11.17,10.56],[-3.891,-4.699],[11.17,-10.56],[3.891,4.699]],"v":[[64.702,-97.094],[37.432,-86.481],[50.611,-114.112],[77.882,-124.724]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[13.642,-6.593],[2.285,5.381],[-13.15,6.636],[-2.285,-5.381]],"o":[[-13.171,6.516],[-2.285,-5.381],[13.15,-6.636],[2.285,5.381]],"v":[[43.294,-72.359],[15.346,-70.087],[35.269,-86.346],[61.217,-93.244]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[16.113,-2.626],[0.679,6.063],[-15.131,2.712],[-0.679,-6.063]],"o":[[-15.172,2.472],[-0.679,-6.063],[15.131,-2.712],[0.679,6.063]],"v":[[21.887,-47.624],[-6.74,-53.692],[19.426,-69.581],[44.553,-61.763]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[12.51,-6.398],[0.183,3.913],[-18.158,-0.413],[-0.183,-3.913]],"o":[[-11.919,6.096],[-0.183,-3.913],[11.924,0.271],[0.183,3.913]],"v":[[-4.01,-52.602],[-29.212,-51.642],[-5.674,-68.021],[14.622,-64.467]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[11.947,0.471],[-0.033,3.692],[-11.254,-0.385],[0.384,-1.455]],"o":[[-11.249,-0.443],[0.013,-1.505],[11.254,0.385],[-0.384,1.455]],"v":[[16.215,-48.112],[-4.967,-58.942],[17.605,-53.381],[34.523,-49.878]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":103,"s":[{"i":[[11.947,0.471],[-0.384,1.455],[-11.254,-0.385],[0.384,-1.455]],"o":[[-11.249,-0.443],[0.384,-1.455],[11.254,0.385],[-0.384,1.455]],"v":[[3.715,156.888],[-15.967,153.558],[5.105,151.619],[22.023,155.122]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":106,"s":[{"i":[[9.761,0.471],[-0.313,1.455],[-9.194,-0.385],[0.313,-1.455]],"o":[[-9.19,-0.443],[0.313,-1.455],[9.194,0.385],[-0.313,1.455]],"v":[[3.202,109.634],[-12.684,107.852],[4.337,104.364],[13.853,108.667]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":114,"s":[{"i":[[6.302,0.471],[-0.202,1.455],[-5.937,-0.385],[0.202,-1.455]],"o":[[-5.934,-0.443],[0.202,-1.455],[5.937,0.385],[-0.202,1.455]],"v":[[2.891,30.888],[-6.992,31.558],[3.623,25.619],[13.048,33.122]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":116,"s":[{"i":[[7.886,0.477],[-0.272,2.262],[-7.584,-0.406],[0.272,-2.262]],"o":[[-7.582,-0.455],[0.272,-2.262],[7.584,0.406],[-0.272,2.262]],"v":[[2.069,38.67],[-10.758,37.14],[3.055,30.479],[15.503,38.753]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":119,"s":[{"i":[[11.111,0.491],[-0.415,3.905],[-10.939,-0.451],[0.415,-3.905]],"o":[[-10.938,-0.478],[0.415,-3.905],[10.939,0.451],[-0.415,3.905]],"v":[[3.432,71.217],[-15.39,65.208],[4.934,57.076],[23.54,66.921]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0.167},"t":122,"s":[{"i":[[13.401,0.501],[-0.516,5.072],[-13.322,-0.482],[0.516,-5.072]],"o":[[-13.322,-0.495],[0.516,-5.072],[13.322,0.482],[-0.516,5.072]],"v":[[-1.363,93.643],[-24.442,84.453],[0.505,75.277],[23.486,86.236]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.33,"y":0},"t":129,"s":[{"i":[[15.363,0.509],[-0.602,6.071],[-15.363,-0.509],[0.602,-6.071]],"o":[[-15.363,-0.509],[0.602,-6.071],[15.363,0.509],[-0.602,6.071]],"v":[[-2.684,102.641],[-29.411,90.726],[-0.503,80.654],[26.224,92.569]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":132,"s":[{"i":[[13.628,-3.186],[0.522,5.595],[-13.184,2.243],[-0.717,-4.936]],"o":[[-13.407,2.498],[-0.522,-5.595],[13.263,-2.54],[0.823,4.933]],"v":[[-1.533,97.173],[-27.079,91.62],[-2.36,77.742],[21.368,83.328]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":134,"s":[{"i":[[11.789,-7.104],[1.714,5.089],[-10.874,5.161],[-2.116,-3.731]],"o":[[-11.332,5.685],[-1.714,-5.089],[11.035,-5.772],[2.334,3.725]],"v":[[14.118,91.221],[-10.176,92.412],[10.101,74.499],[30.649,73.375]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":135,"s":[{"i":[[10.675,-9.476],[2.436,4.783],[-9.476,6.927],[-2.963,-3.002]],"o":[[-10.076,7.615],[-2.436,-4.783],[9.687,-7.729],[3.249,2.994]],"v":[[23.1,92.329],[-0.435,97.604],[12.086,74.728],[30.71,69.542]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":137,"s":[{"i":[[8.448,-14.219],[3.88,4.171],[-6.678,10.46],[-4.656,-1.544]],"o":[[-7.564,11.475],[-3.88,-4.171],[6.99,-11.643],[5.079,1.532]],"v":[[41.064,94.546],[19.045,107.988],[31.253,82.745],[46.026,69.434]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":138,"s":[{"i":[[9.104,-15.058],[3.942,4.32],[-6.638,11.039],[-5.146,-1.453]],"o":[[-7.764,12.073],[-3.942,-4.32],[7.138,-12.334],[5.624,1.493]],"v":[[46.799,94.731],[26.742,108.475],[36.892,83.343],[46.972,66.317]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":140,"s":[{"i":[[10.195,-16.452],[4.046,4.567],[-6.572,12],[-5.961,-1.302]],"o":[[-8.097,13.066],[-4.046,-4.567],[7.383,-13.482],[6.531,1.427]],"v":[[44.571,89.318],[20.772,104.567],[34.507,78.62],[48.545,61.136]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":143,"s":[{"i":[[10.195,-16.452],[4.046,4.567],[-6.572,12],[-5.961,-1.302]],"o":[[-8.097,13.066],[-4.046,-4.567],[7.383,-13.482],[6.531,1.427]],"v":[[30.394,99.545],[6.596,114.794],[20.33,88.847],[34.369,71.363]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":149,"s":[{"i":[[-4.087,-14.286],[4.683,0.058],[3.428,9.929],[-4.795,1.893]],"o":[[3.246,11.345],[-4.683,-0.058],[-3.851,-11.155],[5.619,-2.394]],"v":[[-15.22,109.71],[-17.319,131.965],[-27.956,112.489],[-27.666,93.766]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":152,"s":[{"i":[[-16.182,-10.618],[4.67,-3.926],[11.826,6.881],[-3.149,5.226]],"o":[[12.852,8.433],[-4.67,3.926],[-13.286,-7.73],[3.81,-6.322]],"v":[[-11.168,95.272],[5.905,119.974],[-23.003,109.214],[-36.792,91.085]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":153,"s":[{"i":[[-16.182,-10.618],[4.67,-3.926],[11.826,6.881],[-3.149,5.226]],"o":[[12.852,8.433],[-4.67,3.926],[-13.286,-7.73],[3.81,-6.322]],"v":[[-10.492,90.949],[4.705,113.081],[-21.261,104.552],[-38.964,85.558]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":156,"s":[{"i":[[-19.275,-1.758],[2.275,-5.661],[13.673,0.509],[-0.321,6.093]],"o":[[15.308,1.396],[-2.275,5.661],[-15.361,-0.572],[0.388,-7.371]],"v":[[-20.863,100.745],[2.959,113.127],[-23.968,117.814],[-48.525,109.381]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":163,"s":[{"i":[[-18.58,5.424],[0.043,-6.101],[12.909,-4.534],[1.933,5.787]],"o":[[14.756,-4.308],[-0.043,6.101],[-14.503,5.094],[-2.339,-7.001]],"v":[[-33.911,107.966],[-7.21,110.762],[-30.548,124.986],[-56.487,126.133]],"c":true}]},{"t":179,"s":[{"i":[[-14.637,12.664],[-3.817,-4.76],[9.851,-9.495],[4.286,4.342]],"o":[[11.625,-10.057],[2.973,3.707],[-11.068,10.667],[-2.741,-2.776]],"v":[[-64.666,97.362],[-37.348,86.918],[-50.775,114.189],[-77.759,125.151]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.262745112181,0.843137264252,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":15,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":25,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":103,"s":[0]},{"t":114,"s":[100]}]},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":39,"ty":4,"parent":4,"sr":1,"ks":{"p":{"a":0,"k":[6.706,-31.468,0]},"a":{"a":0,"k":[6.706,-31.468,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[4.906,19.457],[-7.669,-16.16],[-1.661,-5.522]],"o":[[-2.984,-11.832],[4.305,9.072],[2.508,8.337]],"v":[[14.388,19.718],[-0.283,26.029],[5.683,48.905]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[4.906,19.457],[-7.669,-16.16],[-1.661,-5.522]],"o":[[-2.984,-11.832],[4.305,9.072],[2.508,8.337]],"v":[[14.388,29.718],[2.967,42.779],[7.933,109.905]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[7.612,-0.468],[-10.558,-4.804],[-9.683,2.345]],"o":[[-12.18,0.749],[3.783,1.721],[8.462,-2.05]],"v":[[5.138,190.968],[2.967,175.029],[20.183,175.905]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[21.862,-0.368],[-9.614,-3.899],[-27.833,-3.855]],"o":[[-29.224,0.591],[16.458,-4.379],[8.5,-1.828]],"v":[[4.188,192.118],[-16.458,184.129],[36.083,189.355]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[36.112,-0.268],[-8.671,-2.994],[-45.983,-10.055]],"o":[[-46.268,0.434],[29.133,-10.479],[8.539,-1.606]],"v":[[3.238,193.268],[-34.883,187.729],[46.983,188.305]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[78.862,0.032],[-5.839,-0.279],[-97.433,10.595]],"o":[[-97.4,-0.039],[51.783,2.471],[8.655,-0.941]],"v":[[0.388,196.718],[-82.283,189.279],[82.183,186.905]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[78.862,0.032],[-5.773,0.921],[-83.433,-2.405]],"o":[[-97.4,-0.039],[55.033,-8.779],[8.703,0.251]],"v":[[0.138,194.968],[-82.283,189.279],[82.183,186.905]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":47,"s":[{"i":[[78.862,0.032],[-5.615,1.627],[-48.433,-15.155]],"o":[[-97.4,-0.039],[22.533,-6.529],[8.309,2.6]],"v":[[-0.612,190.718],[-100.283,182.529],[104.933,181.655]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":61,"s":[{"i":[[78.862,0.032],[-4.97,3.078],[-50.433,-34.155]],"o":[[-97.4,-0.039],[47.283,-29.279],[7.209,4.882]],"v":[[-0.612,190.718],[-100.283,182.529],[119.183,179.405]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":63,"s":[{"i":[[78.862,0.032],[-5.804,0.698],[-47.183,1.095]],"o":[[-97.4,-0.039],[54.283,-6.529],[8.704,-0.202]],"v":[[-0.612,190.718],[-100.283,182.529],[119.183,179.405]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":73,"s":[{"i":[[78.862,0.032],[-5.448,2.121],[-78.933,-21.905]],"o":[[-97.4,-0.039],[73.283,-28.529],[8.389,2.328]],"v":[[-0.612,190.718],[-100.283,182.529],[119.183,179.405]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":100,"s":[{"i":[[135.112,0.782],[-5.519,-1.927],[-61.183,36.595]],"o":[[-129.892,-0.752],[108.783,37.971],[7.472,-4.469]],"v":[[0.388,191.218],[-108.283,154.029],[116.683,144.905]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":111,"s":[{"i":[[59.25,-0.867],[-9.243,10.587],[-102.331,-17.572]],"o":[[-48.245,0.587],[93.116,-91.077],[6.922,3.695]],"v":[[-0.849,184.621],[-77.773,163.099],[94.831,160.572]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":115,"s":[{"i":[[43.112,-1.218],[-10.035,13.248],[-81.683,-20.905]],"o":[[-30.877,0.872],[89.783,-118.529],[8.435,2.159]],"v":[[-1.112,183.218],[-71.283,165.029],[90.183,163.905]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":129,"s":[{"i":[[47.112,-0.718],[-25.248,37.023],[-17.476,-45.609]],"o":[[-30.885,0.471],[63.783,-93.529],[7.317,19.095]],"v":[[-1.112,183.218],[-92.283,150.529],[102.183,152.405]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":137,"s":[{"i":[[47.112,-0.718],[-37.131,25.088],[-37.48,-83.434]],"o":[[-30.885,0.471],[92.549,-62.532],[16.502,35.372]],"v":[[67.199,181.034],[-35.56,154.99],[107.944,120.584]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":141,"s":[{"i":[[47.112,-0.718],[-25.248,37.023],[-40.116,-85.055]],"o":[[-30.885,0.471],[63.783,-93.529],[8.723,18.495]],"v":[[96.752,180.09],[-11.02,156.921],[110.436,106.818]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":148,"s":[{"i":[[47.112,-0.718],[-6.115,22.486],[-40.116,-85.056]],"o":[[-30.885,0.471],[10.512,-38.654],[8.723,18.495]],"v":[[70.334,154.899],[-0.114,133.186],[82.439,85.337]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":157,"s":[{"i":[[3.926,-29.468],[15.198,17.663],[-92.927,-14.429]],"o":[[-4.079,30.619],[-26.127,-30.365],[20.207,3.138]],"v":[[68.994,72.36],[33.633,115.113],[33.025,28.742]],"c":true}]},{"t":179,"s":[{"i":[[22.772,-8.83],[11.001,20.542],[-16.344,10.788]],"o":[[-20.994,8.14],[-21.883,-40.863],[36.725,-24.242]],"v":[[75.994,101.11],[30.633,77.613],[-7.475,32.742]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.686274528503,0.956862747669,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":11,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":12,"s":[0]},{"t":22,"s":[100]}]},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[4.049,-6.245],[-10.724,-2.379],[0.644,3.658]],"o":[[-3.965,6.116],[10.724,2.379],[-0.644,-3.658]],"v":[[-20.799,-80.481],[-10.5,-59.88],[-11.63,-75.266]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[-0.112,-7.441],[-10.234,3.992],[2.571,2.68]],"o":[[0.11,7.288],[10.234,-3.992],[-2.571,-2.68]],"v":[[-1.513,-65.068],[18.51,-53.685],[9.007,-65.838]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":160,"s":[{"i":[[-3.803,6.728],[10.532,1.347],[-0.718,-3.641]],"o":[[3.724,-6.589],[-10.532,-1.347],[0.718,3.641]],"v":[[-6.642,98.967],[-17.201,79.119],[-15.724,94.593]],"c":true}]},{"t":179,"s":[{"i":[[-3.803,6.728],[10.532,1.347],[-0.718,-3.641]],"o":[[3.724,-6.589],[-10.532,-1.347],[0.718,3.641]],"v":[[21.358,79.467],[10.799,59.619],[12.276,75.093]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.686274528503,0.956862747669,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":11,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":160,"s":[0]},{"t":179,"s":[100]}]},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[-0.369,7.884],[1.397,-9.224]],"o":[[0.294,-6.283],[-1.397,9.224]],"v":[[29.078,-28.49],[19.877,-23.472]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[-0.369,7.884],[1.397,-9.224]],"o":[[0.294,-6.283],[-1.397,9.224]],"v":[[19.078,-15.615],[9.877,-10.597]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":160,"s":[{"i":[[-0.369,7.884],[1.397,-9.224]],"o":[[0.294,-6.283],[-1.397,9.224]],"v":[[-54.172,39.135],[-63.373,44.153]],"c":true}]},{"t":179,"s":[{"i":[[-0.369,7.884],[1.397,-9.224]],"o":[[0.294,-6.283],[-1.397,9.224]],"v":[[-19.672,22.385],[-28.873,27.403]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.686274528503,0.956862747669,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":11,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":160,"s":[0]},{"t":179,"s":[100]}]},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[18.098,9.757],[-14.904,9.892],[-13.962,-28.082],[-12.618,-11.596]],"o":[[-25.949,-13.99],[11.376,-7.551],[16.06,32.302],[6.638,6.1]],"v":[[-28.098,-33.757],[-77.167,-99.4],[-29.538,-79.418],[10.862,-38.6]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[15.047,6.399],[-5.833,13.9],[-18.462,-18.832],[-12.533,-11.688]],"o":[[-27.129,-11.537],[6.527,-15.555],[25.254,25.76],[15.388,14.35]],"v":[[-16.598,-25.007],[-80.167,-76.4],[-24.038,-60.668],[53.862,-44.35]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[16.331,-0.816],[-5.833,13.9],[-19.323,0.32],[-9.612,-6.4]],"o":[[-15.152,0.757],[6.527,-15.555],[20.038,-0.332],[9.208,6.131]],"v":[[-3.598,-14.007],[-50.917,-38.9],[-0.038,-35.918],[55.362,-39.1]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":44,"s":[{"i":[[6.687,-0.412],[-2.388,7.015],[-7.913,0.162],[-3.936,-3.23]],"o":[[-6.205,0.382],[2.673,-7.85],[8.205,-0.168],[3.771,3.094]],"v":[[5.336,2.663],[-18.041,-18.9],[3.544,-27.145],[26.729,-22.251]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[{"i":[[4.127,-0.166],[-1.474,2.827],[-4.883,0.065],[-2.429,-1.302]],"o":[[-3.829,0.154],[1.649,-3.163],[5.064,-0.068],[2.327,1.247]],"v":[[2.971,0.579],[-11.455,-8.11],[1.865,-11.432],[16.173,-9.46]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":160,"s":[{"i":[[5.27,4.982],[-1.161,1.829],[-3.266,-3.293],[-5.472,-5.987]],"o":[[-1.793,-1.695],[1.3,-2.047],[3.851,3.882],[8.697,9.514]],"v":[[-10.044,38.182],[-12.275,27.059],[-4.89,21.228],[2.84,32.498]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":170,"s":[{"i":[[4.749,7.845],[-1.326,2.354],[-2.923,-5.148],[-4.853,-9.281]],"o":[[-1.615,-2.668],[1.484,-2.635],[3.447,6.07],[7.713,14.749]],"v":[[-11.76,9.812],[-11.159,2.917],[-3.282,-3.962],[4.055,11.323]],"c":true}]},{"t":179,"s":[{"i":[[4.279,10.421],[-1.474,2.827],[-2.615,-6.818],[-4.296,-12.245]],"o":[[-1.456,-3.545],[1.649,-3.163],[3.083,8.038],[6.827,19.46]],"v":[[-13.779,-21.421],[-13.955,-41.61],[-5.635,-49.432],[-0.077,-27.21]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.686274528503,0.956862747669,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":43,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":50,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":160,"s":[0]},{"t":179,"s":[100]}]},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":40,"ty":4,"parent":4,"sr":1,"ks":{"p":{"a":0,"k":[6.706,-31.468,0]},"a":{"a":0,"k":[6.706,-31.468,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":62,"s":[{"i":[[27.041,-0.07],[4.416,3.975],[17.07,-0.808],[-4.132,-60.946],[0.444,10.161],[31.556,0.012],[7.009,-3.359]],"o":[[-27.041,0.07],[-7.366,-6.631],[-27.952,1.323],[0.553,8.153],[-1.965,-44.935],[-19.195,-0.007],[-8.535,4.09]],"v":[[9.291,163.18],[-26.634,141.704],[-94.298,151.427],[-123.368,191.946],[131.965,189.435],[103.445,148.007],[44.741,139.582]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":65,"s":[{"i":[[27.041,-0.07],[12.884,10.046],[17.07,-0.808],[-4.882,-64.946],[0.677,10.148],[31.556,0.012],[7.009,-3.359]],"o":[[-27.041,0.07],[-7.816,-6.094],[-27.952,1.323],[0.613,8.149],[-3.465,-51.935],[-19.195,-0.007],[-8.535,4.09]],"v":[[9.041,172.93],[-35.384,135.454],[-93.548,156.427],[-123.368,191.946],[131.965,189.435],[103.445,157.007],[48.991,136.832]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":75,"s":[{"i":[[13.55,0],[12.884,-4.204],[15.578,14.107],[-4.132,-60.946],[0.444,10.161],[27.311,-15.807],[11.518,0.836]],"o":[[-22.791,0],[-9.792,3.196],[-20.742,-18.783],[0.553,8.153],[-1.965,-44.935],[-12.945,7.493],[-19.075,-1.384]],"v":[[10.416,135.61],[-47.384,155.704],[-97.096,153.177],[-123.368,191.946],[131.965,189.435],[106.945,147.257],[66.482,159.664]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":86,"s":[{"i":[[13.55,0],[15.96,-0.341],[10.822,-2.515],[-4.814,-34.355],[0.444,10.161],[27.302,6.889],[11.518,0.836]],"o":[[-22.791,0],[-19.297,0.239],[-19.834,5.538],[1.181,8.083],[-1.965,-44.935],[-12.036,-2.962],[-19.075,-1.384]],"v":[[9.589,154.11],[-52.278,141.386],[-106.187,149.313],[-123.368,191.946],[131.965,189.435],[106.945,151.348],[66.027,144.437]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":100,"s":[{"i":[[13.55,0],[18.001,10.458],[16.687,14.812],[-4.814,-34.355],[0.444,10.161],[22.359,-3.848],[10.245,-5.331]],"o":[[-22.791,0],[-25.194,-14.636],[-13.036,-11.571],[1.181,8.083],[-1.965,-44.935],[-13.63,2.346],[-14.055,7.313]],"v":[[4.179,173.61],[-64.306,161.136],[-110.687,129.688],[-123.368,191.946],[131.965,189.435],[109.641,126.598],[59.555,159.187]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":107,"s":[{"i":[[15.627,0.25],[10.212,-8.848],[21.935,-8.023],[-11.264,-28.041],[-9.089,16.088],[20.349,3.774],[15.341,11.247]],"o":[[-22.153,-0.304],[-14.289,12.38],[-20.174,5.095],[6.743,11.588],[7.464,-32.453],[-18.756,-3.479],[-16.082,-11.791]],"v":[[1.737,79.805],[-38.212,131.348],[-84.935,146.023],[-121.327,188.393],[126.201,184.96],[91.651,145.726],[35.48,134.779]],"c":true}]},{"i":{"x":0.12,"y":1},"o":{"x":0.333,"y":0},"t":114,"s":[{"i":[[17.704,0.5],[6.354,-14.264],[16.183,-21.359],[-17.714,-21.728],[-18.622,22.015],[17.446,18.338],[4.594,17.13]],"o":[[-21.514,-0.608],[-8.883,19.941],[-21.089,27.833],[12.305,15.093],[16.894,-19.972],[-12.306,-12.934],[-4.25,-15.847]],"v":[[3.296,21],[-27.117,77.059],[-51.683,129.859],[-119.286,184.841],[120.437,180.485],[53.161,136.353],[33.406,79.37]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.33,"y":0},"t":130,"s":[{"i":[[12.795,0],[13.575,-5.413],[20.421,-11.415],[-17.714,-21.728],[-18.622,22.015],[17.446,12.865],[10.501,4.301]],"o":[[-21.522,0],[-13.48,5.375],[-27.311,15.267],[12.305,15.093],[16.894,-19.972],[-12.306,-9.074],[-15.684,-6.424]],"v":[[2.398,77.5],[-46.617,85.609],[-86.183,105.463],[-119.286,184.841],[120.437,180.485],[97.161,112.826],[60.406,91.791]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":138,"s":[{"i":[[16.637,10.055],[2.932,-14.318],[20.421,-11.415],[-17.714,-21.728],[-9.339,13.209],[8.365,25.978],[6.526,9.284]],"o":[[-18.419,-11.132],[-2.913,14.225],[-27.311,15.267],[12.305,15.093],[10.653,-15.069],[-4.686,-14.554],[-4.68,-6.658]],"v":[[77.77,42.722],[39.149,66.355],[6.326,114.418],[-77.253,182.724],[128.726,186.949],[121.028,109.602],[103.327,73.297]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":145,"s":[{"i":[[16.637,10.055],[2.932,-14.318],[17.292,-22.939],[-17.714,-21.728],[-9.339,13.209],[8.365,25.978],[6.526,9.284]],"o":[[-18.419,-11.132],[-2.913,14.225],[-18.834,24.985],[12.305,15.093],[10.653,-15.069],[-4.686,-14.554],[-4.68,-6.658]],"v":[[59.195,22.346],[22.579,20.226],[8.803,78.752],[-57.175,181.56],[128.726,186.949],[121.028,109.602],[103.27,70.797]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":153,"s":[{"i":[[16.637,10.055],[30.501,-15.832],[21.022,-32.348],[-20.696,-25.167],[-9.338,13.209],[8.365,25.978],[6.526,9.284]],"o":[[-18.419,-11.132],[-25.023,12.988],[-17.05,26.235],[26.695,32.463],[10.653,-15.069],[-4.686,-14.554],[-4.68,-6.658]],"v":[[59.195,22.346],[-32.885,11.269],[-97.334,62.893],[-4.797,124.386],[128.726,186.949],[121.028,109.602],[103.27,70.797]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":156,"s":[{"i":[[16.637,10.055],[30.501,-15.832],[12.023,-71.426],[-26.669,-4.818],[-30.657,-7.666],[8.365,25.978],[6.526,9.284]],"o":[[-18.419,-11.132],[-25.023,12.988],[-9.175,32.883],[42.852,3.74],[38.921,13.62],[-4.686,-14.554],[-4.68,-6.658]],"v":[[55.046,21.858],[-34.593,12.245],[-113.563,114.263],[-41.052,125.276],[82.077,149.232],[117.367,103.257],[98.633,64.941]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":160,"s":[{"i":[[16.637,10.055],[30.501,-15.832],[2.583,-112.413],[-29.811,13.154],[-15.712,-3.849],[8.365,25.978],[6.526,9.284]],"o":[[-18.419,-11.132],[-25.023,12.988],[-0.916,39.857],[59.798,-26.386],[53.274,13.051],[-4.686,-14.554],[-4.68,-6.658]],"v":[[50.695,21.346],[-36.385,13.269],[-130.584,168.143],[-87.298,148.386],[46.226,136.949],[113.528,96.602],[93.77,58.797]],"c":true}]},{"t":168,"s":[{"i":[[40.305,14.654],[15.885,-11.019],[0.084,-110.143],[-31.037,9.921],[-15.732,-3.769],[8.365,25.978],[6.526,9.284]],"o":[[-20.227,-7.354],[-24.61,17.071],[-0.005,6.857],[137.298,-43.886],[37.774,9.051],[-4.686,-14.554],[-4.68,-6.658]],"v":[[22.945,7.346],[-25.385,6.519],[-129.584,156.643],[-70.298,142.386],[100.726,153.949],[115.278,96.352],[95.02,58.798]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.078431375325,0.729411780834,0.956862747669,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":61,"s":[0]},{"t":62,"s":[100]}]},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":169,"st":0,"bm":0},{"ddd":0,"ind":41,"ty":4,"parent":1,"sr":1,"ks":{"p":{"a":0,"k":[6.706,-31.468,0]},"a":{"a":0,"k":[6.706,-31.468,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":168,"s":[{"i":[[-6.908,81.814],[29.528,-9.074],[14.395,-4.187],[11.576,-2.407],[17.642,-0.165],[24.411,16.888],[-1.454,-8.006],[-69.241,-28.912],[-0.542,-0.299],[-2.798,-0.708],[-2.104,-0.302],[-4.465,0.815],[-3.473,2.992],[-17.547,8.833]],"o":[[2.288,-27.097],[-10.26,3.153],[-14.362,4.177],[-14.222,2.957],[-19.478,0.183],[-48.016,-33.217],[8.679,47.777],[0,0],[2.208,1.326],[1.771,0.448],[2.993,0.429],[5.553,-1.013],[3.905,-3.365],[19.187,-9.658]],"v":[[128.212,-136.153],[104.972,-154.426],[70.45,-142.648],[29.972,-131.457],[-23.892,-124.585],[-83.484,-143.283],[-122.679,-126.277],[-23.57,-8.268],[-18.583,-5.451],[-9.521,-1.448],[-3.368,-0.179],[10.465,-0.065],[22.848,-4.617],[47.813,-19.342]],"c":true}]},{"t":180,"s":[{"i":[[-15.003,79.371],[22.146,-11.134],[14.395,-4.187],[14.344,-19.84],[16.056,18.55],[26.944,-6.311],[-3.604,-7.296],[-69.241,-28.912],[-0.583,-9.002],[-4.144,-12.005],[6.028,-16.171],[-7.296,15.246],[1.116,10.055],[-16.594,10.514]],"o":[[0,0],[-9.59,4.821],[-14.362,4.177],[-10.207,14.118],[-9.304,-10.749],[-26.944,6.311],[3.604,7.296],[0,0],[0.738,11.39],[2.262,6.552],[-3.827,10.266],[7.031,-14.692],[-1.842,-16.592],[19.138,-12.126]],"v":[[127.212,-137.403],[104.972,-136.676],[68.45,-129.898],[26.722,-93.457],[-20.892,-116.585],[-77.734,-132.033],[-113.179,-98.027],[-23.695,-7.518],[-18.708,3.299],[-5.021,29.677],[-2.868,70.696],[13.465,67.935],[22.973,6.508],[46.313,-19.342]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.078431375325,0.729411780834,0.956862747669,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":168,"op":180,"st":0,"bm":0},{"ddd":0,"ind":42,"ty":4,"parent":4,"sr":1,"ks":{"p":{"a":0,"k":[6.706,-31.468,0]},"a":{"a":0,"k":[6.706,-31.468,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[-15.003,79.371],[22.146,-11.134],[14.395,-4.187],[14.344,-19.84],[16.056,18.55],[26.944,-6.311],[-3.604,-7.296],[-69.241,-28.912],[-0.583,-9.002],[-4.144,-12.005],[6.028,-16.171],[-7.296,15.246],[1.116,10.055],[-16.594,10.514]],"o":[[0,0],[-9.59,4.821],[-14.362,4.177],[-10.207,14.118],[-9.304,-10.749],[-26.944,6.311],[3.604,7.296],[0,0],[0.738,11.39],[2.262,6.552],[-3.827,10.266],[7.031,-14.692],[-1.842,-16.592],[19.138,-12.126]],"v":[[127.212,-137.403],[104.972,-136.676],[68.45,-129.898],[26.722,-93.457],[-20.892,-116.585],[-77.734,-132.033],[-113.179,-98.027],[-23.695,-7.518],[-18.708,3.299],[-5.021,29.677],[-2.868,70.696],[13.465,67.935],[22.973,6.508],[46.313,-19.342]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[{"i":[[-15.886,67.183],[21.873,-9.39],[13.717,-5.29],[16.318,-13.735],[16.056,13.802],[32.06,-15.059],[-12.249,-17.898],[-46.917,-19.69],[-0.583,-9.002],[-2.165,-12.273],[7.364,-19.381],[-4.515,15.907],[-1.719,27.93],[-13.182,7.645]],"o":[[0,0],[-9.543,4.089],[-17.797,7.526],[-10.563,9.525],[-9.304,-7.998],[-19.382,6.067],[14.029,27.527],[2.644,1.153],[0.738,11.39],[0.765,13.26],[-3.878,10.247],[4.633,-29.189],[0.158,-21.533],[23.107,-12.094]],"v":[[121.612,-120.603],[101.972,-122.401],[69.05,-113.758],[25.522,-87.044],[-17.892,-103.552],[-87.734,-119.747],[-106.529,-83.777],[-22.995,-7.318],[-13.708,27.699],[-5.021,61.877],[-3.868,116.696],[12.465,113.935],[23.773,23.908],[38.613,-14.742]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[-17.212,48.903],[21.462,-6.775],[12.699,-6.944],[19.278,-4.576],[16.056,6.681],[39.734,-28.182],[-25.217,-33.803],[-13.43,-5.857],[-0.583,-9.002],[0.804,-12.675],[9.368,-24.196],[-0.343,16.899],[-5.973,54.743],[-8.063,3.342]],"o":[[0,0],[-9.472,2.99],[-22.95,12.549],[-11.096,2.634],[-9.304,-3.871],[-8.038,5.701],[28.929,38.777],[6.61,2.883],[0.738,11.391],[-1.479,23.323],[-3.956,10.217],[1.035,-50.935],[3.158,-28.946],[29.061,-12.044]],"v":[[113.212,-95.403],[97.472,-100.99],[69.95,-89.549],[23.722,-77.424],[-13.392,-84.004],[-102.734,-101.318],[-90.929,-61.777],[-21.945,-7.018],[-6.208,64.299],[-5.021,110.177],[-5.368,185.696],[10.965,182.935],[24.973,50.007],[27.063,-7.842]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[-16.562,45.953],[21.462,-6.775],[12.699,-6.944],[19.878,-3.376],[16.187,5.917],[37.184,-25.907],[-24.771,-32.297],[-13.43,-5.857],[-0.64,-8.997],[0.873,-12.668],[4.168,-4.221],[-0.965,4.865],[-10.973,121.843],[-8.063,3.342]],"o":[[0,0],[-9.472,2.99],[-22.95,12.549],[-11.08,2.049],[-11.084,-3.334],[-8.155,5.482],[28.779,37.377],[6.61,2.883],[1.485,16.622],[-2.054,95.673],[-3.832,7.779],[0.835,-47.585],[2.564,-28.949],[29.061,-12.044]],"v":[[110.912,-91.603],[97.622,-99.44],[69.65,-88.049],[21.572,-76.624],[-15.542,-81.854],[-101.334,-98.793],[-89.329,-59.777],[-21.945,-7.018],[-5.858,67.499],[-4.946,116.327],[-19.168,189.721],[20.965,190.635],[23.473,62.158],[27.063,-7.842]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[-15.262,40.053],[21.462,-6.775],[12.699,-6.944],[21.078,-0.976],[16.448,4.388],[32.084,-21.357],[-23.879,-29.286],[-13.43,-5.857],[-0.754,-8.986],[1.012,-12.656],[5.512,-14.488],[-0.428,9.196],[-6.473,140.543],[-8.063,3.342]],"o":[[0,0],[-9.472,2.99],[-22.95,12.549],[-11.049,0.88],[-14.645,-2.259],[-8.389,5.045],[28.479,34.577],[6.61,2.883],[2.979,27.084],[-3.704,85.373],[-3.251,8.457],[-2.465,-28.535],[1.375,-28.957],[29.061,-12.044]],"v":[[106.312,-84.003],[97.922,-96.34],[69.05,-85.049],[17.272,-75.024],[-19.842,-77.554],[-98.534,-93.743],[-86.129,-55.777],[-21.945,-7.018],[-5.158,73.899],[-4.796,128.627],[-43.018,189.021],[45.965,188.535],[11.473,101.457],[27.063,-7.842]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[{"i":[[-13.962,34.153],[21.462,-6.775],[12.699,-6.944],[22.278,1.424],[16.71,2.859],[26.984,-16.807],[-22.986,-26.276],[-13.43,-5.857],[-0.868,-8.975],[1.151,-12.643],[6.856,-24.755],[0.109,13.527],[-10.473,127.242],[-8.063,3.342]],"o":[[0,0],[-9.472,2.99],[-22.95,12.549],[-11.019,-0.29],[-18.206,-1.184],[-8.622,4.607],[28.179,31.777],[6.61,2.883],[4.473,37.546],[-5.354,75.073],[-2.669,9.136],[0.035,-34.185],[0.186,-28.965],[29.061,-12.044]],"v":[[101.712,-76.403],[98.222,-93.24],[68.45,-82.049],[12.972,-73.424],[-24.142,-73.254],[-95.734,-88.693],[-82.929,-51.777],[-21.945,-7.018],[-4.458,80.299],[-4.646,140.927],[-66.868,188.321],[70.965,186.435],[17.473,110.758],[27.063,-7.842]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[-10.712,19.403],[21.462,-6.775],[12.699,-6.944],[25.278,7.424],[17.364,-0.963],[14.234,-5.432],[-20.755,-18.749],[-13.43,-5.857],[-1.153,-8.947],[1.498,-12.611],[4.345,-25.315],[0.562,10.156],[3.027,31.493],[-8.063,3.342]],"o":[[0,0],[-9.472,2.99],[-22.95,12.549],[-10.942,-3.214],[-27.108,1.504],[-9.207,3.514],[27.429,24.777],[6.61,2.883],[8.208,63.701],[-4.729,39.823],[-1.382,8.054],[-0.965,-17.435],[-2.786,-28.984],[29.061,-12.044]],"v":[[90.212,-57.403],[98.972,-85.49],[66.95,-74.549],[2.222,-69.424],[-34.892,-62.504],[-88.734,-76.068],[-74.929,-41.777],[-21.945,-7.018],[-2.708,96.299],[-4.271,171.677],[-128.368,190.946],[130.965,189.935],[9.973,171.507],[27.063,-7.842]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[-13.495,12.11],[22.028,-4.26],[14.439,-1.007],[25.278,7.424],[17.364,-0.963],[14.234,-5.432],[-24.009,-14.347],[-13.43,-5.857],[-1.153,-8.947],[10.441,-7.23],[-14.132,-84.946],[-0.916,10.13],[64.027,41.493],[-7.542,4.393]],"o":[[14.038,-12.597],[-9.752,1.886],[-22.2,1.549],[-10.942,-3.214],[-27.108,1.504],[-9.207,3.514],[12.179,7.277],[6.61,2.883],[8.208,63.701],[-77.729,53.823],[1.341,8.061],[10.035,-110.935],[-19.07,-12.358],[14.437,-8.408]],"v":[[68.962,-33.153],[80.722,-59.74],[48.7,-58.549],[-1.278,-62.924],[-34.892,-59.254],[-84.984,-59.068],[-46.429,-19.277],[-21.945,-7.018],[-2.708,96.299],[-11.271,177.177],[-123.368,191.946],[131.965,189.435],[13.973,179.507],[27.063,-7.842]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[-4.843,2.835],[17.275,-4.26],[11.323,-1.007],[19.823,7.424],[13.617,-0.963],[8.471,-10.682],[-5.071,-2.223],[-13.43,-5.857],[-1.153,-8.947],[12.161,-3.662],[-4.132,-60.946],[-0.733,10.144],[65.264,10.325],[-7.555,4.371]],"o":[[15.538,-9.097],[-7.648,1.886],[-17.409,1.549],[-8.58,-3.214],[-21.258,1.504],[-4.989,6.291],[12.994,5.695],[6.61,2.883],[8.208,63.701],[-49.229,14.823],[0.553,8.153],[3.535,-48.935],[-37.973,-6.007],[7.187,-4.158]],"v":[[40.712,-14.403],[68.726,-42.74],[43.614,-41.549],[4.421,-42.674],[-23.689,-48.754],[-65.971,-40.818],[-46.429,-19.277],[-21.945,-7.018],[-1.208,104.549],[-23.271,174.677],[-123.368,191.946],[131.965,189.435],[25.473,179.507],[27.063,-7.842]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-4.843,2.835],[7.274,2.74],[8.511,1.799],[10.079,0.549],[9.689,-0.621],[5.221,-5.432],[-5.071,-2.223],[-1.43,-0.732],[-1.153,-8.947],[12.161,-3.662],[-4.132,-60.946],[-0.733,10.144],[65.264,10.325],[-7.196,4.939]],"o":[[15.538,-9.097],[-8.357,-3.148],[-10.649,-2.251],[-9.149,-0.498],[-21.267,1.363],[-5.564,5.789],[12.994,5.695],[9.259,4.74],[8.208,63.701],[-49.229,14.823],[0.553,8.153],[3.535,-48.935],[-37.973,-6.007],[1.687,-1.158]],"v":[[32.962,-11.278],[55.726,-28.74],[31.489,-35.549],[8.796,-37.299],[-16.189,-36.629],[-48.471,-25.568],[-27.429,-9.527],[-21.945,-7.018],[-5.208,87.549],[-23.771,163.677],[-123.368,191.946],[131.965,189.435],[24.973,168.507],[24.188,-5.967]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[{"i":[[-1.337,0.747],[7.189,2.957],[8.539,1.664],[10.086,0.383],[6.189,-0.871],[5.534,-5.113],[-4.447,-3.298],[-1.805,-18.357],[-1.666,-58.526],[12.161,-3.662],[-4.132,-60.946],[-0.733,10.144],[65.264,10.325],[-3.406,9.998]],"o":[[5.413,-3.722],[-3.976,-1.635],[-4.239,-0.826],[-5.296,-0.201],[-5.331,0.75],[-2.779,2.568],[1.554,1.152],[1.464,14.886],[1.209,42.451],[-49.229,14.823],[0.553,8.153],[3.535,-48.935],[-37.973,-6.007],[2.286,-6.708]],"v":[[24.462,-6.028],[31.726,-16.74],[18.614,-19.799],[0.796,-21.174],[-13.189,-20.254],[-26.846,-12.943],[-20.429,-4.652],[-5.945,18.357],[-1.209,111.299],[-22.771,156.677],[-123.368,191.946],[131.965,189.435],[25.973,161.507],[12.906,13.002]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":52,"s":[{"i":[[-0.434,7.757],[2.348,4.574],[3.041,2.483],[3.807,0.346],[2.389,-3.098],[1.668,-6.588],[-2.017,-4.013],[-1.805,-18.357],[-0.605,-41.934],[13.799,-2.674],[-4.132,-60.946],[-0.733,10.144],[65.506,8.009],[-2.156,8.998]],"o":[[2.31,-7.472],[-1.307,-3.113],[-1.712,-2.166],[-1.999,-0.182],[-2,2.308],[-0.865,2.504],[0.973,3.736],[1.464,14.886],[0.375,30.784],[-49.943,10.582],[0.553,8.153],[3.535,-48.935],[-35.13,-4.507],[1.408,-6.832]],"v":[[14.94,16.639],[15.152,-0.637],[10.587,-7.573],[3.759,-10.651],[-2.006,-6.735],[-6.317,3.134],[-6.386,14.723],[-3.112,48.69],[0.042,122.716],[-30.697,155.427],[-123.368,191.946],[131.965,189.435],[35.463,159.507],[11.74,57.252]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":56,"s":[{"i":[[0.538,21.778],[0.242,7.809],[1.86,4.122],[3.536,0.274],[2.496,-7.553],[-0.681,-9.537],[-1.026,-5.441],[-1.805,-18.357],[1.517,-8.751],[17.075,-0.698],[-4.132,-60.946],[-0.733,10.144],[65.989,3.378],[0.344,6.998]],"o":[[0.538,-14.972],[-0.188,-6.068],[-2.187,-4.845],[-1.857,-0.144],[-1.792,5.422],[0.17,2.376],[1.679,8.902],[1.464,14.886],[-1.292,7.451],[-51.369,2.099],[0.553,8.153],[3.535,-48.935],[-29.445,-1.507],[-0.348,-7.078]],"v":[[13.712,88.972],[14.258,58.568],[12.051,43.878],[5.167,37.394],[-2.764,47.303],[-2.295,62.287],[-1.429,80.473],[2.555,109.357],[2.542,145.549],[-46.548,152.927],[-123.368,191.946],[131.965,189.435],[54.445,155.507],[9.406,145.752]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":57,"s":[{"i":[[-0.184,18.167],[0.207,6.513],[1.595,3.438],[3.031,0.229],[2.14,-6.299],[-0.584,-7.954],[0.403,-5.813],[-0.008,-14.011],[5.931,-3.938],[17.074,-0.722],[-4.132,-60.946],[-0.471,10.148],[58.337,2.57],[5.776,3.217]],"o":[[-0.184,-13.333],[-0.161,-5.061],[-1.874,-4.041],[-1.592,-0.12],[-1.536,4.523],[0.145,1.982],[0.623,7.916],[-0.152,11.332],[-5.819,2.062],[-46.166,1.926],[0.553,8.153],[2.313,-48.046],[-29.454,-1.119],[-14.462,-1.474]],"v":[[12.768,104.417],[13.043,76.003],[11.151,63.751],[5.25,58.342],[-1.548,66.607],[-1.146,79.104],[-0.04,98.167],[2.61,128.496],[-7.931,151.938],[-57.159,152.594],[-123.368,191.946],[131.965,189.435],[65.334,153.841],[17.212,150.224]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":58,"s":[{"i":[[-0.545,16.361],[0.19,5.865],[1.462,3.096],[2.779,0.206],[1.961,-5.673],[-0.535,-7.163],[1.118,-5.999],[0.891,-11.839],[6.755,-2.069],[17.073,-0.734],[-4.132,-60.946],[-0.34,10.15],[54.511,2.166],[8.492,1.326]],"o":[[-0.545,-12.514],[-0.147,-4.558],[-1.718,-3.639],[-1.459,-0.108],[-1.408,4.073],[0.133,1.785],[0.095,7.423],[-0.959,9.555],[-5.208,2.118],[-43.564,1.84],[0.553,8.153],[1.702,-47.602],[-29.458,-0.925],[-14.24,-2.835]],"v":[[12.295,112.139],[12.435,84.72],[10.701,73.687],[5.292,68.816],[-0.94,76.259],[-0.571,87.513],[0.655,107.014],[2.638,138.065],[-12.792,149.132],[-62.465,152.427],[-123.368,191.946],[131.965,189.435],[70.779,153.007],[19.99,150.585]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":59,"s":[{"i":[[3.371,12.695],[0.138,3.922],[1.063,2.07],[2.021,0.138],[1.426,-3.793],[-0.389,-4.789],[3.262,-6.556],[3.586,-5.32],[11.994,4.614],[17.071,-0.771],[-4.132,-60.946],[0.052,10.156],[43.033,0.954],[16.639,-4.347]],"o":[[-1.629,-10.055],[-0.107,-3.047],[-1.25,-2.433],[-1.061,-0.072],[-1.024,2.723],[0.097,1.193],[-1.488,5.944],[-3.382,4.224],[-9.125,-3.216],[-35.758,1.582],[0.553,8.153],[-0.132,-46.268],[-29.47,-0.342],[-13.72,3.139]],"v":[[10.879,135.305],[10.612,110.872],[9.351,103.495],[5.417,100.239],[0.885,105.215],[1.153,112.74],[2.738,133.556],[-3.779,149.274],[-28.125,152.716],[-78.382,151.927],[-123.368,191.946],[131.965,189.435],[87.112,150.507],[30.573,155.419]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":61,"s":[{"i":[[3.592,2.221],[4.433,1.601],[0.888,0.621],[0.531,-0.142],[0.494,-0.452],[0.584,-0.341],[3.635,-1.246],[3.409,-0.261],[6.942,4.188],[17.07,-0.796],[-4.132,-60.946],[0.314,10.159],[35.382,0.326],[10.219,-3.688]],"o":[[-2.732,-1.569],[-0.516,-0.186],[-0.451,-0.315],[-0.647,0.173],[-0.499,0.456],[-3.458,2.018],[-2.603,1.204],[-3.804,-0.421],[-7.952,-5.493],[-30.554,1.409],[0.553,8.153],[-1.354,-45.38],[-22.62,-0.119],[-10.263,3.773]],"v":[[24.421,147.956],[12.55,144.543],[9.58,142.598],[7.98,142.2],[6.406,143.446],[5.009,144.917],[-5.637,150.474],[-13.653,152.82],[-27.798,148.041],[-88.993,151.594],[-123.368,191.946],[131.965,189.435],[98.001,148.841],[42.352,146.361]],"c":true}]},{"t":62,"s":[{"i":[[3.703,-3.016],[1.604,-0.871],[2.128,-0.697],[3.709,-0.142],[3.327,0.601],[2.434,0.746],[3.822,1.41],[3.32,2.268],[4.416,3.975],[17.07,-0.808],[-4.132,-60.946],[0.444,10.161],[31.556,0.012],[7.009,-3.359]],"o":[[-3.283,2.674],[-2.671,1.451],[-1.965,0.644],[-1.819,0.07],[-3.834,-0.693],[-2.959,-0.907],[-3.161,-1.166],[-4.015,-2.743],[-7.366,-6.631],[-27.952,1.323],[0.553,8.153],[-1.965,-44.935],[-19.195,-0.007],[-8.535,4.09]],"v":[[31.193,154.282],[23.134,159.082],[15.56,162.149],[9.291,163.18],[3.459,162.562],[-3.863,161.005],[-9.825,158.933],[-18.59,154.593],[-27.634,145.704],[-94.298,151.427],[-123.368,191.946],[131.965,189.435],[103.445,148.007],[48.241,141.832]],"c":true}],"h":1},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":160,"s":[{"i":[[-15.003,79.371],[22.146,-11.134],[14.395,-4.187],[14.344,-19.84],[16.056,18.55],[26.944,-6.311],[-3.604,-7.296],[-69.241,-28.912],[-0.583,-9.002],[-4.144,-12.005],[6.028,-16.171],[-7.296,15.246],[1.116,10.055],[-16.594,10.514]],"o":[[0,0],[-9.59,4.821],[-14.362,4.177],[-10.207,14.118],[-9.304,-10.749],[-26.944,6.311],[3.604,7.296],[0,0],[0.738,11.39],[2.262,6.552],[-3.827,10.266],[7.031,-14.692],[-1.842,-16.592],[19.138,-12.126]],"v":[[127.212,-137.403],[104.972,-136.676],[68.45,-129.898],[26.722,-93.457],[-20.892,-116.585],[-77.734,-132.033],[-113.179,-98.027],[-23.695,-7.518],[-18.708,3.299],[-5.021,29.677],[-2.868,70.696],[13.465,67.935],[22.973,6.508],[46.313,-19.342]],"c":true}]},{"t":180,"s":[{"i":[[-15.003,79.371],[22.146,-11.134],[14.395,-4.187],[14.344,-19.84],[16.056,18.55],[26.944,-6.311],[-3.604,-7.296],[-69.241,-28.912],[-0.583,-9.002],[-4.144,-12.005],[6.028,-16.171],[-7.296,15.246],[1.116,10.055],[-16.594,10.514]],"o":[[0,0],[-9.59,4.821],[-14.362,4.177],[-10.207,14.118],[-9.304,-10.749],[-26.944,6.311],[3.604,7.296],[0,0],[0.738,11.39],[2.262,6.552],[-3.827,10.266],[7.031,-14.692],[-1.842,-16.592],[19.138,-12.126]],"v":[[127.212,-137.403],[104.972,-136.676],[68.45,-129.898],[26.722,-93.457],[-20.892,-116.585],[-77.734,-132.033],[-113.179,-98.027],[-23.695,-7.518],[-18.708,3.299],[-5.021,29.677],[-2.868,70.696],[13.465,67.935],[22.973,6.508],[46.313,-19.342]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.078431375325,0.729411780834,0.956862747669,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":61,"s":[100]},{"t":62,"s":[0]}]},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":63,"st":0,"bm":0},{"ddd":0,"ind":43,"ty":4,"parent":42,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.12],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":130,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":142,"s":[-49.621]},{"i":{"x":[0.33],"y":[1]},"o":{"x":[0.225],"y":[0]},"t":157,"s":[-186.045]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.36],"y":[0]},"t":168,"s":[-178.266]},{"t":180,"s":[-182.123]}]},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[-97.088,-133.923,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":36,"s":[-34.088,-62.423,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[12.912,-31.423,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.36,"y":0},"t":55,"s":[12.912,23.577,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":62,"s":[15.912,145.577,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":86,"s":[-14.088,145.577,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":99,"s":[-60.088,155.577,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.12,"y":1},"o":{"x":0.333,"y":0},"t":116,"s":[-40.088,125.577,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":0.714},"o":{"x":0.333,"y":0},"t":130,"s":[-65.088,70.577,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.194,"y":1},"t":137,"s":[-41.742,117.246,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":142,"s":[-47.282,120.029,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.33,"y":1},"o":{"x":0.245,"y":0},"t":157,"s":[86.126,116.128,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.36,"y":0},"t":168,"s":[102.176,152.379,0],"to":[0,0,0],"ti":[0,0,0]},{"t":180,"s":[97.126,131.628,0]}]},"a":{"a":0,"k":[-97.088,-133.923,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[11.946,-8.553]],"o":[[0,0],[0,0]],"v":[[-83.286,-161.367],[-103.632,-162.065]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[0,0],[6.1,-14.308]],"o":[[0,0],[0,0]],"v":[[-98.565,-162.472],[-116.479,-153.278]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[0,0],[-1.089,-21.385]],"o":[[0,0],[0,0]],"v":[[-118.917,-164.34],[-133.84,-142.98]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":36,"s":[{"i":[[0,0],[-7.021,-10.145]],"o":[[0,0],[0,0]],"v":[[-155.36,-152.133],[-146.723,-135.432]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":41,"s":[{"i":[[0,0],[-7.021,-10.145]],"o":[[0,0],[0,0]],"v":[[-166.381,-150.57],[-158.785,-137.307]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":46,"s":[{"i":[[0,0],[-8.103,-9.303]],"o":[[0,0],[0,0]],"v":[[-165.165,-140.644],[-157.246,-130.873]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[{"i":[[0,0],[-7.021,-10.145]],"o":[[0,0],[0,0]],"v":[[-159.61,-139.383],[-153.473,-130.932]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":52,"s":[{"i":[[0,0],[-8.556,-7.864]],"o":[[0,0],[0,0]],"v":[[-146.714,-153.186],[-133.944,-143.636]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":53,"s":[{"i":[[0,0],[-6.571,-9.637]],"o":[[0,0],[0,0]],"v":[[-140.266,-160.087],[-127.929,-148.113]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":55,"s":[{"i":[[0,0],[-1.683,-12.267]],"o":[[0,0],[0,0]],"v":[[-127.37,-173.89],[-116.317,-156.233]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":62,"s":[{"i":[[0,0],[0.137,-12.381]],"o":[[0,0],[0,0]],"v":[[-107.401,-178.515],[-107.062,-157.426]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":68,"s":[{"i":[[0,0],[0.137,-2.163]],"o":[[0,0],[0,0]],"v":[[-102.401,-103.563],[-102.062,-99.879]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":80,"s":[{"i":[[0,0],[-2.534,-29.502]],"o":[[0,0],[0,0]],"v":[[-121.311,-188.321],[-124.466,-142.998]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":94,"s":[{"i":[[0,0],[24.424,-16.742]],"o":[[0,0],[0,0]],"v":[[-55.201,-145.215],[-91.845,-146.227]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":116,"s":[{"i":[[0,0],[-5.207,-19.993]],"o":[[0,0],[0,0]],"v":[[-131.896,-174.4],[-124.466,-142.998]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":130,"s":[{"i":[[0,0],[24.424,-16.742]],"o":[[0,0],[0,0]],"v":[[-55.201,-145.215],[-91.845,-146.227]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":142,"s":[{"i":[[0,0],[-17.43,-8.553]],"o":[[0,0],[0,0]],"v":[[-160.62,-161.367],[-130.932,-162.065]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":150,"s":[{"i":[[0,0],[-7.777,-8.553]],"o":[[0,0],[0,0]],"v":[[-146.351,-185.965],[-133.104,-186.663]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":157,"s":[{"i":[[0,0],[0.123,-8.553]],"o":[[0,0],[0,0]],"v":[[-123.992,-174.736],[-124.202,-175.434]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":160,"s":[{"i":[[0,0],[0.955,-8.553]],"o":[[0,0],[0,0]],"v":[[-116.463,-161.593],[-118.09,-162.291]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[11.946,-8.553]],"o":[[0,0],[0,0]],"v":[[-83.286,-161.367],[-103.632,-162.065]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.20000000298,0.850980401039,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":12},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[-6.939,10.399],[-1.661,-13.361]],"o":[[-10.597,-21.496],[7.961,-11.931],[0,0]],"v":[[-103.986,-102.152],[-107.795,-155.25],[-81.625,-154.514]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9,"s":[{"i":[[0,0],[-4.913,9.789],[-0.484,-9.632]],"o":[[-11.402,-18.864],[4.949,-14.425],[0,0]],"v":[[-112.236,-107.058],[-115.052,-150.377],[-93.581,-156.334]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[0,0],[-4.238,9.585],[-0.092,-8.388]],"o":[[-11.67,-17.986],[3.945,-15.256],[0,0]],"v":[[-112.986,-104.527],[-117.471,-148.752],[-97.567,-156.941]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[0,0],[-3.5,9.362],[0.337,-7.029]],"o":[[-11.963,-17.027],[2.847,-16.165],[0,0]],"v":[[-112.403,-103.083],[-120.463,-147.09],[-102.27,-157.717]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[0,0],[-2.393,9.029],[0.98,-4.991]],"o":[[-12.403,-15.588],[1.2,-17.528],[0,0]],"v":[[-114.496,-103.205],[-124.95,-144.595],[-109.326,-158.881]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19,"s":[{"i":[[0,0],[-1.655,8.806],[1.409,-3.632]],"o":[[-12.697,-14.629],[0.102,-18.437],[0,0]],"v":[[-114.641,-102.454],[-127.942,-142.932],[-114.03,-159.657]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[0,0],[-0.916,8.583],[1.838,-2.273]],"o":[[-16.763,-14.806],[-0.995,-19.346],[0,0]],"v":[[-112.236,-100.152],[-130.933,-141.269],[-118.734,-160.434]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,0],[0.945,8.022],[-1.199,1.579]],"o":[[-11.634,-11.495],[-2.441,-16.015],[0,0]],"v":[[-114.611,-99.652],[-134.16,-137.316],[-128.484,-157.433]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[0,0],[1.876,7.742],[-2.718,3.506]],"o":[[-14.1,-10.041],[-3.164,-14.349],[0,0]],"v":[[-112.424,-99.777],[-135.773,-135.34],[-133.359,-155.932]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":29,"s":[{"i":[[0,0],[2.807,7.461],[-4.236,5.432]],"o":[[-14.469,-8.832],[-3.886,-12.683],[0,0]],"v":[[-110.736,-99.402],[-137.387,-133.363],[-138.234,-154.432]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[3.272,7.321],[-2.789,6.167]],"o":[[-14.654,-8.227],[-4.248,-11.851],[0,0]],"v":[[-110.45,-100.259],[-137.752,-132.794],[-140.899,-154.804]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":36,"s":[{"i":[[0,0],[6.065,6.479],[5.894,10.579]],"o":[[-15.764,-4.598],[-6.416,-6.854],[0,0]],"v":[[-103.986,-102.152],[-139.94,-129.382],[-156.89,-157.039]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":41,"s":[{"i":[[0,0],[6.56,4.993],[5.894,10.579]],"o":[[-11.181,-4.077],[-7.372,-5.456],[0,0]],"v":[[-105.549,-101.631],[-142.107,-126.466],[-166.14,-153.289]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0,0],[6.714,4.531],[6.349,10.291]],"o":[[-9.755,-3.915],[-7.67,-5.022],[0,0]],"v":[[-115.035,-108.219],[-138.848,-122.808],[-165.152,-148.708]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":46,"s":[{"i":[[0,0],[6.945,3.838],[7.032,9.859]],"o":[[-4.053,-8.914],[-8.116,-4.369],[0,0]],"v":[[-106.764,-101.226],[-131.459,-119.197],[-163.67,-141.835]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[{"i":[[0,0],[5.732,5.314],[5.894,10.579]],"o":[[-4.764,-3.348],[-6.06,-5.618],[0,0]],"v":[[-107.736,-100.902],[-122.94,-113.382],[-156.89,-139.039]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":52,"s":[{"i":[[0,0],[3.604,7.16],[13.384,8.951]],"o":[[-2.164,-4.348],[-2.827,-9.568],[0,0]],"v":[[-107.736,-100.902],[-114.673,-123.682],[-144.384,-154.701]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":53,"s":[{"i":[[0,0],[2.54,8.083],[9.932,7.798]],"o":[[-0.864,-4.848],[-5.771,-6.871],[0,0]],"v":[[-107.736,-100.902],[-110.54,-128.832],[-138.13,-162.532]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":55,"s":[{"i":[[0,0],[3.014,7.212],[12.624,5.944]],"o":[[1.736,-5.848],[-3.81,-9.118],[0,0]],"v":[[-107.736,-100.902],[-107.69,-139.132],[-125.624,-178.194]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":62,"s":[{"i":[[0,0],[0.291,9.243],[-0.708,11.015]],"o":[[1.736,-5.848],[-0.311,-9.877],[0,0]],"v":[[-107.736,-100.902],[-105.041,-138.743],[-104.042,-181.015]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":68,"s":[{"i":[[0,0],[0.291,1.615],[-0.708,1.924]],"o":[[1.736,-5.848],[-0.311,-1.726],[0,0]],"v":[[-107.736,-100.902],[-100.041,-96.615],[-99.042,-104]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":80,"s":[{"i":[[0,0],[2.247,15.746],[-9.483,0.802]],"o":[[-1.346,-5.95],[-2.685,-18.809],[0,0]],"v":[[-99.908,-105.117],[-121.565,-143.191],[-116.767,-188.302]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":94,"s":[{"i":[[0,0],[-12.594,9.714],[-5.371,-7.857]],"o":[[-1.346,-5.95],[15.045,-11.604],[0,0]],"v":[[-99.908,-105.117],[-90.248,-143.798],[-52.979,-141.251]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":116,"s":[{"i":[[0,0],[4.133,15.359],[-0.183,9.515]],"o":[[-1.346,-5.95],[-4.857,-18.05],[0,0]],"v":[[-99.908,-105.117],[-121.565,-143.191],[-128.157,-179.167]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":130,"s":[{"i":[[0,0],[-12.594,9.714],[-5.371,-7.857]],"o":[[-1.346,-5.95],[15.045,-11.604],[0,0]],"v":[[-99.908,-105.117],[-90.248,-143.798],[-52.979,-141.251]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":142,"s":[{"i":[[0,0],[10.125,10.399],[2.423,-13.361]],"o":[[-10.597,-21.496],[-11.616,-11.931],[0,0]],"v":[[-103.986,-102.152],[-124.859,-155.25],[-163.043,-154.514]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":150,"s":[{"i":[[0,0],[4.517,10.399],[1.081,-13.361]],"o":[[-7.539,-23.238],[-5.183,-11.931],[0,0]],"v":[[-106.563,-99.441],[-130.395,-179.849],[-147.432,-179.113]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":157,"s":[{"i":[[0,0],[-0.072,10.399],[-0.017,-13.361]],"o":[[-12.891,-20.643],[0.082,-11.931],[0,0]],"v":[[-108.672,-97.223],[-124.245,-168.619],[-123.975,-167.883]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":160,"s":[{"i":[[0,0],[-0.671,10.399],[-0.161,-13.361]],"o":[[-10.207,-25.459],[0.77,-11.931],[0,0]],"v":[[-106.802,-95.789],[-118.307,-155.476],[-115.774,-154.74]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":164,"s":[{"i":[[0,0],[-1.739,10.399],[-0.416,-13.361]],"o":[[-6.386,-23.895],[1.995,-11.931],[0,0]],"v":[[-103.476,-93.237],[-112.995,-155.25],[-106.437,-154.514]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":167,"s":[{"i":[[0,0],[-2.589,10.399],[-0.62,-13.361]],"o":[[-7.074,-23.503],[2.97,-11.931],[0,0]],"v":[[-105.477,-99.823],[-112.146,-155.25],[-102.383,-154.514]],"c":false}]},{"t":180,"s":[{"i":[[0,0],[-6.939,10.399],[-1.661,-13.361]],"o":[[-10.597,-21.496],[7.961,-11.931],[0,0]],"v":[[-103.986,-102.152],[-107.795,-155.25],[-81.625,-154.514]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.078431375325,0.729411780834,0.956862747669,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":20},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":44,"ty":4,"parent":9,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":9,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":10,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":108,"s":[0]},{"t":109,"s":[100]}]},"r":{"a":1,"k":[{"i":{"x":[0.33],"y":[1]},"o":{"x":[0.33],"y":[0]},"t":0,"s":[-7.025]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":13,"s":[45.069]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":109,"s":[106.671]},{"i":{"x":[0.12],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":117,"s":[106.671]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":130,"s":[61.473]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":140,"s":[4.076]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":143,"s":[7.919]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":147,"s":[77.37]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":152,"s":[54.326]},{"t":180,"s":[46.81]}]},"p":{"a":1,"k":[{"i":{"x":0.33,"y":1},"o":{"x":0.33,"y":0},"t":0,"s":[49.858,-247.126,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":13,"s":[36.358,-192.126,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":36,"s":[6.358,-144.126,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":109,"s":[21.858,17.374,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.12,"y":1},"o":{"x":0.333,"y":0},"t":116,"s":[26.858,-67.626,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.69,"y":0.785},"o":{"x":0.298,"y":0},"t":130,"s":[28.358,-50.126,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.43,"y":0.259},"t":137,"s":[12.908,-69.416,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":140,"s":[13.156,-57.209,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":143,"s":[44.176,-49.607,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":145,"s":[36.959,-38.936,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":146,"s":[34.177,-39.991,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":147,"s":[31.294,-46.684,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":149,"s":[32.76,-62.825,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":151,"s":[36.358,-59.485,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":152,"s":[41.402,-51.051,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":153,"s":[43.014,-46.941,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.649,"y":0.765},"o":{"x":0.311,"y":0},"t":158,"s":[24.774,-69.878,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.712,"y":0.712},"o":{"x":0.336,"y":0.185},"t":162,"s":[20.475,-63.271,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.428,"y":0.775},"t":175,"s":[-0.927,-40.768,0],"to":[0,0,0],"ti":[0,0,0]},{"t":180,"s":[-5.774,-36.291,0]}]},"a":{"a":0,"k":[56.597,-119.152,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[7.613,8.5],[6.353,-0.894],[-3.067,-11.565]],"o":[[-2.854,-3.187],[-6.353,0.894],[3.067,11.565]],"v":[[65.204,-123.731],[47.596,-131.831],[55.953,-110.368]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.078431375325,0.729411780834,0.956862747669,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":45,"ty":4,"parent":9,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":9,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":10,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":108,"s":[0]},{"t":109,"s":[100]}]},"r":{"a":1,"k":[{"i":{"x":[0.33],"y":[1]},"o":{"x":[0.33],"y":[0]},"t":0,"s":[-5.045]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":13,"s":[62.769]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":109,"s":[-2.42]},{"i":{"x":[0.12],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":117,"s":[-2.42]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":130,"s":[37.862]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":140,"s":[42.619]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":143,"s":[88.803]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":147,"s":[107.04]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":152,"s":[44.157]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":166,"s":[98.056]},{"t":180,"s":[53.656]}]},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.433,"y":0},"t":0,"s":[27.929,-229.556,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.33,"y":1},"o":{"x":0.167,"y":0.167},"t":6,"s":[3.599,-206.02,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":13,"s":[-43.071,-190.056,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":36,"s":[-10.071,-144.556,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":109,"s":[-37.571,8.444,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.12,"y":1},"o":{"x":0.333,"y":0},"t":116,"s":[-27.571,-66.556,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.648,"y":0.126},"o":{"x":0.303,"y":0},"t":130,"s":[-48.571,-44.556,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.694,"y":0.893},"o":{"x":0.342,"y":0.256},"t":133,"s":[-43.771,-47.355,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.43,"y":0.278},"t":137,"s":[-30.211,-26.822,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":140,"s":[-35.016,-35.527,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":143,"s":[-11.086,-54.297,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":147,"s":[-2.37,-81.135,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":149,"s":[-7.151,-80.479,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":152,"s":[-18.815,-49.766,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.57,"y":0.673},"o":{"x":0.167,"y":0.167},"t":153,"s":[-18.89,-46.537,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.704,"y":1},"o":{"x":0.328,"y":0.705},"t":155,"s":[-27.94,-65.754,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":158,"s":[-35.453,-74.134,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.653,"y":0.602},"o":{"x":0.298,"y":0},"t":166,"s":[-19.133,-82.824,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.68,"y":0.792},"o":{"x":0.34,"y":0.227},"t":172,"s":[-24.646,-67.626,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.438,"y":0.629},"t":175,"s":[-32.871,-56.411,0],"to":[0,0,0],"ti":[0,0,0]},{"t":180,"s":[-35.957,-46.393,0]}]},"a":{"a":0,"k":[37.782,-99.883,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[9.843,6.627],[6.298,-2.656],[-5.918,-11.015]],"o":[[-3.69,-2.485],[-6.298,2.656],[5.918,11.015]],"v":[[46.52,-107.386],[26.527,-110.865],[40.243,-91.154]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.078431375325,0.729411780834,0.956862747669,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":46,"ty":4,"parent":4,"sr":1,"ks":{"o":{"a":0,"k":50},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":130,"s":[1.509,-7.643,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":144,"s":[1.509,-7.643,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":145,"s":[0.843,2.335,0],"to":[0,0,0],"ti":[0,0,0]},{"t":160,"s":[-1.491,7.607,0]}]},"a":{"a":0,"k":[1.509,-7.643,0]},"s":{"a":1,"k":[{"t":144,"s":[100,100,100],"h":1},{"t":145,"s":[100,-100,100],"h":1}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.33,"y":0},"t":130,"s":[{"i":[[52.94,17.31],[-3.77,1.23],[-7.45,4.09],[-1.64,0.99],[-1.62,1.07],[-3.18,2.49],[-0.79,0.64],[-1.55,1.37],[-1.52,1.46],[-0.75,0.75],[0,69.89],[1.2,8.18],[0,0],[0,-8.88],[-52.94,-17.32],[-0.2,-0.1],[-0.18,-0.13],[-0.15,-0.16],[-0.12,-0.16],[1.02,-1.31],[0.12,-0.11],[0.7,-0.23],[17.28,-17.29],[2.17,-2.46],[7,-13.72],[1.97,-4.75],[0.48,-1.21],[0.67,-1.87],[0.43,-1.27],[0.41,-1.29],[0.39,-1.32],[0.37,-1.34],[0.35,-1.36],[0.6,-2.83],[0.28,-1.43],[0,-18.75],[-0.04,-1.29],[-0.01,-0.01],[-0.01,-0.12],[-8.9,-0.94],[0.13,2.2],[0,3.27],[-58.4,25.42],[6.68,2.63],[0,90.06],[-1.06,7.27],[0,0],[0,-7.89],[64.29,-31.01],[-6.63,-2.72],[0,-90.06],[0.19,-3.16],[0.22,-2.15],[-0.62,1.11],[0,0.14],[0,0],[0,1.31]],"o":[[-3.77,-1.23],[7.44,-2.44],[1.65,-0.91],[1.65,-0.99],[3.26,-2.16],[0.79,-0.63],[1.57,-1.29],[1.55,-1.38],[0.76,-0.73],[30.79,-30.81],[0,-8.88],[0,0],[-1.2,8.18],[0,109.09],[0.24,0.08],[0.21,0.1],[0.17,0.12],[0.15,0.15],[0.97,1.34],[-0.1,0.13],[-0.44,0.44],[-19.02,6.22],[-2.26,2.25],[-9.04,10.21],[-2.24,4.39],[-0.49,1.19],[-0.71,1.82],[-0.44,1.25],[-0.42,1.27],[-0.41,1.3],[-0.39,1.32],[-0.37,1.34],[-0.69,2.73],[-0.3,1.41],[-3.07,15.81],[0,1.31],[0,0],[-0.01,0.13],[0.56,1.11],[-0.22,-2.15],[-0.19,-3.16],[0,-90.06],[6.57,-2.86],[-57.87,-22.72],[0,-7.89],[0,0],[1.07,7.27],[0,90.06],[-6.44,3.1],[59.65,24.45],[0,3.26],[-0.12,2.21],[8.85,-0.93],[0,-0.13],[0,-0.01],[0.03,-1.29],[0,-109.09]],"v":[[34.574,3.057],[34.574,-4.283],[56.994,-14.053],[61.934,-16.903],[66.844,-20.003],[76.514,-26.963],[78.894,-28.863],[83.584,-32.853],[88.184,-37.103],[90.454,-39.333],[144.724,-189.123],[142.914,-214.723],[-139.876,-214.723],[-141.696,-189.123],[-31.556,-4.283],[-30.896,-4.013],[-30.316,-3.663],[-29.836,-3.253],[-29.436,-2.793],[-29.516,1.667],[-29.836,2.027],[-31.556,3.057],[-87.426,38.097],[-94.066,45.157],[-118.346,81.017],[-124.666,94.737],[-126.116,98.347],[-128.186,103.877],[-129.496,107.657],[-130.746,111.507],[-131.936,115.427],[-133.066,119.417],[-134.136,123.477],[-136.076,131.817],[-136.946,136.087],[-141.706,187.897],[-141.656,191.807],[-141.656,191.817],[-141.646,192.197],[-126.956,195.287],[-127.476,188.767],[-127.756,179.127],[-23.676,6.437],[-23.676,-7.673],[-127.746,-181.303],[-126.146,-204.043],[129.174,-204.043],[130.784,-181.303],[26.704,-7.673],[26.704,6.437],[130.774,179.127],[130.494,188.757],[129.974,195.297],[144.664,192.217],[144.674,191.807],[144.674,191.797],[144.714,187.897]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":145,"s":[{"i":[[52.94,17.31],[-3.77,1.23],[-7.45,4.09],[-1.64,0.99],[-1.62,1.07],[-3.18,2.49],[-0.79,0.64],[-1.55,1.37],[-1.52,1.46],[-0.75,0.75],[0,69.89],[1.2,8.18],[0,0],[0,-8.88],[-52.94,-17.32],[-0.2,-0.1],[-0.18,-0.13],[-0.15,-0.16],[-0.12,-0.16],[1.02,-1.31],[0.12,-0.11],[0.7,-0.23],[17.28,-17.29],[2.17,-2.46],[7,-13.72],[1.97,-4.75],[0.48,-1.21],[0.67,-1.87],[0.43,-1.27],[0.41,-1.29],[0.39,-1.32],[0.37,-1.34],[0.35,-1.36],[0.6,-2.83],[0.28,-1.43],[0,-18.75],[-0.04,-0.06],[-0.01,0],[-0.01,-0.006],[-8.9,-0.044],[0.13,2.2],[0,3.27],[-58.4,25.42],[6.68,2.63],[0,90.06],[-1.06,7.27],[0,0],[0,-7.89],[64.29,-31.01],[-6.63,-2.72],[0,-90.06],[0.19,-3.16],[0.22,-0.101],[-0.62,0.052],[0,0.007],[0,0],[0,1.31]],"o":[[-3.77,-1.23],[7.44,-2.44],[1.65,-0.91],[1.65,-0.99],[3.26,-2.16],[0.79,-0.63],[1.57,-1.29],[1.55,-1.38],[0.76,-0.73],[30.79,-30.81],[0,-8.88],[0,0],[-1.2,8.18],[0,109.09],[0.24,0.08],[0.21,0.1],[0.17,0.12],[0.15,0.15],[0.97,1.34],[-0.1,0.13],[-0.44,0.44],[-19.02,6.22],[-2.26,2.25],[-9.04,10.21],[-2.24,4.39],[-0.49,1.19],[-0.71,1.82],[-0.44,1.25],[-0.42,1.27],[-0.41,1.3],[-0.39,1.32],[-0.37,1.34],[-0.69,2.73],[-0.3,1.41],[-3.07,15.81],[0,1.31],[0,0],[-0.01,0.006],[0.56,0.052],[-0.22,-0.101],[-0.19,-3.16],[0,-90.06],[6.57,-2.86],[-57.87,-22.72],[0,-7.89],[0,0],[1.07,7.27],[0,90.06],[-6.44,3.1],[59.65,24.45],[0,3.26],[-0.12,2.21],[8.85,-0.044],[0,-0.006],[0,0],[0.03,-0.061],[0,-109.09]],"v":[[34.574,3.057],[34.574,-4.283],[56.994,-14.053],[61.934,-16.903],[66.844,-20.003],[76.514,-26.963],[78.894,-28.863],[83.584,-32.853],[88.184,-37.103],[90.454,-39.333],[144.724,-189.123],[144.33,-198.335],[-141.156,-198.548],[-141.696,-189.123],[-31.556,-4.283],[-30.896,-4.013],[-30.316,-3.663],[-29.836,-3.253],[-29.436,-2.793],[-29.516,1.667],[-29.836,2.027],[-31.556,3.057],[-87.426,38.097],[-94.066,45.157],[-118.346,81.017],[-124.666,94.737],[-126.116,98.347],[-128.186,103.877],[-129.496,107.657],[-130.746,111.507],[-131.936,115.427],[-133.066,119.417],[-134.136,123.477],[-136.076,131.817],[-136.946,136.087],[-141.706,187.897],[-141.656,190.568],[-141.656,190.569],[-141.646,190.587],[-126.956,190.732],[-127.476,188.767],[-127.756,179.127],[-23.676,6.437],[-23.676,-7.673],[-127.746,-181.303],[-125.893,-198.458],[129.768,-198.362],[130.784,-181.303],[26.704,-7.673],[26.704,6.437],[130.774,179.127],[130.494,188.757],[129.974,190.732],[144.664,190.588],[144.674,190.568],[144.674,190.568],[144.714,187.897]],"c":true}]},{"t":160,"s":[{"i":[[52.94,17.31],[-3.77,1.23],[-7.45,4.09],[-1.64,0.99],[-1.62,1.07],[-3.18,2.49],[-0.79,0.64],[-1.55,1.37],[-1.52,1.46],[-0.75,0.75],[0,69.89],[1.2,8.18],[0,0],[0,-8.88],[-52.94,-17.32],[-0.2,-0.1],[-0.18,-0.13],[-0.15,-0.16],[-0.12,-0.16],[1.02,-1.31],[0.12,-0.11],[0.7,-0.23],[17.28,-17.29],[2.17,-2.46],[7,-13.72],[1.97,-4.75],[0.48,-1.21],[0.67,-1.87],[0.43,-1.27],[0.41,-1.29],[0.39,-1.32],[0.37,-1.34],[0.35,-1.36],[0.6,-2.83],[0.28,-1.43],[0,-18.75],[-0.04,-1.29],[-0.01,-0.01],[-0.01,-0.12],[-8.9,-0.94],[0.13,2.2],[0,3.27],[-58.4,25.42],[6.68,2.63],[0,90.06],[-1.06,7.27],[0,0],[0,-7.89],[64.29,-31.01],[-6.63,-2.72],[0,-90.06],[0.19,-3.16],[0.22,-2.15],[-0.62,1.11],[0,0.14],[0,0],[0,1.31]],"o":[[-3.77,-1.23],[7.44,-2.44],[1.65,-0.91],[1.65,-0.99],[3.26,-2.16],[0.79,-0.63],[1.57,-1.29],[1.55,-1.38],[0.76,-0.73],[30.79,-30.81],[0,-8.88],[0,0],[-1.2,8.18],[0,109.09],[0.24,0.08],[0.21,0.1],[0.17,0.12],[0.15,0.15],[0.97,1.34],[-0.1,0.13],[-0.44,0.44],[-19.02,6.22],[-2.26,2.25],[-9.04,10.21],[-2.24,4.39],[-0.49,1.19],[-0.71,1.82],[-0.44,1.25],[-0.42,1.27],[-0.41,1.3],[-0.39,1.32],[-0.37,1.34],[-0.69,2.73],[-0.3,1.41],[-3.07,15.81],[0,1.31],[0,0],[-0.01,0.13],[0.56,1.11],[-0.22,-2.15],[-0.19,-3.16],[0,-90.06],[6.57,-2.86],[-57.87,-22.72],[0,-7.89],[0,0],[1.07,7.27],[0,90.06],[-6.44,3.1],[59.65,24.45],[0,3.26],[-0.12,2.21],[8.85,-0.93],[0,-0.13],[0,-0.01],[0.03,-1.29],[0,-109.09]],"v":[[34.574,3.057],[34.574,-4.283],[56.994,-14.053],[61.934,-16.903],[66.844,-20.003],[76.514,-26.963],[78.894,-28.863],[83.584,-32.853],[88.184,-37.103],[90.454,-39.333],[144.724,-189.123],[142.914,-214.723],[-139.876,-214.723],[-141.696,-189.123],[-31.556,-4.283],[-30.896,-4.013],[-30.316,-3.663],[-29.836,-3.253],[-29.436,-2.793],[-29.516,1.667],[-29.836,2.027],[-31.556,3.057],[-87.426,38.097],[-94.066,45.157],[-118.346,81.017],[-124.666,94.737],[-126.116,98.347],[-128.186,103.877],[-129.496,107.657],[-130.746,111.507],[-131.936,115.427],[-133.066,119.417],[-134.136,123.477],[-136.076,131.817],[-136.946,136.087],[-141.706,187.897],[-141.656,191.807],[-141.656,191.817],[-141.646,192.197],[-126.956,195.287],[-127.476,188.767],[-127.756,179.127],[-23.676,6.437],[-23.676,-7.673],[-127.746,-181.303],[-126.146,-204.043],[129.174,-204.043],[130.784,-181.303],[26.704,-7.673],[26.704,6.437],[130.774,179.127],[130.494,188.757],[129.974,195.297],[144.664,192.217],[144.674,191.807],[144.674,191.797],[144.714,187.897]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.776470601559,0.690196096897,0.800000011921,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":40},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.33,"y":0},"t":130,"s":[{"i":[[0,-109.09],[0.03,-1.29],[0,-0.01],[0,-0.13],[8.85,-0.93],[56.18,0],[23.48,2.46],[0.56,1.11],[-0.01,0.13],[0,0],[0,1.31],[-3.07,15.81],[-0.3,1.41],[-0.69,2.73],[-0.37,1.34],[-0.39,1.32],[-0.41,1.3],[-0.42,1.27],[-0.44,1.25],[-0.71,1.82],[-0.49,1.19],[-2.24,4.39],[-9.03,10.21],[-2.25,2.25],[-19.02,6.22],[-0.44,0.44],[-0.1,0.13],[0.97,1.34],[0.15,0.14],[0.17,0.12],[0.21,0.1],[0.24,0.08],[0,109.09],[-1.2,8.18],[0,0],[0,-8.88],[30.79,-30.81],[0.76,-0.73],[1.55,-1.37],[1.57,-1.28],[0.79,-0.63],[3.26,-2.15],[1.65,-0.99],[1.65,-0.91],[7.44,-2.44],[-3.77,-1.23]],"o":[[0,1.31],[0,0],[0,0.14],[-0.62,1.11],[-23.34,2.45],[-56.29,0],[-8.9,-0.94],[-0.01,-0.12],[-0.01,-0.01],[-0.04,-1.29],[0,-18.75],[0.28,-1.43],[0.6,-2.83],[0.35,-1.36],[0.37,-1.34],[0.39,-1.32],[0.41,-1.29],[0.43,-1.27],[0.67,-1.87],[0.48,-1.21],[1.97,-4.75],[7,-13.72],[2.17,-2.45],[17.28,-17.29],[0.7,-0.23],[0.11,-0.11],[1.02,-1.31],[-0.12,-0.17],[-0.15,-0.16],[-0.18,-0.13],[-0.2,-0.1],[-52.94,-17.32],[0,-8.88],[0,0],[1.2,8.18],[0,69.89],[-0.75,0.75],[-1.52,1.46],[-1.55,1.38],[-0.79,0.64],[-3.18,2.49],[-1.62,1.07],[-1.64,0.99],[-7.45,4.09],[-3.77,1.23],[52.94,17.31]],"v":[[144.714,187.897],[144.674,191.797],[144.674,191.807],[144.664,192.217],[129.974,195.297],[1.854,199.437],[-126.956,195.287],[-141.646,192.197],[-141.656,191.817],[-141.656,191.807],[-141.706,187.897],[-136.946,136.087],[-136.076,131.817],[-134.136,123.477],[-133.066,119.417],[-131.936,115.427],[-130.746,111.507],[-129.496,107.657],[-128.186,103.877],[-126.116,98.347],[-124.666,94.737],[-118.346,81.017],[-94.066,45.157],[-87.426,38.097],[-31.556,3.057],[-29.836,2.027],[-29.516,1.667],[-29.436,-2.793],[-29.836,-3.253],[-30.316,-3.663],[-30.896,-4.013],[-31.556,-4.283],[-141.696,-189.123],[-139.876,-214.723],[142.914,-214.723],[144.724,-189.123],[90.454,-39.333],[88.184,-37.103],[83.584,-32.853],[78.894,-28.863],[76.514,-26.963],[66.844,-20.003],[61.934,-16.903],[56.994,-14.053],[34.574,-4.283],[34.574,3.057]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":145,"s":[{"i":[[0,-109.09],[0.03,-0.061],[0,0],[0,-0.006],[8.85,-0.044],[56.18,0],[23.48,0.116],[0.56,0.052],[-0.01,0.006],[0,0],[0,1.31],[-3.07,15.81],[-0.3,1.41],[-0.69,2.73],[-0.37,1.34],[-0.39,1.32],[-0.41,1.3],[-0.42,1.27],[-0.44,1.25],[-0.71,1.82],[-0.49,1.19],[-2.24,4.39],[-9.03,10.21],[-2.25,2.25],[-19.02,6.22],[-0.44,0.44],[-0.1,0.13],[0.97,1.34],[0.15,0.14],[0.17,0.12],[0.21,0.1],[0.24,0.08],[0,109.09],[-1.2,8.18],[0,0],[0,-8.88],[30.79,-30.81],[0.76,-0.73],[1.55,-1.37],[1.57,-1.28],[0.79,-0.63],[3.26,-2.15],[1.65,-0.99],[1.65,-0.91],[7.44,-2.44],[-3.77,-1.23]],"o":[[0,1.31],[0,0],[0,0.007],[-0.62,0.052],[-23.34,0.115],[-56.29,0],[-8.9,-0.044],[-0.01,-0.006],[-0.01,0],[-0.04,-0.06],[0,-18.75],[0.28,-1.43],[0.6,-2.83],[0.35,-1.36],[0.37,-1.34],[0.39,-1.32],[0.41,-1.29],[0.43,-1.27],[0.67,-1.87],[0.48,-1.21],[1.97,-4.75],[7,-13.72],[2.17,-2.45],[17.28,-17.29],[0.7,-0.23],[0.11,-0.11],[1.02,-1.31],[-0.12,-0.17],[-0.15,-0.16],[-0.18,-0.13],[-0.2,-0.1],[-52.94,-17.32],[0,-8.88],[0,0],[1.2,8.18],[0,69.89],[-0.75,0.75],[-1.52,1.46],[-1.55,1.38],[-0.79,0.64],[-3.18,2.49],[-1.62,1.07],[-1.64,0.99],[-7.45,4.09],[-3.77,1.23],[52.94,17.31]],"v":[[144.714,187.897],[144.674,190.568],[144.674,190.568],[144.664,190.587],[129.974,190.732],[1.854,190.926],[-126.956,190.731],[-141.646,190.587],[-141.656,190.569],[-141.656,190.568],[-141.706,187.897],[-136.946,136.087],[-136.076,131.817],[-134.136,123.477],[-133.066,119.417],[-131.936,115.427],[-130.746,111.507],[-129.496,107.657],[-128.186,103.877],[-126.116,98.347],[-124.666,94.737],[-118.346,81.017],[-94.066,45.157],[-87.426,38.097],[-31.556,3.057],[-29.836,2.027],[-29.516,1.667],[-29.436,-2.793],[-29.836,-3.253],[-30.316,-3.663],[-30.896,-4.013],[-31.556,-4.283],[-141.696,-189.123],[-141.156,-198.548],[144.33,-198.335],[144.724,-189.123],[90.454,-39.333],[88.184,-37.103],[83.584,-32.853],[78.894,-28.863],[76.514,-26.963],[66.844,-20.003],[61.934,-16.903],[56.994,-14.053],[34.574,-4.283],[34.574,3.057]],"c":true}]},{"t":160,"s":[{"i":[[0,-109.09],[0.03,-1.29],[0,-0.01],[0,-0.13],[8.85,-0.93],[56.18,0],[23.48,2.46],[0.56,1.11],[-0.01,0.13],[0,0],[0,1.31],[-3.07,15.81],[-0.3,1.41],[-0.69,2.73],[-0.37,1.34],[-0.39,1.32],[-0.41,1.3],[-0.42,1.27],[-0.44,1.25],[-0.71,1.82],[-0.49,1.19],[-2.24,4.39],[-9.03,10.21],[-2.25,2.25],[-19.02,6.22],[-0.44,0.44],[-0.1,0.13],[0.97,1.34],[0.15,0.14],[0.17,0.12],[0.21,0.1],[0.24,0.08],[0,109.09],[-1.2,8.18],[0,0],[0,-8.88],[30.79,-30.81],[0.76,-0.73],[1.55,-1.37],[1.57,-1.28],[0.79,-0.63],[3.26,-2.15],[1.65,-0.99],[1.65,-0.91],[7.44,-2.44],[-3.77,-1.23]],"o":[[0,1.31],[0,0],[0,0.14],[-0.62,1.11],[-23.34,2.45],[-56.29,0],[-8.9,-0.94],[-0.01,-0.12],[-0.01,-0.01],[-0.04,-1.29],[0,-18.75],[0.28,-1.43],[0.6,-2.83],[0.35,-1.36],[0.37,-1.34],[0.39,-1.32],[0.41,-1.29],[0.43,-1.27],[0.67,-1.87],[0.48,-1.21],[1.97,-4.75],[7,-13.72],[2.17,-2.45],[17.28,-17.29],[0.7,-0.23],[0.11,-0.11],[1.02,-1.31],[-0.12,-0.17],[-0.15,-0.16],[-0.18,-0.13],[-0.2,-0.1],[-52.94,-17.32],[0,-8.88],[0,0],[1.2,8.18],[0,69.89],[-0.75,0.75],[-1.52,1.46],[-1.55,1.38],[-0.79,0.64],[-3.18,2.49],[-1.62,1.07],[-1.64,0.99],[-7.45,4.09],[-3.77,1.23],[52.94,17.31]],"v":[[144.714,187.897],[144.674,191.797],[144.674,191.807],[144.664,192.217],[129.974,195.297],[1.854,199.437],[-126.956,195.287],[-141.646,192.197],[-141.656,191.817],[-141.656,191.807],[-141.706,187.897],[-136.946,136.087],[-136.076,131.817],[-134.136,123.477],[-133.066,119.417],[-131.936,115.427],[-130.746,111.507],[-129.496,107.657],[-128.186,103.877],[-126.116,98.347],[-124.666,94.737],[-118.346,81.017],[-94.066,45.157],[-87.426,38.097],[-31.556,3.057],[-29.836,2.027],[-29.516,1.667],[-29.436,-2.793],[-29.836,-3.253],[-30.316,-3.663],[-30.896,-4.013],[-31.556,-4.283],[-141.696,-189.123],[-139.876,-214.723],[142.914,-214.723],[144.724,-189.123],[90.454,-39.333],[88.184,-37.103],[83.584,-32.853],[78.894,-28.863],[76.514,-26.963],[66.844,-20.003],[61.934,-16.903],[56.994,-14.053],[34.574,-4.283],[34.574,3.057]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.886274516582,0.839215695858,0.898039221764,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":60},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":47,"ty":4,"parent":4,"sr":1,"ks":{"r":{"a":1,"k":[{"t":144,"s":[0],"h":1},{"t":145,"s":[180],"h":1}]},"p":{"a":1,"k":[{"t":144,"s":[1.854,208.928,0],"h":1},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":145,"s":[1.854,-213.572,0],"to":[0,0,0],"ti":[0,0,0]},{"t":160,"s":[-2.146,-208.947,0]}]},"a":{"a":0,"k":[1.854,208.928,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":130,"s":[{"i":[[0,-0.06],[0.04,-0.07],[8.85,-0.93],[56.18,0],[23.48,2.46],[0.56,1.11],[0,0.07],[-0.04,0.06],[0,0],[-8.61,0.92],[-56.71,0],[-23.13,-2.49],[-0.56,-1.09],[0,-0.01]],"o":[[0,0.07],[-0.62,1.11],[-23.34,2.45],[-56.29,0],[-8.9,-0.94],[-0.04,-0.07],[0,-0.06],[-0.01,-0.01],[0.53,-1.09],[23.28,-2.49],[56.6,0],[8.59,0.92],[0,0],[0.03,0.06]],"v":[[144.724,191.997],[144.664,192.217],[129.974,195.297],[1.854,199.437],[-126.956,195.287],[-141.646,192.197],[-141.706,191.997],[-141.656,191.817],[-141.656,191.807],[-127.476,188.767],[1.854,184.557],[130.494,188.757],[144.674,191.797],[144.674,191.807]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":145,"s":[{"i":[[0,0],[0.04,0],[8.85,0],[56.18,0],[23.48,0],[0.56,0],[0,0],[-0.04,0],[0,0],[-8.61,0],[-56.71,0],[-23.13,0],[-0.56,0],[0,0]],"o":[[0,0],[-0.62,0],[-23.34,0],[-56.29,0],[-8.9,0],[-0.04,0],[0,0],[-0.01,0],[0.53,0],[23.28,0],[56.6,0],[8.59,0],[0,0],[0.03,0]],"v":[[144.724,191.998],[144.664,191.998],[129.974,191.999],[1.854,191.999],[-126.956,191.999],[-141.646,191.998],[-141.706,191.998],[-141.656,191.998],[-141.656,191.998],[-127.476,191.998],[1.854,191.997],[130.494,191.998],[144.674,191.998],[144.674,191.998]],"c":true}]},{"t":160,"s":[{"i":[[0,-0.06],[0.04,-0.07],[8.85,-0.93],[56.18,0],[23.48,2.46],[0.56,1.11],[0,0.07],[-0.04,0.06],[0,0],[-8.61,0.92],[-56.71,0],[-23.13,-2.49],[-0.56,-1.09],[0,-0.01]],"o":[[0,0.07],[-0.62,1.11],[-23.34,2.45],[-56.29,0],[-8.9,-0.94],[-0.04,-0.07],[0,-0.06],[-0.01,-0.01],[0.53,-1.09],[23.28,-2.49],[56.6,0],[8.59,0.92],[0,0],[0.03,0.06]],"v":[[144.724,191.997],[144.664,192.217],[129.974,195.297],[1.854,199.437],[-126.956,195.287],[-141.646,192.197],[-141.706,191.997],[-141.656,191.817],[-141.656,191.807],[-127.476,188.767],[1.854,184.557],[130.494,188.757],[144.674,191.797],[144.674,191.807]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.35686275363,0.211764708161,0.101960785687,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":130,"s":[{"i":[[0,-0.06],[0.04,-0.07],[8.85,-0.93],[56.18,0],[23.48,2.46],[0.56,1.11],[0,0.07],[-0.04,0.06],[0,0],[-8.61,0.92],[-56.71,0],[-23.13,-2.49],[-0.56,-1.09],[0,-0.01]],"o":[[0,0.07],[-0.62,1.11],[-23.34,2.45],[-56.29,0],[-8.9,-0.94],[-0.04,-0.07],[0,-0.06],[-0.01,-0.01],[0.53,-1.09],[23.28,-2.49],[56.6,0],[8.59,0.92],[0,0],[0.03,0.06]],"v":[[144.724,191.997],[144.664,192.217],[129.974,195.297],[1.854,199.437],[-126.956,195.287],[-141.646,192.197],[-141.706,191.997],[-141.656,191.817],[-141.656,191.807],[-127.476,188.767],[1.854,184.557],[130.494,188.757],[144.674,191.797],[144.674,191.807]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":145,"s":[{"i":[[0,0],[0.04,0],[8.85,0],[56.18,0],[23.48,0],[0.56,0],[0,0],[-0.04,0],[0,0],[-8.61,0],[-56.71,0],[-23.13,0],[-0.56,0],[0,0]],"o":[[0,0],[-0.62,0],[-23.34,0],[-56.29,0],[-8.9,0],[-0.04,0],[0,0],[-0.01,0],[0.53,0],[23.28,0],[56.6,0],[8.59,0],[0,0],[0.03,0]],"v":[[144.724,191.998],[144.664,191.998],[129.974,191.999],[1.854,191.999],[-126.956,191.999],[-141.646,191.998],[-141.706,191.998],[-141.656,191.998],[-141.656,191.998],[-127.476,191.998],[1.854,191.997],[130.494,191.998],[144.674,191.998],[144.674,191.998]],"c":true}]},{"t":160,"s":[{"i":[[0,-0.06],[0.04,-0.07],[8.85,-0.93],[56.18,0],[23.48,2.46],[0.56,1.11],[0,0.07],[-0.04,0.06],[0,0],[-8.61,0.92],[-56.71,0],[-23.13,-2.49],[-0.56,-1.09],[0,-0.01]],"o":[[0,0.07],[-0.62,1.11],[-23.34,2.45],[-56.29,0],[-8.9,-0.94],[-0.04,-0.07],[0,-0.06],[-0.01,-0.01],[0.53,-1.09],[23.28,-2.49],[56.6,0],[8.59,0.92],[0,0],[0.03,0.06]],"v":[[144.724,191.997],[144.664,192.217],[129.974,195.297],[1.854,199.437],[-126.956,195.287],[-141.646,192.197],[-141.706,191.997],[-141.656,191.817],[-141.656,191.807],[-127.476,188.767],[1.854,184.557],[130.494,188.757],[144.674,191.797],[144.674,191.807]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.352941185236,0.815686285496,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":60},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":130,"s":[{"i":[[0,-7.558],[91.806,0],[0,7.558],[-91.806,0]],"o":[[0,7.558],[-91.806,0],[0,-7.558],[91.806,0]],"v":[[168.083,191.998],[1.853,205.683],[-164.376,191.998],[1.853,178.314]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":145,"s":[{"i":[[0,-0.001],[91.806,0],[0,0.001],[-91.806,0]],"o":[[0,0.001],[-91.806,0],[0,-0.001],[91.806,0]],"v":[[168.083,191.998],[1.853,192],[-164.376,191.998],[1.853,191.996]],"c":true}]},{"t":160,"s":[{"i":[[0,-7.558],[91.806,0],[0,7.558],[-91.806,0]],"o":[[0,7.558],[-91.806,0],[0,-7.558],[91.806,0]],"v":[[168.083,191.998],[1.853,205.683],[-164.376,191.998],[1.853,178.314]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.627451002598,0.396078437567,0.239215686917,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":130,"s":[{"i":[[0,0],[-91.806,0],[0,7.558]],"o":[[0,7.558],[91.806,0],[0,0]],"v":[[-164.376,209.524],[1.853,223.209],[168.083,209.524]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":145,"s":[{"i":[[0,0],[-91.806,0],[0,-0.152]],"o":[[0,-0.152],[91.806,0],[0,0]],"v":[[-164.376,209.524],[1.853,209.25],[168.083,209.524]],"c":false}]},{"t":160,"s":[{"i":[[0,0],[-91.806,0],[0,7.558]],"o":[[0,7.558],[91.806,0],[0,0]],"v":[[-164.376,209.524],[1.853,223.209],[168.083,209.524]],"c":false}]}]},"hd":false},{"ty":"st","c":{"a":0,"k":[0.156862750649,0.090196080506,0.04705882445,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":5},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":130,"s":[{"i":[[0,0],[0,0],[5.12,-1.32],[0,0]],"o":[[0,0],[0,1.46],[0,0],[0,0]],"v":[[168.084,191.997],[168.084,225.857],[160.194,230.037],[160.194,191.997]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":145,"s":[{"i":[[0,0],[0,0],[5.12,0.01],[0,0]],"o":[[0,0],[0,-0.011],[0,0],[0,0]],"v":[[168.084,191.998],[168.084,225.857],[160.194,225.824],[160.194,191.998]],"c":true}]},{"t":160,"s":[{"i":[[0,0],[0,0],[5.12,-1.32],[0,0]],"o":[[0,0],[0,1.46],[0,0],[0,0]],"v":[[168.084,191.997],[168.084,225.857],[160.194,230.037],[160.194,191.997]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.509803950787,0.301960796118,0.164705887437,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":130,"s":[{"i":[[0,0],[0,0],[0,1.46],[0,0]],"o":[[0,0],[-5.12,-1.32],[0,0],[0,0]],"v":[[-156.486,191.997],[-156.486,230.037],[-164.376,225.857],[-164.376,191.997]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":145,"s":[{"i":[[0,0],[0,0],[0,-0.011],[0,0]],"o":[[0,0],[-5.12,0.01],[0,0],[0,0]],"v":[[-156.486,191.998],[-156.486,225.824],[-164.376,225.857],[-164.376,191.998]],"c":true}]},{"t":160,"s":[{"i":[[0,0],[0,0],[0,1.46],[0,0]],"o":[[0,0],[-5.12,-1.32],[0,0],[0,0]],"v":[[-156.486,191.997],[-156.486,230.037],[-164.376,225.857],[-164.376,191.997]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.509803950787,0.301960796118,0.164705887437,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":130,"s":[{"i":[[0,0],[0,0],[-91.806,0],[0,7.558],[0,0]],"o":[[0,0],[0,7.558],[91.806,0],[0,0],[0,0]],"v":[[-164.376,191.998],[-164.376,225.857],[1.853,239.541],[168.083,225.857],[168.083,191.998]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":145,"s":[{"i":[[0,0],[0,0],[-91.806,0],[0,-0.059],[0,0]],"o":[[0,0],[0,-0.059],[91.806,0],[0,0],[0,0]],"v":[[-164.376,191.998],[-164.376,225.857],[1.853,225.75],[168.083,225.857],[168.083,191.998]],"c":true}]},{"t":160,"s":[{"i":[[0,0],[0,0],[-91.806,0],[0,7.558],[0,0]],"o":[[0,0],[0,7.558],[91.806,0],[0,0],[0,0]],"v":[[-164.376,191.998],[-164.376,225.857],[1.853,239.541],[168.083,225.857],[168.083,191.998]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.337254911661,0.211764708161,0.1254902035,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0}]} \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/wallet_toobad.tgs b/TMessagesProj/src/main/res/raw/wallet_toobad.tgs deleted file mode 100644 index 0a1a9d3b0..000000000 --- a/TMessagesProj/src/main/res/raw/wallet_toobad.tgs +++ /dev/null @@ -1 +0,0 @@ -{"tgs":1,"v":"5.5.2","fr":60,"ip":0,"op":180,"w":512,"h":512,"nm":"sad 2","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":3,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":0,"k":[256,270,0]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":3,"parent":1,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.68,"y":0},"t":31,"s":[0,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":64,"s":[9.1,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":89,"s":[-9.1,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":114,"s":[9.1,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":138,"s":[-9.1,0,0],"to":[0,0,0],"ti":[0,0,0]},{"t":180,"s":[0,0,0]}]},"s":{"a":0,"k":[70,70,100]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":3,"parent":2,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[0,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":38,"s":[0,-47.143,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":87,"s":[0,11.429,0],"to":[0,0,0],"ti":[0,0,0]},{"t":132,"s":[0,0,0]}]},"s":{"a":0,"k":[142.857,142.857,100]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":3,"parent":11,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.68,"y":0},"t":31,"s":[0,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":64,"s":[13,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":89,"s":[-23.922,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":114,"s":[18.452,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":138,"s":[-15.857,0,0],"to":[0,0,0],"ti":[0,0,0]},{"t":180,"s":[0,0,0]}]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":3,"parent":4,"sr":1,"ks":{"o":{"a":0,"k":0},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.68],"y":[0]},"t":31,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":58,"s":[1.98]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":83,"s":[-1.98]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":108,"s":[1.98]},{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":132,"s":[-1.98]},{"t":180,"s":[0]}]},"p":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[0,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":1},"o":{"x":0.33,"y":0},"t":31,"s":[0,-44.429,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":80,"s":[0,16.415,0],"to":[0,0,0],"ti":[0,0,0]},{"t":131,"s":[0,0,0]}]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"parent":5,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":27,"s":[-5]},{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":60,"s":[15]},{"t":128,"s":[0]}]},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[-151.228,-17.702,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":32,"s":[-151.228,-31.307,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":72,"s":[-151.457,9.213,0],"to":[0,0,0],"ti":[0,0,0]},{"t":169,"s":[-151.228,-17.702,0]}]},"a":{"a":0,"k":[150.026,-17.702,0]},"s":{"a":0,"k":[-100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[2.34,-3.09],[1.77,0.58],[8.21,1.91],[5.46,4.74],[0.8,-1.89],[-2.91,-2.52],[-30.66,-7.12],[-4.46,-1.45]],"o":[[-0.82,-0.81],[-4.46,-1.46],[-30.66,-7.12],[-1.77,-1.53],[-1.54,-6.35],[5.46,4.74],[8.21,1.91],[5.22,1.71]],"v":[[147.929,-27.763],[144.049,-29.873],[125.359,-33.693],[70.889,-65.853],[66.52,-65.203],[70.889,-71.453],[125.359,-39.293],[144.049,-35.483]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.419607847929,0.1254902035,0,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[3.56,-3.497],[3.119,-0.626],[17.394,16.448],[-5.468,-4.742],[-30.656,-7.126],[-4.455,-1.458]],"o":[[-1.297,1.274],[-13.514,2.714],[-24.77,-23.422],[5.468,4.742],[8.214,1.91],[5.885,1.926]],"v":[[146.899,-26.593],[138.886,-23.028],[84.381,-40.026],[70.886,-71.453],[125.358,-39.292],[144.045,-35.479]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.525490224361,0.247058823705,0.078431375325,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[5.01,-4.415],[3.119,-0.626],[17.394,16.448],[-5.468,-4.742],[-30.656,-7.126],[-4.455,-1.458]],"o":[[-1.364,1.202],[-13.514,2.714],[-24.77,-23.422],[5.468,4.742],[8.214,1.91],[5.885,1.926]],"v":[[146.501,-21.659],[138.141,-18.42],[81.355,-36.883],[70.886,-71.453],[125.465,-36.332],[145.344,-34.99]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.933333337307,0.741176486015,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"parent":5,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":27,"s":[5]},{"i":{"x":[0.34],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":60,"s":[-15]},{"t":128,"s":[0]}]},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[150.026,-17.702,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":32,"s":[150.025,-31.307,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":72,"s":[149.796,9.213,0],"to":[0,0,0],"ti":[0,0,0]},{"t":169,"s":[150.026,-17.702,0]}]},"a":{"a":0,"k":[150.026,-17.702,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[2.34,-3.09],[1.77,0.58],[8.21,1.91],[5.46,4.74],[0.8,-1.89],[-2.91,-2.52],[-30.66,-7.12],[-4.46,-1.45]],"o":[[-0.82,-0.81],[-4.46,-1.46],[-30.66,-7.12],[-1.77,-1.53],[-1.54,-6.35],[5.46,4.74],[8.21,1.91],[5.22,1.71]],"v":[[147.929,-27.763],[144.049,-29.873],[125.359,-33.693],[70.889,-65.853],[66.52,-65.203],[70.889,-71.453],[125.359,-39.293],[144.049,-35.483]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.419607847929,0.1254902035,0,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[3.56,-3.497],[3.119,-0.626],[17.394,16.448],[-5.468,-4.742],[-30.656,-7.126],[-4.455,-1.458]],"o":[[-1.297,1.274],[-13.514,2.714],[-24.77,-23.422],[5.468,4.742],[8.214,1.91],[5.885,1.926]],"v":[[146.899,-26.593],[138.886,-23.028],[84.381,-40.026],[70.886,-71.453],[125.358,-39.292],[144.045,-35.479]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.525490224361,0.247058823705,0.078431375325,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[5.01,-4.415],[3.119,-0.626],[17.394,16.448],[-5.468,-4.742],[-30.656,-7.126],[-4.455,-1.458]],"o":[[-1.364,1.202],[-13.514,2.714],[-24.77,-23.422],[5.468,4.742],[8.214,1.91],[5.885,1.926]],"v":[[146.501,-21.659],[138.141,-18.42],[81.355,-36.883],[70.886,-71.453],[125.465,-36.332],[145.344,-34.99]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.933333337307,0.741176486015,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"parent":5,"sr":1,"ks":{"p":{"a":0,"k":[0.67,118.273,0]},"a":{"a":0,"k":[0.67,118.273,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.17,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,-5.7],[0.36,-1.04],[4.53,0],[0,0],[1.87,-1.88],[0.51,-1.53],[0,1.16],[-1.88,1.88],[-2.85,0],[0,0]],"o":[[0,1.16],[-1.39,-4.09],[0,0],[-2.85,0],[-1.12,1.12],[-0.36,-1.04],[0,-2.85],[1.87,-1.87],[0,0],[5.69,0]],"v":[[41.716,117.517],[41.166,120.837],[31.366,113.787],[-30.024,113.787],[-37.334,116.827],[-39.824,120.837],[-40.374,117.517],[-37.334,110.197],[-30.024,107.157],[31.366,107.157]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":36,"s":[{"i":[[0,-8.459],[0.639,-1.579],[8.125,1.619],[17.891,-4.409],[3.128,-3.607],[0.949,-2.323],[0,1.595],[-2.913,3.024],[-7.882,2.807],[-18.714,-6.414]],"o":[[0,1.595],[-2.469,-6.209],[-18.159,-3.619],[-7.016,1.729],[-1.621,1.869],[-0.67,-1.579],[0,-3.919],[3.537,-3.672],[12.922,-4.603],[9.21,3.156]],"v":[[49.377,130.297],[48.412,134.099],[31.008,119.804],[-29.301,119.212],[-43.013,127.135],[-47.539,134.084],[-48.563,129.859],[-43.748,117.864],[-30.93,108.938],[31.216,109.142]],"c":true}]},{"t":79,"s":[{"i":[[0,-5.7],[0.36,-1.04],[4.53,0],[0,0],[1.87,-1.88],[0.51,-1.53],[0,1.16],[-1.88,1.88],[-2.85,0],[0,0]],"o":[[0,1.16],[-1.39,-4.09],[0,0],[-2.85,0],[-1.12,1.12],[-0.36,-1.04],[0,-2.85],[1.87,-1.87],[0,0],[5.69,0]],"v":[[41.716,117.517],[41.166,120.837],[31.366,113.787],[-30.024,113.787],[-37.334,116.827],[-39.824,120.837],[-40.374,117.517],[-37.334,110.197],[-30.024,107.157],[31.366,107.157]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.419607847929,0.1254902035,0,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.17,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[5.695,0],[0,0],[0,5.695],[0,0],[-5.695,0],[0,0],[0,-5.695],[0,0]],"o":[[0,0],[-5.695,0],[0,0],[0,-5.695],[0,0],[5.695,0],[0,0],[0,5.695]],"v":[[31.364,127.868],[-30.025,127.868],[-40.379,117.514],[-40.379,117.514],[-30.025,107.159],[31.364,107.159],[41.719,117.514],[41.719,117.514]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":36,"s":[{"i":[[8.259,-1.741],[18.211,3.802],[0,7.832],[0,0],[-10.598,0],[0,0],[0,-7.832],[0,0]],"o":[[-18.202,3.836],[-8.471,-1.769],[0,0],[0,-7.832],[0,0],[10.114,0],[0,0],[0,7.832]],"v":[[31.005,146.051],[-29.302,146.036],[-48.572,129.854],[-48.572,129.854],[-29.302,110.097],[28.068,113.701],[49.394,129.868],[49.394,129.868]],"c":true}]},{"t":79,"s":[{"i":[[5.695,0],[0,0],[0,5.695],[0,0],[-5.695,0],[0,0],[0,-5.695],[0,0]],"o":[[0,0],[-5.695,0],[0,0],[0,-5.695],[0,0],[5.695,0],[0,0],[0,5.695]],"v":[[31.364,127.868],[-30.025,127.868],[-40.379,117.514],[-40.379,117.514],[-30.025,107.159],[31.364,107.159],[41.719,117.514],[41.719,117.514]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.525490224361,0.247058823705,0.078431375325,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.17,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[5.695,0],[0,0],[0,5.695],[0,0],[-5.695,0],[0,0],[0,-5.695],[0,0]],"o":[[0,0],[-5.695,0],[0,0],[0,-5.695],[0,0],[5.695,0],[0,0],[0,5.695]],"v":[[32.73,133.705],[-31.391,133.705],[-41.745,123.351],[-41.745,119.195],[-31.391,108.841],[32.73,108.841],[43.085,119.195],[43.085,123.351]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":36,"s":[{"i":[[8.285,-1.637],[19.885,3.895],[0,8.646],[0,0],[-9.768,2.33],[-19.507,-4.712],[0,-8.646],[0,0]],"o":[[-19.877,3.928],[-8.498,-1.665],[0,0],[0,-8.646],[19.527,-4.657],[9.583,2.315],[0,0],[0,8.646]],"v":[[33.431,154.914],[-31.844,154.899],[-51.114,137.901],[-51.114,131.592],[-31.845,112.41],[33.431,113.002],[51.82,131.607],[51.82,137.916]],"c":true}]},{"t":79,"s":[{"i":[[5.695,0],[0,0],[0,5.695],[0,0],[-5.695,0],[0,0],[0,-5.695],[0,0]],"o":[[0,0],[-5.695,0],[0,0],[0,-5.695],[0,0],[5.695,0],[0,0],[0,5.695]],"v":[[32.73,133.705],[-31.391,133.705],[-41.745,123.351],[-41.745,119.195],[-31.391,108.841],[32.73,108.841],[43.085,119.195],[43.085,123.351]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.886274516582,0.65098041296,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.17,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[5.695,0],[0,0],[0,5.695],[0,0],[-5.695,0],[0,0],[0,-5.695],[0,0]],"o":[[0,0],[-5.695,0],[0,0],[0,-5.695],[0,0],[5.695,0],[0,0],[0,5.695]],"v":[[32.73,127.705],[-31.391,127.705],[-41.745,117.351],[-41.745,113.195],[-31.391,102.841],[32.73,102.841],[43.085,113.195],[43.085,117.351]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":36,"s":[{"i":[[8.285,-1.637],[19.885,3.895],[0,7.832],[0,0],[-9.278,3.397],[-21.775,-6.806],[0,-7.832],[0,0]],"o":[[-19.877,3.928],[-8.498,-1.665],[0,0],[0,-7.832],[18.922,-6.928],[9.329,2.916],[0,0],[0,7.832]],"v":[[33.431,145.804],[-31.844,145.79],[-51.114,129.631],[-51.114,123.916],[-31.845,104.159],[33.431,104.751],[51.82,123.929],[51.82,129.644]],"c":true}]},{"t":79,"s":[{"i":[[5.695,0],[0,0],[0,5.695],[0,0],[-5.695,0],[0,0],[0,-5.695],[0,0]],"o":[[0,0],[-5.695,0],[0,0],[0,-5.695],[0,0],[5.695,0],[0,0],[0,5.695]],"v":[[32.73,127.705],[-31.391,127.705],[-41.745,117.351],[-41.745,113.195],[-31.391,102.841],[32.73,102.841],[43.085,113.195],[43.085,117.351]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.694117665291,0.223529413342,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":60},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"parent":5,"sr":1,"ks":{"p":{"a":0,"k":[77.527,43.941,0]},"a":{"a":0,"k":[-76.473,43.941,0]},"s":{"a":0,"k":[-100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.432,"y":0},"t":0,"s":[{"i":[[-3.02,-6.13],[-4.15,-2.39],[-10.29,0],[-17.63,10.34],[-1.47,-1.27],[8.15,-4.79],[10.28,0],[15.57,8.97]],"o":[[1.46,-1.25],[15.57,8.97],[10.28,0],[4.15,-2.43],[2.99,-6.13],[-17.63,10.34],[-10.29,0],[-8.2,-4.73]],"v":[[-125.77,30.857],[-117.26,32.127],[-76.4,42.727],[-35.55,32.127],[-27.03,30.837],[-35.55,25.357],[-76.4,35.957],[-117.26,25.357]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":32,"s":[{"i":[[-3.02,-6.13],[-4.175,-1.648],[-11.22,0],[-17.743,7.131],[-1.47,-1.27],[8.203,-3.305],[11.209,0],[15.665,6.188]],"o":[[1.46,-1.25],[15.665,6.187],[11.209,0],[4.176,-1.676],[2.99,-6.13],[-17.742,7.133],[-11.22,0],[-8.251,-3.264]],"v":[[-125.77,30.857],[-117.402,30.782],[-76.403,37.659],[-35.548,30.299],[-27.03,30.837],[-35.064,24.257],[-76.403,31.472],[-117.879,24.735]],"c":true}]},{"t":83,"s":[{"i":[[-3.02,-6.13],[-4.15,-2.39],[-10.29,0],[-17.63,10.34],[-1.47,-1.27],[8.15,-4.79],[10.28,0],[15.57,8.97]],"o":[[1.46,-1.25],[15.57,8.97],[10.28,0],[4.15,-2.43],[2.99,-6.13],[-17.63,10.34],[-10.29,0],[-8.2,-4.73]],"v":[[-125.77,30.857],[-117.26,32.127],[-76.4,42.727],[-35.55,32.127],[-27.03,30.837],[-35.55,25.357],[-76.4,35.957],[-117.26,25.357]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.419607847929,0.1254902035,0,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.432,"y":0},"t":0,"s":[{"i":[[-8.982,-5.175],[-10.286,0],[-17.628,10.343],[4.629,-7.072],[28.886,0],[4.629,7.071]],"o":[[15.571,8.971],[10.286,0],[8.941,-5.246],[-4.629,7.071],[-28.886,0],[-4.629,-7.072]],"v":[[-117.262,25.355],[-76.405,35.955],[-35.548,25.355],[-28.062,32.656],[-76.405,59.613],[-124.748,32.656]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":32,"s":[{"i":[[-9.037,-3.569],[-11.216,0],[-17.741,7.136],[4.629,-7.072],[28.886,0],[4.629,7.071]],"o":[[15.667,6.188],[11.216,0],[8.998,-3.619],[-4.629,7.071],[-28.886,0],[-4.629,-7.072]],"v":[[-117.881,24.734],[-76.408,31.471],[-35.061,24.256],[-28.062,32.656],[-76.405,59.613],[-124.748,32.656]],"c":true}]},{"t":83,"s":[{"i":[[-8.982,-5.175],[-10.286,0],[-17.628,10.343],[4.629,-7.072],[28.886,0],[4.629,7.071]],"o":[[15.571,8.971],[10.286,0],[8.941,-5.246],[-4.629,7.071],[-28.886,0],[-4.629,-7.072]],"v":[[-117.262,25.355],[-76.405,35.955],[-35.548,25.355],[-28.062,32.656],[-76.405,59.613],[-124.748,32.656]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.525490224361,0.247058823705,0.078431375325,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.432,"y":0},"t":0,"s":[{"i":[[-8.982,-5.175],[-10.286,0],[-17.628,10.343],[4.629,-7.072],[28.886,0],[4.629,7.071]],"o":[[15.571,8.971],[10.286,0],[8.941,-5.246],[-4.629,7.071],[-28.886,0],[-4.629,-7.072]],"v":[[-119.605,24.898],[-76.405,40.955],[-33.59,25.027],[-28.062,37.656],[-76.405,64.613],[-124.748,37.656]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":32,"s":[{"i":[[-9.037,-3.569],[-11.216,0],[-17.741,7.136],[4.629,-7.072],[28.886,0],[4.629,7.071]],"o":[[15.667,6.188],[11.216,0],[8.998,-3.619],[-4.629,7.071],[-28.886,0],[-4.629,-7.072]],"v":[[-120.175,24.6],[-76.408,36.04],[-33.15,24.195],[-28.062,37.656],[-76.405,64.613],[-124.748,37.656]],"c":true}]},{"t":83,"s":[{"i":[[-8.982,-5.175],[-10.286,0],[-17.628,10.343],[4.629,-7.072],[28.886,0],[4.629,7.071]],"o":[[15.571,8.971],[10.286,0],[8.941,-5.246],[-4.629,7.071],[-28.886,0],[-4.629,-7.072]],"v":[[-119.605,24.898],[-76.405,40.955],[-33.59,25.027],[-28.062,37.656],[-76.405,64.613],[-124.748,37.656]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.886274516582,0.65098041296,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"parent":5,"sr":1,"ks":{"p":{"a":0,"k":[-76.473,43.941,0]},"a":{"a":0,"k":[-76.473,43.941,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.432,"y":0},"t":0,"s":[{"i":[[-3.02,-6.13],[-4.15,-2.39],[-10.29,0],[-17.63,10.34],[-1.47,-1.27],[8.15,-4.79],[10.28,0],[15.57,8.97]],"o":[[1.46,-1.25],[15.57,8.97],[10.28,0],[4.15,-2.43],[2.99,-6.13],[-17.63,10.34],[-10.29,0],[-8.2,-4.73]],"v":[[-125.77,30.857],[-117.26,32.127],[-76.4,42.727],[-35.55,32.127],[-27.03,30.837],[-35.55,25.357],[-76.4,35.957],[-117.26,25.357]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":32,"s":[{"i":[[-3.02,-6.13],[-4.142,-1.636],[-10.29,0],[-17.608,7.13],[-1.47,-1.27],[8.14,-3.304],[10.28,0],[15.538,6.143]],"o":[[1.46,-1.25],[15.539,6.142],[10.28,0],[4.144,-1.675],[2.99,-6.13],[-17.607,7.132],[-10.29,0],[-8.184,-3.24]],"v":[[-125.77,30.857],[-117.149,30.365],[-76.319,37.687],[-35.498,30.286],[-27.03,30.837],[-35.234,24.469],[-76.319,31.806],[-117.416,24.55]],"c":true}]},{"t":83,"s":[{"i":[[-3.02,-6.13],[-4.15,-2.39],[-10.29,0],[-17.63,10.34],[-1.47,-1.27],[8.15,-4.79],[10.28,0],[15.57,8.97]],"o":[[1.46,-1.25],[15.57,8.97],[10.28,0],[4.15,-2.43],[2.99,-6.13],[-17.63,10.34],[-10.29,0],[-8.2,-4.73]],"v":[[-125.77,30.857],[-117.26,32.127],[-76.4,42.727],[-35.55,32.127],[-27.03,30.837],[-35.55,25.357],[-76.4,35.957],[-117.26,25.357]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.419607847929,0.1254902035,0,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.432,"y":0},"t":0,"s":[{"i":[[-8.982,-5.175],[-10.286,0],[-17.628,10.343],[4.629,-7.072],[28.886,0],[4.629,7.071]],"o":[[15.571,8.971],[10.286,0],[8.941,-5.246],[-4.629,7.071],[-28.886,0],[-4.629,-7.072]],"v":[[-117.262,25.355],[-76.405,35.955],[-35.548,25.355],[-28.062,32.656],[-76.405,59.613],[-124.748,32.656]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":32,"s":[{"i":[[-8.964,-3.543],[-10.286,0],[-17.606,7.134],[4.629,-7.072],[28.886,0],[4.629,7.071]],"o":[[15.54,6.143],[10.286,0],[8.929,-3.618],[-4.629,7.071],[-28.886,0],[-4.629,-7.072]],"v":[[-117.417,24.548],[-76.323,31.805],[-35.231,24.468],[-28.062,32.656],[-76.405,59.613],[-124.748,32.656]],"c":true}]},{"t":83,"s":[{"i":[[-8.982,-5.175],[-10.286,0],[-17.628,10.343],[4.629,-7.072],[28.886,0],[4.629,7.071]],"o":[[15.571,8.971],[10.286,0],[8.941,-5.246],[-4.629,7.071],[-28.886,0],[-4.629,-7.072]],"v":[[-117.262,25.355],[-76.405,35.955],[-35.548,25.355],[-28.062,32.656],[-76.405,59.613],[-124.748,32.656]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.525490224361,0.247058823705,0.078431375325,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.432,"y":0},"t":0,"s":[{"i":[[-8.982,-5.175],[-10.286,0],[-17.628,10.343],[4.629,-7.072],[28.886,0],[4.629,7.071]],"o":[[15.571,8.971],[10.286,0],[8.941,-5.246],[-4.629,7.071],[-28.886,0],[-4.629,-7.072]],"v":[[-119.605,24.898],[-76.405,40.955],[-33.59,25.027],[-28.062,37.656],[-76.405,64.613],[-124.748,37.656]],"c":true}]},{"i":{"x":0.34,"y":1},"o":{"x":0.333,"y":0},"t":32,"s":[{"i":[[-8.964,-3.543],[-10.286,0],[-17.606,7.134],[4.629,-7.072],[28.886,0],[4.629,7.071]],"o":[[15.54,6.143],[10.286,0],[8.929,-3.618],[-4.629,7.071],[-28.886,0],[-4.629,-7.072]],"v":[[-119.72,24.391],[-76.323,36.148],[-33.309,24.38],[-28.062,37.656],[-76.405,64.613],[-124.748,37.656]],"c":true}]},{"t":83,"s":[{"i":[[-8.982,-5.175],[-10.286,0],[-17.628,10.343],[4.629,-7.072],[28.886,0],[4.629,7.071]],"o":[[15.571,8.971],[10.286,0],[8.941,-5.246],[-4.629,7.071],[-28.886,0],[-4.629,-7.072]],"v":[[-119.605,24.898],[-76.405,40.955],[-33.59,25.027],[-28.062,37.656],[-76.405,64.613],[-124.748,37.656]],"c":true}]}]},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.886274516582,0.65098041296,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"parent":3,"sr":1,"ks":{"p":{"a":0,"k":[0.67,9.056,0]},"a":{"a":0,"k":[0.67,9.056,0]},"s":{"a":1,"k":[{"i":{"x":[0.34,0.34,0.34],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":0,"s":[100,100,100]},{"i":{"x":[0.34,0.34,0.34],"y":[1,1,1]},"o":{"x":[0.33,0.33,0.33],"y":[0,0,0]},"t":32,"s":[95,105,100]},{"i":{"x":[0.34,0.34,0.34],"y":[1,1,1]},"o":{"x":[0.33,0.33,0.33],"y":[0,0,0]},"t":85,"s":[105,95,100]},{"t":132,"s":[100,100,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-7.723,-1.278]],"o":[[0,0],[0,0]],"v":[[15.688,-174.979],[28.278,-173.441]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-1.644,-0.406]],"o":[[1.538,0.335],[0,0]],"v":[[37.043,-171.76],[41.82,-170.649]],"c":false}},"hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-72.643],[82.438,0],[0,72.643],[-82.438,0]],"o":[[0,72.643],[-82.438,0],[0,-72.643],[82.438,0]],"v":[[149.937,-44.447],[0.67,-29.268],[-148.597,-44.447],[0.67,-175.979]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.874509811401,0.474509805441,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":90},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[1.457,-95.029],[92.978,1.425],[-1.457,95.029],[-92.978,-1.425]],"o":[[-1.457,95.029],[-92.978,-1.425],[1.457,-95.029],[92.978,1.425]],"v":[[169.077,-1.306],[-1.912,168.178],[-167.626,-6.466],[3.363,-175.95]],"c":true}},"hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.819607853889,0.250980407,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-104.313],[104.313,0],[0,104.313],[-104.313,0]],"o":[[0,104.313],[-104.313,0],[0,-104.313],[104.313,0]],"v":[[189.545,-2.018],[0.67,186.857],[-188.205,-2.018],[0.67,-190.894]],"c":true}},"hd":false},{"ty":"st","c":{"a":0,"k":[0.96862745285,0.494117647409,0.254901975393,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.694117665291,0.223529413342,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0}]} \ No newline at end of file diff --git a/TMessagesProj/src/main/res/values-ar/strings.xml b/TMessagesProj/src/main/res/values-ar/strings.xml index 58b96c04e..e440837aa 100644 --- a/TMessagesProj/src/main/res/values-ar/strings.xml +++ b/TMessagesProj/src/main/res/values-ar/strings.xml @@ -366,7 +366,7 @@ المعذرة، لا يمكنك إضافة هذا المستخدم للقنوات. المعذرة، يوجد الكثير من المشرفين في هذه القناة. عذرًا، يوجد الكثير من البوتات في هذه القناة. - المعذرة، يمكنك إضافة أول 200 عضو للقناة فقط. يمكن لعدد غير محدود من الناس الانضمامُ للقناة عبرَ رابطها. + المعذرة، يمكنك إضافة أول 200 عضو فقط إلى القناة. يمكن لعدد غير محدود من الناس الانضمام عبر رابط القناة. الكثير من المُجتمعات المعذرة، أنت عضو في الكثير من المجموعات والقنوات. الرجاء مغادرة بعض منها قبل إنشاء واحدة جديدة. المعذرة، أنت عضو في الكثير من المجموعات والقنوات. الرجاء مغادرة بعض منها قبل الانضمام لواحدة جديدة. @@ -403,7 +403,7 @@ إضافة أسماء المشرفين للمنشورات التي ينشرونها. صلاحيات المشرف لقب مخصص - قم باختيار لقب مخصص كي يظهر لجميع الأعضاء بدلًا من \'%1$s\'. + لقب مخصص سيكون مرئيًّا لجميع الأعضاء بدل من «%1$s». ما هي صلاحيات هذا المشرف؟ تغيير معلومات القناة تغيير معلومات المجموعة @@ -412,7 +412,7 @@ حذف رسائل الآخرين حذف الرسائل إضافة مشرفين جدد - إزالة المشرف + إزالة الإشراف نقل ملكية المجموعة نقل ملكية القناة تأكيد أمني @@ -613,10 +613,10 @@ غادر un1 المجموعة غادر un1 القناة un1 أضاف un2 - un1 انضم للمجموعة + انضم un1 للمجموعة حظر %1$s ألغى حظر %1$s - un1 انضم للقناة + انضم un1 للقناة عيّن un1 صورة جديدة للمجموعة عيّن un1 صورة جديدة للقناة أزال un1 صورة المجموعة @@ -722,7 +722,7 @@ بطاقة التخزين الخارجية مجلد الملفات الأخيرة - Files A-Z + الملفات أ-ي لم يتم العثور على نتائج ما من ملفات باسم **%1$s** في هذا المجلد. هذا المجلد فارغ. @@ -731,7 +731,7 @@ استعراض مجلد التطبيق استعراض جميع المجلدات استعراض ذاكرة التخزين الخارجية - Search music + بحث الصوتيات ملصقات المجموعة اختر من ملصقاتك @@ -909,6 +909,7 @@ حذف من عند %1$s حذف من عند كافة الأعضاء تم نسخ النص للحافظة + Hold to record audio. اضغط مطولًا لتسجيل الصوت، انقر للتحويل للمرئي. اضغط مطولًا لتسجيل مرئي، انقر للتحويل للصوتي. تجاهل الرسالة الصوتية @@ -935,7 +936,7 @@ "تثبيت ملفات APK محظور لهذا التطبيق، يمكنك السماح بهذا من إعدادات النظام. " الرسائل غير المقروءة بحث عن حزم الملصقات - بحث عن حزم الملصقات الشائعة + البحث عن الملصقات الشائعة بحث الرموز التعبيرية الرابط مزود معاينة الخرائط @@ -976,7 +977,18 @@ أرسل الرمز التعبيري **🎲** لرمي حجر النرد. أرسل الرمز التعبيري **🎯** لتجربة حظك. أرسل الرمز %1$s لتجربة حظك. - إرسالSend a dart emoji + إرسال + كوفيد-19 + PSA + تزودك هذه الرسالة بإعلان عام لمبادرة تتعلق بالجائحة الحالية كوفيد-19. تعرف على المزيد حول هذه المبادرة على https://telegram.org/blog/coronavirus + PSA info test + إشعار كوفيد-19 + تزودك هذه الرسالة بإعلان عام لمبادرة تتعلق بالجائحة الحالية كوفيد-19. تعرف على المزيد حول هذه المبادرة على https://telegram.org/blog/coronavirus + إشعار مهم + هذا إشعار مهم. + إخفاء المحادثة + هل أنت متأكد أنك تريد إخفاء هذه المحادثة؟ + إخفاء عيّن %1$s عداد التدمير الذاتي ليصبح %2$s قمت بتعيين عداد التدمير الذاتي ليصبح %1$s @@ -1029,7 +1041,7 @@ أرسل %1$s ملصقًا لمجموعة %2$s أرسل %1$s ملصق %3$s لمجموعة %2$s أضافك %1$s لمجموعة %2$s - %1$s انضم للمجموعة %2$s + انضم %1$s للمجموعة %2$s غيّرَ %1$s صورة مجموعة %2$s %1$s أضاف %3$s للمجموعة %2$s عاد %1$s لمجموعة %2$s @@ -1297,6 +1309,7 @@ الأقنعة يمكنك إضافة أقنعة للصور التي ترسلها، لعمل ذلك قم بفتح محرر الصور قبل إرسال الصورة. الملصقات الشائعة + الصور المتحركة الشائعة اقتراح ملصقات عبر الرموز جميع الحزم حزمي @@ -1443,7 +1456,7 @@ حجم خط الرسائل اسأل سؤالًا إضافة شرح - Users will see this text after choosing the wrong answer, good for educational purposes. + سيرى المستخدمون هذا النص بعد اختيار الإجابة الخاطئة وهذا جيد للأغراض التعليمية. تفعيل المؤثرات البصرية إعدادات المحادثات الأجهزة @@ -1657,6 +1670,7 @@ تشغيل الوسائط تلقائيًا الرفع للتحدث حفظ في المعرض + Sound muted تعديل الاسم تخصيص مخصص @@ -1819,6 +1833,7 @@ افتح تيليجرام على سطح المكتب للحصول على رمز QR. امسح رمز الـ QR لربط حسابك. يمكن استخدام هذا الرمز للسماح لشخص ما بتسجيل الدخول إلى حسابك في تيليجرام.\n\nلتأكيد عملية تسجيل الدخول؛ يرجى الذهاب إلى الإعدادات > الأجهزة > مسح QR وامسح الرمز. + يحتاج تيليجرام الوصول إلى الكاميرا لتتمكن من مسح رمز QR. قاعدة البيانات على الجهاز مسح قاعدة البيانات المحلية @@ -2126,11 +2141,23 @@ هل أنت متأكد أنك تريد إزالة «%1$s» من قائمة المستثناة دائمًا؟ هل أنت متأكد أنك تريد إزالة «%1$s» من قائمة المضمّنة دائمًا؟ هل أنت متأكد أنك تريد إزالة «%1$s» من قائمة المضمّنة دائمًا؟ - هل أنت متأكد أنك تريد إزالة «%1$s» من قائمة المستثناة دائمًا؟ + هل أنت متأكد أنك تريد إزالة «%1$s» من قائمة المُضمّنة دائمًا؟ مجلدات المحادثات افتح *الإعدادات > المجلدات* لتنظيم محادثاتك في مجلدات. غير المكتومة غير المقروءة + إضافة إلى مجلد + إزالة من المجلد + اختر مجلّدا + تمت إضافة **%1$s** إلى **%2$s** + تمت إضافة **%1$s** إلى **%2$s** + تمت إضافة **%1$s** إلى **%2$s** + تمت إزالة **%1$s** من **%2$s** + تمت إزالة **%1$s** من **%2$s** + تمت إزالة **%1$s** من **%2$s** + وصلت الحد الأقصى + عذرًا، لايمكنك إضافة أكثر من 100 محادثة إلى مجلد. + عذرًا، لايمكنك استثناء أكثر من 100 محادثة من مجلد. رمز القفل تغيير رمز القفل @@ -2260,6 +2287,7 @@ عرض في لائحة عرض كمصفوفة عرض كافة الوسائط + إظهار الملصقات عرض جميع الملفات عرض كل الصور المتحركة انقر للتحميل @@ -2332,8 +2360,9 @@ حذف تعديل تكرار - مرسوم + حدود عادي + بإطار إعادة تعيين الأصلي مربع @@ -2344,15 +2373,24 @@ التحقق بخطوتين التحقق بخطوتين + تم تعيين كلمة المرور! + سيتم طلب كلمة المرور هذه عندما تسجل الدخول في جهاز جديد بالإضافة إلى الرمز الذي نرسله برسالة نصية SMS. + العودة للإعدادات + Return to Passport + تعيين كلمة المرور تعيين كلمة مرور إضافية يمكنك تعيين كلمة مرور إضافية يتم طلبها عند تسجيل الدخول من جهاز غير معروف، إضافةً إلى الرمز الذي يصلك في رسالة SMS قصيرة. كلمة مرورك + On + Off قم بإدخال كلمة مرورك يرجى إدخال كلمة مرورك لإتمام عملية النقل. قم بإدخال كلمة مرور + أدخل كلمة مرور جديدة قم بإدخال كلمة مرورك الجديدة قم بإعادة إدخال كلمة مرورك بريد الاسترداد + بريد الاسترداد بريدك الإلكتروني رمز بريدك الإلكتروني يرجى تأكيد بريدك الإلكتروني عبر إدخال الرمز الذي تلقيته للتوِّ على %1$s. @@ -2364,7 +2402,9 @@ يرجى تفقُّد بريدك الإلكتروني والضغطُ على رابط التأكيد لإتمام تفعيل التحقق بخطوتين. قم بتفقُّد مجلدِ الرسائل غير المرغوب بها أيضًا. نجح الأمر! تم تفعيل كلمة المرور الخاصة بالتحقق بخطوتين. + تم تغيير كلمة مرور التحقق بخطوتين. تم تفعيل بريد الاسترداد الإلكتروني لعملية التحقق بخطوتين. + Your recovery email for Two-Step Verification is changed. تغيير كلمة المرور إيقاف كلمة المرور تعيين بريد استرداد @@ -2376,9 +2416,11 @@ إلغاء عملية الإعداد تحذير! سيتم فقدان جميع البيانات المحفوظة في جواز تيليجرام! تلميح كلمة المرور + التلميح قم بإنشاء تلميحٍ لكلمة مرورك كلمتا المرور غير متطابقتين إلغاء عملية إعداد التحقق بخطوتين + "مقاطعة الإعدادات " إلغاء عملية إعداد بريد الاسترداد إلغاء تعطيل @@ -2406,6 +2448,8 @@ الرمز تم تعطيل كلمة المرور إعادة إرسال الرمز + رمز التحقق + أدخل الرمز تم إرسال رمز التحقق إلى بريدك الإلكتروني. لقد قمت بتفعيل التحقق بخطوتين.\nلتسجيل الدخول إلى حسابك هذا من أجهزة جديدةٍ ستحتاج إلى كلمة المرور التي قمت بتعيينها. @@ -2577,8 +2621,8 @@ التالي انضممت للمجموعة عبر رابط دعوة - un1 انضم للمجموعة عبر رابط دعوة - un1 أزال un2 + انضم un1 للمجموعة عبر رابط دعوة + أزالun1 un2 غادر un1 المجموعة un1 أضاف un2 أزال un1 صورة المجموعة @@ -2648,6 +2692,7 @@ المعذرة، هذا المستخدم عضو في الكثير من المجموعات والقنوات. دعه يغادر بعض منها أولًا. تحذير! سيؤدي هذا لحذف **جميع رسائل** هذه المحادثة من **كلا** الطرفين. + تحذير! سيؤدي هذا **لحذف جميع الرسائل** في هذه المحادثة. حذف الكل إيقاف التحميل؟ تحديث تيليجرام @@ -2692,7 +2737,7 @@ هل ترغب حقًا في حذف ومغادرة مجموعة **%1$s**؟ هل ترغب حقًا في حذف هذه المحادثة؟ هل ترغب حقًا في حذف المحادثة مع **%1$s**؟ - Are you sure you want to delete the chat with **%1$s** and block them? + هل أنت متأكد أنك تريد حذف المحادثة مع **%1$s** وحظره؟ هل ترغب حقًا في حذف **الرسائل المحفوظة**؟ هل ترغب حقًا في حذف المحادثة السرية مع **%1$s**؟ هل ترغب حقًا في حذف المحادثة **%1$s**؟ diff --git a/TMessagesProj/src/main/res/values-de/strings.xml b/TMessagesProj/src/main/res/values-de/strings.xml index 5cdd16f82..2d84ac43b 100644 --- a/TMessagesProj/src/main/res/values-de/strings.xml +++ b/TMessagesProj/src/main/res/values-de/strings.xml @@ -722,7 +722,7 @@ SD-Karte Ordner Letzte Dateien - Files A-Z + Dateien von A-Z Nichts gefunden **%1$s** konnte in diesem Verzeichnis leider nicht gefunden werden. Dieser Ordner ist leer. @@ -731,7 +731,7 @@ App-Ordner durchsuchen Dateisystem durchsuchen SD-Karte durchsuchen - Search music + Musik suchen Gruppen-Sticker Sticker-Paket auswählen @@ -909,6 +909,7 @@ Bei %1$s löschen Bei allen Mitgliedern löschen Text in die Zwischenablage kopiert + Hold to record audio. Halten für Audioaufnahme. Tippen für Video. Halten für Videoaufnahme. Tippen für Audio. Sprachnachricht verwerfen @@ -976,7 +977,18 @@ **:würfel:**-Emoji senden, um zu würfeln Sende einen **:dart:** Emoji, um dein Glück zu versuchen. Sende ein %1$s Emoji, um dein Glück zu versuchen. - SENDENSend a dart emoji + SENDEN + COVID-19 + PSA + Diese Nachricht enthält eine öffentliche Bekanntmachung hinsichtlich der aktuellen COVID-19 Pandemie. Erfahre mehr über diese Initiative unter https://telegram.org/blog/coronavirus + PSA info test + COVID-19 Benachrichtigung + Diese Nachricht enthält eine öffentliche Bekanntmachung hinsichtlich der aktuellen COVID-19 Pandemie. Erfahre mehr über diese Initiative unter https://telegram.org/blog/coronavirus + Wichtige Benachrichtigung + Das ist eine wichtige Benachrichtigung. + Chat verstecken + Wirklich diesen Chat verstecken? + Verstecken %1$s hat den Selbstzerstörungs-Timer auf %2$s gesetzt Du hast den Selbstzerstörungs-Timer auf %1$s gesetzt @@ -1297,6 +1309,7 @@ Masken Masken lassen sich Bildern hinzufügen. Öffne dazu vor dem Versand einfach den Editor. Angesagte Sticker + Angesagte GIFs Sticker für Emoji vorschlagen Alle Pakete Meine Pakete @@ -1443,7 +1456,7 @@ Textgröße für Nachrichten Eine Frage stellen Eine Erklärung hinzufügen - Nutzer sehen diesen Text, nachdem sie die falsche Antwort gewählt haben. Gut für Lehrzwecke. + Nutzer sehen diesen Text, nachdem sie eine falsche Antwort gewählt haben. Gut für Lehrzwecke. Animationen aktivieren Chat-Einstellungen Geräte @@ -1657,6 +1670,7 @@ Automatische Medienwiedergabe Zum Sprechen ans Ohr In der Galerie speichern + Ton stumm Name bearbeiten Anpassen Eigene @@ -1819,6 +1833,7 @@ Starte das Programm auf dem Computer, um deinen QR-Code zu erhalten. Scanne den QR-Code mit deinem Handy, um dich mit deinem Konto zu verbinden. Mit diesem Code kann man sich bei deinem Telegram Konto anmelden.\n\nUm die Anmeldung zu bestätigen, in die Einstellungen von Telegram wechseln > Geräte > QR-Code scannen und den Code mit der Kamera scannen. + Telegram benötigt zum Scannen von QR-Codes Zugriff auf deine Kamera. Lokale Datenbank Lokale Datenbank leeren @@ -2127,10 +2142,22 @@ Wirklich \"%1$s\" aus der \'immer enthalten\' Liste entfernen? Wirklich \"%1$s\" aus den \'immer enthaltenen\' Chats entfernen? Wirklich \"%1$s\" aus der Liste \'immer enthalten\' entfernen? - Chat-Ordner + Ordner *Einstellungen > Ordner* öffnen, um Chats in Ordnern zu sortieren. Nicht stumm Ungelesen + Zu Ordner hinzufügen + Aus Ordner entfernen + Wähle einen Ordner + **%1$s** wurde **%2$s** hinzugefügt + **%1$s** wurde **%2$s** hinzugefügt + **%1$s** wurde **%2$s** hinzugefügt + **%1$s** wurde aus **%2$s** entfernt + **%1$s** wurde aus **%2$s** entfernt + **%1$s** wurde aus **%2$s** entfernt + Limt erreicht + Mehr als 100 Chats kann man leider nicht einem Ordner hinzufügen. + Mehr als 100 Chats kann man leider nicht aus einem Ordner ausschließen. Pincode-Sperre Pincode ändern @@ -2260,6 +2287,7 @@ Als Liste Als Gitter Zeige alle Medien + Sticker zeigen Zeige alle Dateien Alle GIFs zeigen Antippen zum Herunterladen @@ -2334,6 +2362,7 @@ Klonen Kontur Normal + Gerahmt Zurücksetzen Original Quadrat @@ -2344,27 +2373,38 @@ Zweistufige Bestätigung Zweistufige Bestätigung + Passwort festgelegt! + Du benötigt dieses Passwort neben dem Code, der dir per SMS geschickt wird, sobald du dich mit einem neuen Gerät anmeldest. + Zurück zu Einstellungen + Zurück zu Passport + Passwort festlegen Zusätzliches Passwort festlegen - Du kannst ein eigenes Passwort festlegen, um dich an einem neuen Gerät anzumelden, zusätzlich zum SMS-Code. + Hier kannst du ein eigenes Passwort festlegen, um dich an einem neuen Gerät anzumelden, zusätzlich zum Code, der per SMS kommt. Dein Passwort + Ein + Aus Dein Passwort eingeben Um die Übertragung abzuschliessen, bitte dein Passwort eingeben. Passwort eingeben + Neues Passwort festlegen Neues Passwort eingeben Passwort erneut eingeben Wiederherstellung + E-Mail-Adresse\nfür Wiederherstellung Deine E-Mail Dein E-Mail Code Bestätige bitte deine E-Mail-Adresse, indem du den Code eingibst, den du gerade bei %1$s erhalten hast. Falls du dein Passwort vergisst, benötigen wir deine richtige E-Mail Adresse. Überspringen Warnung - Keine gute Idee.\n\nWenn du dein Passwort vergisst, verlierst du den Zugang zu deinem Telegram Konto. Für immer, ohne Ausnahme. + Das ist keine gute Idee.\n\nWenn du dein Passwort vergisst, verlierst du den Zugang zu deinem Telegram-Konto. Für immer, ohne Ausnahme. Fast geschafft! Bitte überprüfe deine Mails (auch den Spam-Ordner) um die zweistufige Bestätigung abzuschließen. Geschafft! Dein Passwort für die zweistufige Bestätigung ist jetzt aktiv. + Dein Passwort für die zweistufige Bestätigung wurde geändert. Deine Wiederherstellungs-E-Mail für die zweistufige Bestätigung ist jetzt aktiv. + Your recovery email for Two-Step Verification is changed. Passwort ändern Passwort deaktivieren E-Mail festlegen @@ -2376,9 +2416,11 @@ Einrichtung abbrechen Warnung! Alle Daten in deinem Telegram Passport gehen verloren! Passwort-Erinnerung + Hinweis Hinweis auf dein Passwort eingeben Kennwörter stimmen nicht überein Einrichtung abbrechen + Einrichtung abbrechen E-Mail-Einrichtung abbrechen Abbrechen Deaktivieren @@ -2406,6 +2448,8 @@ Code Passwort deaktiviert Code erneut senden + Verifizierungscode + Code eingeben Der Bestätigungscode wurde an deine E-Mail gesendet. Du hast die zweistufige Bestätigung aktiviert.\nWenn du dich bei Telegram anmeldest, brauchst du dein Passwort. @@ -2648,6 +2692,7 @@ Der Nutzer ist leider Mitglied in zu vielen Gruppen und Kanälen. Bitte die Person, erst einige zu verlassen. Warnung! Das wird **alle Nachrichten** in diesem Chat **für beide Teilnehmer löschen**. + Warnung! Das wird in diesem Chat **alle Nachrichten löschen**. Alles löschen Ladevorgang stoppen? Aktualisiere Telegram diff --git a/TMessagesProj/src/main/res/values-es/strings.xml b/TMessagesProj/src/main/res/values-es/strings.xml index 45dd33c51..ceb9ef61e 100644 --- a/TMessagesProj/src/main/res/values-es/strings.xml +++ b/TMessagesProj/src/main/res/values-es/strings.xml @@ -41,7 +41,7 @@ Restablecer la cuenta Como la cuenta **%1$s** está activa y protegida con una contraseña, la eliminaremos en 1 semana, por motivos de seguridad.\n\nPuedes cancelar el proceso en cualquier momento. Podrás restablecer tu cuenta en: - Tus intentos para restablecer la cuenta fueron cancelados por su usuario activo. Por favor, reinténtalo en 7 días. + Tus intentos recientes de restablecer esta cuenta fueron cancelados por su usuario activo. Por favor, reinténtalo en 7 días. RESTABLECER CUENTA El enlace no es válido o expiró. El proceso de eliminación de la cuenta %1$s fue cancelado. Puedes cerrar esta ventana. @@ -144,7 +144,7 @@ Te uniste al chat secreto. Vaciar chat Vaciar chat - Historial borrado. + Historial eliminado. Silenciar Notificar Chat eliminado @@ -169,7 +169,7 @@ Chats archivados Eliminar chat Cuenta eliminada - Elige el chat + Elige un chat Reenviar a... Foto secreta Video secreto @@ -190,7 +190,7 @@ ¿Eliminar a %1$s de las sugerencias? Vista previa del enlace Borrador - Historial borrado + El historial fue eliminado por %1$s %1$s por %2$s ¿Diseño incorrecto? @@ -239,7 +239,7 @@ ¿Quieres salir de **%1$s**? Lo sentimos, no puedes añadir a este usuario a grupos. Lo sentimos, el grupo está lleno. - Lo sentimos, si una persona ya no forma parte de un grupo, deben añadirse como contactos para que pueda regresar.\n\nTen en cuenta que se puede unir usando el enlace de invitación del grupo si no está en la lista de usuarios eliminados. + Lo sentimos, si una persona ya no forma parte de un grupo, deben añadirse como contactos para que pueda regresar.\n\nTen en cuenta que puede unirse usando el enlace de invitación del grupo si no está en la lista de usuarios eliminados. Hay demasiados administradores en el grupo. El usuario objetivo tiene demasiados grupos o canales públicos. Por favor, pídele que haga privado uno de sus grupos o canales existentes primero. El usuario objetivo tiene demasiados grupos por ubicación. Por favor, pídele eliminar o transferir uno de los existentes primero. @@ -362,11 +362,11 @@ Lamentablemente, tienes prohibido participar en grupos públicos. Lo sentimos, este chat ya no es accesible. ¿Añadir a %1$s al canal? - Lo sentimos, si una persona ya no forma parte de un canal, deben añadirse como contactos para que pueda regresar.\n\nTen en cuenta que se puede unir usando el enlace de invitación del canal si no está en la lista de usuarios eliminados. + Lo sentimos, si una persona ya no forma parte de un canal, deben añadirse como contactos para que pueda regresar.\n\nTen en cuenta que puede unirse usando el enlace de invitación del canal si no está en la lista de usuarios eliminados. Lo sentimos, no puedes añadir a este usuario a canales. Hay demasiados administradores en el canal. Hay demasiados bots en este canal. - Lo sentimos, sólo puedes añadir a los primeros 200 miembros a un canal. Sin embargo, una cantidad ilimitada de personas pueden unirse por el enlace del canal. + Lo sentimos, sólo puedes añadir a los primeros 200 suscriptores a un canal. Sin embargo, una cantidad ilimitada de personas pueden unirse usando el enlace de invitación del canal. Demasiadas comunidades Eres miembro de demasiados grupos y canales. Por favor, sal de algunos antes de crear uno nuevo. Eres miembro de demasiados grupos y canales. Por favor, sal de algunos antes de unirte. @@ -462,10 +462,10 @@ ¿Aplicar cambios? Cambiaste los permisos de este usuario en **%1$s**. ¿Aplicar cambios? Personalizada - Administrar grupo - Administrar canal - Administrar grupo - Administrar canal + Gestionar grupo + Gestionar canal + Gestionar grupo + Gestionar canal Historial para nuevos miembros Visible Los nuevos miembros verán mensajes que fueron enviados antes de unirse. @@ -512,7 +512,7 @@ ¿Quieres convertir a **%1$s** en el grupo de conversación de **%2$s**? ¿Quieres convertir a **%1$s** en el grupo de conversación de **%2$s**?\n\nCualquier miembro de este grupo podrá ver los mensajes del canal. ¿Quieres convertir a **%1$s** en el grupo de conversación de **%2$s**?\n\nCualquier miembro de este canal podrá ver los mensajes del grupo. - El “Historial para nuevos miembros” cambiará a Visible. + El “historial para nuevos miembros” cambiará a “visible”. ¿Quieres desvincular a **%1$s** de este grupo? ¿Quieres desvincular a **%1$s** de este canal? CONVERSAR @@ -708,7 +708,7 @@ Aleatorio Invertir orden - Elegir archivo + Elige un archivo Buscar archivos recientes %1$s de %2$s libres Error desconocido @@ -739,7 +739,7 @@ ELIGE UN PACK DE STICKERS stickerset Puedes crear tus packs de stickers personalizados usando el bot @stickers. - El pack no ha sido encontrado + No se encontró el pack de stickers Reinténtalo o elige uno de la lista de abajo invisible @@ -753,7 +753,7 @@ %1$s está grabando un videomensaje... %1$s está enviando un audio... %1$s está enviando una foto... - INSTANT VIEW + VISTA RÁPIDA VER GRUPO VER FONDO VER TEMA @@ -909,6 +909,7 @@ Eliminar para %1$s Eliminar para todos Texto copiado al portapapeles + Mantén para grabar audio. Mantén para grabar audio. Toca para video. Mantén para grabar video. Toca para audio. Descartar mensaje de voz @@ -970,13 +971,24 @@ 📅 Recordatorio 1 resultado La calidad del video es demasiado baja para cambiar los ajustes de compresión. - Mantén en la **palabra**, luego mueve el cursor para seleccionar más texto para copiar. + Mantén pulsada una **palabra**, luego mueve el cursor para seleccionar más texto para copiar. Número de tarjeta copiado al portapapeles Copiar - Envía el emoji **:dado:** en cualquier chat para tirar un dado. + Puedes tirar un :dado: enviando su emoji en cualquier chat. Envía el emoji **:dardo:** para probar suerte. Envía el emoji %1$s para probar suerte. - ENVIARSend a dart emoji + ENVIAR + COVID-19 + PSA + Este mensaje es un anuncio de servicio público en relación a la actual pandemia de COVID-19. Más sobre esta iniciativa en https://telegram.org/blog/coronavirus + Prueba de información PSA + Notificación sobre COVID-19 + Este mensaje es un anuncio de servicio público en relación a la actual pandemia de COVID-19. Más sobre esta iniciativa en https://telegram.org/blog/coronavirus + Notificación importante + Esta es una notificación importante. + Ocultar chat + ¿Quieres ocultar este chat? + Ocultar %1$s activó la autodestrucción en %2$s Activaste la autodestrucción en %1$s @@ -1093,8 +1105,8 @@ %1$s ancló un audio Telegram - Elegir contacto - Elegir contactos + Elige un contacto + Elige los contactos COMPARTIR CONTACTO Compartir contacto Añadir contacto @@ -1297,6 +1309,7 @@ Máscaras Puedes añadir máscaras a las fotos que envías. Para hacerlo, abre el editor de fotos antes de enviar una foto. Stickers destacados + GIF destacados Sugerir stickers por emoji Todos los packs Mis packs @@ -1461,14 +1474,14 @@ Notificaciones en la app Sonidos en la app Vibración en la app - Vibraciones + Vibración Vista previa en la app Restablecer Restablecer todas las notificaciones Deshace todos los ajustes personalizados de notificaciones para todos tus contactos, grupos y canales. Notificaciones y sonidos Notificaciones personalizadas - Pop-ups + Notificación pop-up Los mensajes nuevos de este contacto aparecerán en tu pantalla cuando no estés usando Telegram. Led Color @@ -1486,7 +1499,7 @@ Violeta Naranja El led es una pequeña luz que parpadea en algunos dispositivos para señalar los mensajes nuevos. - Las notificaciones con prioridad alta funcionarán aunque tu teléfono esté en modo no molestar. + Las notificaciones de mayor prioridad funcionarán aunque tu teléfono esté en modo No molestar. General Silenciado Notificaciones activadas @@ -1569,7 +1582,7 @@ Ese idioma no está. Ya estás usando este pack de idioma (**%1$s**). Puedes cambiar el idioma cuando quieras en Ajustes. Lamentablemente, este pack de idioma personalizado (**%1$s**) no contiene datos para Telegram Android. - Ten en cuenta que el soporte de Telegram está hecho por voluntarios. Respondemos lo antes posible, pero puede tomar tiempo.\n\nPor favor, mira las Preguntas frecuentes de Telegram]]>: tienen respuestas para la mayoría de las preguntas y soluciones a problemas]]>. + Ten en cuenta que el soporte de Telegram está hecho por voluntarios. Respondemos lo antes posible, pero puede tomar tiempo.\n\nPor favor, mira las Preguntas frecuentes de Telegram]]>: tienen respuestas para la mayoría de las preguntas y soluciones a problemas]]>. Preguntar Preguntas frecuentes Preguntas frecuentes @@ -1578,7 +1591,7 @@ https://telegram.org/faq/es Política de privacidad Términos de servicio - Al inscribirte,\naceptas los *términos de servicio*. + Al registrarte,\naceptas los *términos de servicio*. https://telegram.org/privacy Eliminar pack de idioma ¿Quieres eliminar el pack de idioma **%1$s**? @@ -1592,8 +1605,8 @@ Nombre Apellidos Color del led - Pop-ups - Desactivadas + Notificación pop-up + Nunca mostrar Con pantalla encendida Con pantalla apagada "Mostrar siempre " @@ -1601,8 +1614,8 @@ Activado Incluir chats silenciados Contar mensajes sin leer - Cortas - Largas + Corta + Larga Autodescarga de multimedia Autodescargar multimedia Activada en todos los chats @@ -1657,6 +1670,7 @@ Reproducción automática Elevar para hablar Guardar en galería + Sonido silenciado Editar nombre Personalizar Personalizadas @@ -1670,16 +1684,16 @@ Nunca Repetir notificaciones Puedes cambiar tu número de Telegram aquí. Tu cuenta y todos tus datos de la nube, mensajes, archivos, grupos, contactos, etc., se moverán al nuevo número. - Los usuarios verán tu nuevo número si lo tienen en sus agendas de contactos o si tus ajustes de privacidad lo permiten. Puedes modificar esto en Ajustes > Privacidad y seguridad > Número de teléfono. + Los usuarios verán tu nuevo número si lo tienen en sus agendas o si tus ajustes de privacidad lo permiten. Puedes modificar esto en Ajustes > Privacidad y seguridad > Número de teléfono. Cambiar número Cambiar número Nuevo número Enviaremos un SMS con el código de confirmación a tu nuevo número. El número %1$s ya está vinculado a una cuenta de Telegram. Por favor, elimina esa cuenta antes de migrar al nuevo número. Otros - Desactivadas - Activadas - Desactivadas + Desactivada + Activada + Desactivada Desactivado No repetir Sonidos en el chat @@ -1819,6 +1833,7 @@ Inicia Telegram Desktop para obtener el código QR. Escanea el código QR para conectar tu cuenta. Este código se puede utilizar para permitir que alguien inicie sesión en tu cuenta de Telegram.\n\nPara confirmar el inicio de sesión, ve a Ajustes > Dispositivos > Escanear QR y escanea el código. + Telegram necesita acceso a tu cámara para que puedas escanear códigos QR. Base de datos local Borrar base de datos local @@ -1947,7 +1962,7 @@ Sube una foto del reverso del documento Página principal Sube una foto de la página principal del documento - Elegir fecha de vencimiento + Elige la fecha de vencimiento No vence No vence Elegir fecha de nacimiento @@ -2088,7 +2103,7 @@ Incluir chats Excluir chats Añadir chats - Eliminar chats + Quitar chats Tipos de chat Chats Chats incluidos @@ -2122,15 +2137,27 @@ Eliminar excepción Eliminar excepción ¿Quieres eliminar los “%1$s” de la lista de siempre excluidos? - ¿Quieres eliminar el chat “%1$s” de la lista de siempre excluidos? - ¿Quieres eliminar el chat con “%1$s” de la lista de siempre excluidos? + ¿Quieres eliminar “%1$s” de la lista de siempre excluidos? + ¿Quieres eliminar a “%1$s” de la lista de siempre excluidos? ¿Quieres eliminar los “%1$s” de la lista de siempre incluidos? - ¿Quieres eliminar el chat “%1$s” de la lista de siempre incluidos? - ¿Quieres eliminar el chat con “%1$s” de la lista de siempre incluidos? + ¿Quieres eliminar “%1$s” de la lista de siempre incluidos? + ¿Quieres eliminar a “%1$s” de la lista de siempre incluidos? Carpetas Abre *Ajustes > Carpetas* para organizar tus chats en carpetas. Importantes No leídos + Añadir a carpeta + Quitar de la carpeta + Elige una carpeta + Añadiste a **%1$s** a **%2$s** + Añadiste **%1$s** a **%2$s** + Añadiste **%1$s** a **%2$s** + Quitaste a **%1$s** de **%2$s** + Quitaste **%1$s** de **%2$s** + Quitaste **%1$s** de **%2$s** + Límite alcanzado + No puedes añadir más de 100 chats a una carpeta. + No puedes excluir más de 100 chats de una carpeta. Código de bloqueo Cambiar código @@ -2260,6 +2287,7 @@ Mostrar como lista Mostrar como cuadrícula Mostrar toda la multimedia + Mostrar stickers Mostrar todos los archivos Mostrar todos los GIF Toca para descargar @@ -2320,8 +2348,8 @@ ¿Quieres borrar tu historial de búsqueda? Historial de búsqueda Historial de búsqueda - ¿Quieres borrar el chat con “%1$s” de tu historial de búsqueda? - ¿Quieres borrar el chat “%1$s” de tu historial de búsqueda? + ¿Quieres borrar a “%1$s” de tu historial de búsqueda? + ¿Quieres borrar “%1$s” de tu historial de búsqueda? Borrar Borrar Añadir un comentario... @@ -2334,6 +2362,7 @@ Duplicar Contorno Normal + Enmarcado Restablecer Original Cuadrada @@ -2343,28 +2372,39 @@ Enviar sin compresión Verificación en dos pasos - Verificación + Verificación en dos pasos + ¡Contraseña establecida! + Esta contraseña será requerida cuando inicies sesión en un nuevo dispositivo, además del código recibido vía SMS. + Volver a Ajustes + Volver a Passport + Crear contraseña Poner contraseña adicional Puedes poner una contraseña, que será requerida cuando inicies sesión en un nuevo dispositivo, además del código que recibes vía SMS. Tu contraseña + Activada + Desactivada Pon tu contraseña Pon tu contraseña para hacer la transferencia. Pon una contraseña + Pon una nueva contraseña Pon tu nueva contraseña Repite tu contraseña Correo de recuperación + Correo de recuperación Tu correo Tu código de correo Por favor, confirma tu correo poniendo el código que acabas de recibir en %1$s. Por favor, añade un correo válido. Es la única forma de recuperar una contraseña olvidada. Omitir Advertencia - En serio.\n\nSi olvidas tu contraseña, perderás el acceso a tu cuenta de Telegram. No habrá manera de recuperarla. + No, en serio.\n\nSi olvidas tu contraseña, perderás el acceso a tu cuenta de Telegram. No habrá manera de recuperarla. ¡Ya casi! Por favor, revisa tu correo (no olvides la carpeta de spam) para completar la configuración de la verificación en dos pasos. ¡Listo! Tu contraseña para la verificación en dos pasos está activada. + Tu contraseña de la verificación en dos pasos ha sido cambiada. Tu correo de recuperación para la verificación en dos pasos ahora está activo. + Tu correo de recuperación para la verificación en dos pasos fue cambiado. Cambiar contraseña Desactivar contraseña Poner correo de recuperación @@ -2376,9 +2416,11 @@ Cancelar configuración ¡Advertencia! ¡Todos los datos guardados en tu Telegram Passport se perderán! Pista para la contraseña + Pista Crea una pista para tu contraseña Las contraseñas no coinciden Cancelar la configuración de la verificación + Cancelar configuración Cancelar la configuración del correo de recuperación Cancelar Desactivar @@ -2406,6 +2448,8 @@ Código Contraseña desactivada Reenviar el código + Código de verificación + Pon el código El código de verificación fue enviado a tu correo. Tienes activada la verificación en dos pasos.\nNecesitarás la contraseña que configuraste para iniciar tu sesión en Telegram. @@ -2454,7 +2498,7 @@ Puedes añadir usuarios o grupos como excepciones que anularán los ajustes de arriba. Reinhardt, necesitamos encontrarte algunas nuevas canciones 🎶. Peer-to-peer - Peer-to-peer en llamadas + Peer-to-peer Usar peer-to-peer con Bots y sitios web Eliminar información de pago y envío @@ -2486,7 +2530,7 @@ Avanzados Eliminar mi cuenta si estoy fuera Si no estás en línea al menos una vez durante este período, tu cuenta se eliminará junto con todos tus mensajes y contactos. - ¿Quién puede ver mi última vez? + ¿Quién puede ver mi últ. vez y estado en línea? Añadir excepciones Añadir a excepciones No verás el estado de última vez ni el de en línea de las personas con las que no compartas el tuyo. En su lugar, se mostrarán conexiones indeterminadas (recientemente, hace unos días, hace unas semanas). @@ -2642,12 +2686,13 @@ %1$s, %2$s inactivo Salir de %1$s Demasiadas comunidades - Eres miembro de demasiados grupos y canales. Por favor, sal de algunos antes de unirte. + Eres miembro de demasiados grupos y canales. Por favor, sal de algunos antes de unirte a uno nuevo. Eres miembro de demasiados grupos y canales. Por favor, sal de algunos antes de crear uno nuevo. Eres miembro de demasiados grupos y canales. Por razones técnicas, necesitas salir de algunos antes de cambiar este ajuste en tus grupos. El usuario objetivo es miembro de demasiados grupos y canales. Por favor, pídele que salga de algunos primero. ¡Advertencia! Esto **eliminará todos los mensajes** en este chat para **ambos** participantes. + ¡Advertencia! Esto **eliminará todos los mensajes** en este chat. Eliminar todo ¿Detener la carga? Actualizar Telegram @@ -2659,7 +2704,7 @@ Demasiados intentos. Por favor, reinténtalo más tarde. Demasiados intentos. Por favor, reinténtalo en %1$s Código inválido - Has eliminado y vuelto a crear tu cuenta muchas veces recientemente. Por favor, espera algunos días antes de inscribirte de nuevo. + Has eliminado y vuelto a crear tu cuenta muchas veces recientemente. Por favor, espera algunos días antes de registrarte de nuevo. Nombre inválido Lo sentimos, este apellido no se puede usar Cargando... @@ -2759,7 +2804,7 @@ No está permitido enviar stickers en este grupo. No está permitido enviar multimedia en este grupo. No está permitido enviar encuestas en este grupo. - Lo sentimos mucho, pero esto significa que no puedes inscribirte en Telegram.\n\nA diferencia de otros, nosotros no usamos los datos para la publicidad dirigida u otros propósitos comerciales. Telegram sólo almacena la información que necesita para funcionar como un servicio en la nube. Puedes ajustar cómo usamos tus datos (por ejemplo, eliminar contactos sincronizados) en los ajustes de privacidad y seguridad.\n\nPero si no estás de acuerdo con los modestos requisitos de Telegram, no podremos brindarte este servicio. + Lo sentimos mucho, pero esto significa que no puedes registrarte en Telegram.\n\nA diferencia de otros, nosotros no usamos los datos para la publicidad dirigida u otros propósitos comerciales. Telegram sólo almacena la información que necesita para funcionar como un servicio en la nube. Puedes ajustar cómo usamos tus datos (por ejemplo, eliminar contactos sincronizados) en los ajustes de privacidad y seguridad.\n\nPero si no estás de acuerdo con los modestos requisitos de Telegram, no podremos brindarte este servicio. Verificación de edad Política de privacidad y términos de servicio Toca Aceptar para confirmar que tienes %1$s o más. @@ -2784,7 +2829,7 @@ Nuevos seguidores por fuente Idiomas Posts recientes - Alejar zoom + Alejar Interacciones de IV Cargando estadísticas… Espera un momento mientras generamos los gráficos. diff --git a/TMessagesProj/src/main/res/values-it/strings.xml b/TMessagesProj/src/main/res/values-it/strings.xml index fe4bc76d6..e4f1a2a25 100644 --- a/TMessagesProj/src/main/res/values-it/strings.xml +++ b/TMessagesProj/src/main/res/values-it/strings.xml @@ -10,7 +10,7 @@ Il tuo numero Conferma il prefisso internazionale e inserisci il tuo numero di telefono. - Scegli un paese + Scegli un Paese Prefisso internazionale non valido Questo account è già collegato in questa app. Cambia @@ -408,8 +408,8 @@ Cambiare le info del canale Cambiare le info del gruppo Pubblicare messaggi - Modificare messaggi di altri - Eliminare messaggi di altri + Modificare messaggi altrui + Eliminare messaggi altrui Eliminare messaggi Aggiungere amministratori Rimuovi amministratore @@ -501,7 +501,7 @@ Canale collegato Seleziona una chat di gruppo per la discussione che sarà mostrata nel tuo canale. Tutto ciò che pubblichi nel canale verrà inoltrato in questo gruppo. - A tutti gli iscritti viene mostrato un collegamento a **%1$s** nel pannello inferiore. + A tutti gli iscritti viene mostrato un link a **%1$s** nel pannello inferiore. Il gruppo è collegato come chat di discussione di **%1$s**. Tutti i nuovi messaggi pubblicati in questo canale sono inoltrati nel gruppo. Crea un nuovo gruppo @@ -764,7 +764,7 @@ %1$s sta giocando a un gioco... %1$s sta inviando un video... %1$s sta inviando un file... - sta registrando un audio... + sta registrando un vocale... sta registrando un videomessaggio... sta inviando un audio... sta inviando una foto... @@ -801,9 +801,9 @@ Hai lasciato il gruppo Elimina questo gruppo Elimina questa chat - Elimina questa chat + Elimina questa chat per entrambi Elimina chat - ANNULLA + SCORRI PER ANNULLARE Salva nei download Salva nelle GIF Eliminare la GIF? @@ -909,6 +909,7 @@ Elimina per %1$s Elimina per tutti i membri Testo copiato negli appunti + Hold to record audio. Tieni premuto per l\'audio. Tocca per il video. Tieni premuto per il video. Tocca per l\'audio. Scarta messaggio vocale @@ -973,10 +974,21 @@ Premi la **parola**, quindi muovi il cursore per selezionare altro testo da copiare. Numero carta copiato negli appunti Copia - Invia l\'emoji **:dice:** in qualsiasi chat per lanciare un dado. - L\'invia l\'emoji **:darts:** per tentare la fortuna. + Invia l\'emoji **:dado:** in qualsiasi chat per lanciare un dado. + Invia l\'emoji **:freccetta:** per tentare la fortuna. Invia l\'emoji %1$s per tentare la fortuna. - INVIASend a dart emoji + INVIA + COVID-19 + PSA + Questo messaggio ti fornisce un annuncio di servizio pubblico in relazione alla pandemia COVID-19 in corso. Scopri di più su questa iniziativa su https://telegram.org/blog/coronavirus + Test info PSA + Notifica COVID-19 + Questo messaggio ti fornisce un annuncio di servizio pubblico in relazione alla pandemia COVID-19 in corso. Scopri di più su questa iniziativa su https://telegram.org/blog/coronavirus + Notifica importante + Questa è una notifica importante. + Nascondi chat + Sei sicuro di voler nascondere questa chat? + Nascondi %1$s ha impostato il timer di autodistruzione a %2$s Hai impostato il timer di autodistruzione a %1$s @@ -1297,6 +1309,7 @@ Maschere Puoi aggiungere maschere alle foto che invii. Per farlo, apri l\'editor fotografico prima di inviare una foto. Sticker in primo piano + GIF in primo piano Suggerisci da emoji Tutti i set I miei set @@ -1443,7 +1456,7 @@ Dimensione testo messaggio Fai una domanda Aggiungi una spiegazione - Gli utenti vedranno questo testo dopo aver scelto l\'opzione sbagliata, utile per scopi educativi. + Gli utenti vedranno questo testo dopo aver scelto l\'opzione sbagliata, utile per scopi didattici. Attiva animazioni Impostazioni chat Dispositivi @@ -1657,6 +1670,7 @@ Autoriproduzione media Alza per registrare Salva nella galleria + Suono silenziato Modifica nome Personalizza Personalizzate @@ -1670,7 +1684,7 @@ Mai Ripeti notifiche Puoi cambiare il tuo numero di telefono qui. Il tuo account e tutti i tuoi dati cloud — messaggi, media, contatti, etc. saranno trasferiti sul nuovo numero - Gli utenti vedranno il tuo nuovo numero se lo hanno nella loro rubrica o se le tue impostazioni sulla privacy lo consentono. Puoi modificarle in Impostazioni > Privacy e sicurezza > Numero di telefono. + Gli utenti vedranno il tuo nuovo numero se lo hanno in rubrica o se le tue impostazioni sulla privacy lo consentono. Puoi modificarle in Impostazioni > Privacy e sicurezza > Numero di telefono. Cambia numero Cambia numero Nuovo numero @@ -1819,6 +1833,7 @@ Avvia Telegram Desktop per ottenere il codice QR. Scansiona il codice QR per connettere il tuo account. Questo codice può essere usato per consentire a qualcuno di accedere al tuo account Telegram.\n\nPer confermare l\'accesso a Telegram, vai in Impostazioni > Dispositivi > Scansiona QR e scansiona il codice. + Telegram deve accedere alla tua fotocamera affinché tu possa scansionare i codici QR . Database locale Cancella database locale @@ -1899,7 +1914,7 @@ Per favore inserisci il codice di conferma che abbiamo appena inviato a %1$s. Per favore inserisci la tua password per accedere ai tuoi dati personali. %1$s richiede l\'accesso ai tuoi dati personali per l\'iscrizione ai suoi servizi. - Per favore inserisci la tua password di Telegram per decriptare i tuoi dati. + Per favore inserisci la tua password di Telegram per decifrare i tuoi dati. Accetti l\'*Informativa sulla privacy di %1$s* e consenti a @%2$s di inviarti messaggi. Stai inviando i tuoi documenti direttamente a %1$s e autorizzi il loro @%2$s a inviarti messaggi. AUTORIZZA @@ -1952,7 +1967,7 @@ Nessuna Seleziona data di nascita Eliminare il selfie? - Il documento deve contenere la tua foto, il nome, il cognome, la data di nascita, il numero del documento, il paese di emissione e la data di scadenza. + Il documento deve contenere la tua foto, il nome, il cognome, la data di nascita, il numero del documento, il Paese di emissione e la data di scadenza. "Sei sicuro di voler scartare tutte le informazione che hai inserito? " Scarta Scansioni @@ -2131,6 +2146,18 @@ Apri *Impostazioni > Cartelle* per organizzare le tue chat in cartelle. Importanti Non lette + Aggiungi a una cartella + Rimuovi dalla cartella + Scegli una cartella + **%1$s** aggiunto a **%2$s** + **%1$s** aggiunta a **%2$s** + **%1$s** aggiunte a **%2$s** + **%1$s** rimosso da **%2$s** + **%1$s** rimossa da **%2$s** + **%1$s** rimosse da **%2$s** + Limite raggiunto + Spiacenti, non puoi aggiungere più di 100 chat a una cartella. + Spiacenti, non puoi escludere più di 100 chat da una cartella. Codice di blocco Cambia codice @@ -2260,6 +2287,7 @@ Mostra come lista Mostra come griglia Mostra tutti i media + Mostra sticker Mostra tutti i file Mostra tutte le GIF Tocca per scaricare @@ -2334,6 +2362,7 @@ Duplica Contornato Normale + Incorniciato Ripristina Originale Quadrato @@ -2344,15 +2373,24 @@ Verifica in due passaggi Verifica in due passaggi + Password impostata! + Questa password sarà richiesta quando accedi su un nuovo dispositivo in aggiunta al codice che ricevi via SMS. + Ritorna alle Impostazioni + Ritorna al Passport + Imposta password Imposta password aggiuntiva Puoi impostare una password che ti verrà richiesta quando ti connetti da un nuovo dispositivo in aggiunta al codice che riceverai via SMS. La tua password + + No Inserisci la tua password Per favore inserisci la password per completare il trasferimento. Inserisci una password + Inserisci una nuova password Inserisci la tua nuova password Ripeti la tua password Email di recupero + Email di recupero La tua email Il tuo codice email Per favore conferma il tuo indirizzo email inserendo il codice che hai appena ricevuto su %1$s. @@ -2364,23 +2402,27 @@ Controlla la tua email (non dimenticare lo spam) per completare la configurazione della verifica in due passaggi. Fatto! La password per la verifica in due passaggi è ora attiva. + La tua password per la verifica in due passaggi è stata cambiata. La tua email di recupero per la verifica in due passaggi è ora attiva. + Your recovery email for Two-Step Verification is changed. Cambia password Disattiva password Imposta email di recupero Cambia email di recupero Disattiva password Sei sicuro di voler disattivare la tua password? - Sei sicuro di voler annullare la configurazione della verifica in due passaggi? - Sei sicuro di voler annullare la configurazione dell\'email di recupero? - Annulla configurazione + Sei sicuro di voler interrompere la configurazione della verifica in due passaggi? + Sei sicuro di voler interrompere la configurazione dell\'email di recupero? + Interrompi configurazione Attenzione! Tutti i dati salvati nel tuo Telegram Passport andranno persi! Suggerimento password + Suggerimento Crea un suggerimento per la tua password Le password non corrispondono - Annulla configurazione verifica in due passaggi - Annulla impostazione email di recupero - Annulla + Interrompi configurazione verifica in due passaggi + Interrompi configurazione + Interrompi configurazione email di recupero + Interrompi Disattiva Per completare la configurazione della verifica in due passaggi, controlla la tua email (non dimenticare lo spam) e inserisci il codice che ti abbiamo appena inviato. Per completare l\'impostazione dell\'email di recupero, controlla %1$s (non dimenticare lo spam) e inserisci il codice che ti abbiamo appena inviato. @@ -2406,6 +2448,8 @@ Codice Password disattivata Reinvia codice + Codice di verifica + Inserisci codice Il codice di verifica è stato inviato alla tua email. Hai attivato la verifica in due passaggi.\nAvrai bisogno della password che hai impostato per accedere al tuo account Telegram. @@ -2446,11 +2490,11 @@ Gli utenti che aggiungono il tuo numero ai loro contatti lo vedranno su Telegram solo se sono tuoi contatti. Puoi aggiungere utenti o interi gruppi come eccezioni che annulleranno le impostazioni precedenti. Messaggi inoltrati - Collegato al tuo account - Collegato se permesso dalle impostazioni - Non collegato al tuo account - Chi può aggiungere un collegamento al mio account quando inoltra i miei messaggi? - I messaggi che invii non saranno ricollegati al tuo account quando inoltrati da altri utenti. + Collega al tuo account + Collega se permesso dalle impostazioni + Non collega al tuo account + Chi può aggiungere un link al mio account quando inoltra i miei messaggi? + I messaggi che invii non rimanderanno al tuo account quando inoltrati da altri utenti. Puoi aggiungere utenti o interi gruppi come eccezioni che annulleranno le impostazioni precedenti. Reinhardt, dobbiamo trovarti qualche nuova canzone 🎶. Peer-to-peer @@ -2648,6 +2692,7 @@ Spiacenti, l\'utente selezionato è membro di troppi gruppi e canali. Per favore chiedigli di lasciarne qualcuno prima. Attenzione! Questo **eliminerà tutti i messaggi** in questa chat per **entrambi** i partecipanti. + Attenzione! Questo **eliminerà tutti i messaggi** in questa chat. Elimina tutto Arrestare il caricamento? Aggiorna Telegram @@ -2656,7 +2701,7 @@ Per favore accedi al tuo account Telegram per usare Telegram Passport. Questo numero è stato bloccato. Codice scaduto, per favore riprova l\'accesso - Troppi tentativi, riprova più tardi + Troppi tentativi, per favore riprova più tardi Troppi tentativi, per favore riprova tra %1$s Codice non valido Spiacenti, hai eliminato e ricreato il tuo account troppe volte di recente. Per favore attendi alcuni giorni prima di iscriverti di nuovo. @@ -2686,7 +2731,7 @@ Svuota %1$s Svuota cache per %1$s Sei sicuro di voler eliminare le chat selezionate? - Sei sicuro di voler eliminare la cronologia nelle chat selezionate? + Sei sicuro di voler cancellare la cronologia nelle chat selezionate? Eliminare tutti i testi e i media dalle chat selezionate? Sei sicuro di voler uscire ed eliminare il gruppo? Sei sicuro di voler eliminare e lasciare il gruppo **%1$s**? @@ -2739,7 +2784,7 @@ Vuoi inviare questo contatto a **%1$s**? Non esiste alcun account Telegram con questo username. Questo bot non può unirsi ai gruppi. - Vuoi attivare le anteprime estese per i link nelle Chat Segrete? Nota che le anteprime dei link sono generate sui server di Telegram. + Vuoi attivare le anteprime estese per i link nelle Chat segrete? Ricorda che le anteprime dei link sono generate sui server di Telegram. Per favore nota che i bot inline sono forniti da sviluppatori di terze parti. Per far funzionare il bot, i simboli che digiti dopo l\'username del bot sono inviati al rispettivo sviluppatore. Spiacenti, non puoi modificare questo messaggio. Per favore consenti a Telegram di ricevere chiamate così potremo inserire in automatico il codice per te. @@ -2784,7 +2829,7 @@ Nuovi follower per origine Lingue Post recenti - Rimpicciolisci + Riduci Interazioni AR Carico le statistiche... Per favore attendi qualche momento mentre generiamo i grafici. @@ -2819,7 +2864,7 @@ Inizia a messaggiare Impostazioni account - Utilizza meno dati per le chiamate + Usa meno dati per le chiamate Chiamata in entrata Connetto Scambio chiavi di crittografia @@ -3352,7 +3397,7 @@ %2$s di %1$s Altre opzioni Play - Pausa + Sospendi Download Annulla download Apri file diff --git a/TMessagesProj/src/main/res/values-ko/strings.xml b/TMessagesProj/src/main/res/values-ko/strings.xml index 245bb1e49..e8c2ab035 100644 --- a/TMessagesProj/src/main/res/values-ko/strings.xml +++ b/TMessagesProj/src/main/res/values-ko/strings.xml @@ -217,11 +217,11 @@ 계속 텔레그램에 있는 회원님의 연락처 회원님의 보관함입니다 - 알림이 켜진 대화방은 새로운 메시지가 도착했을 때 보관이 해제됩니다. + 알림이 켜진 대화방은 새로운 메시지가 도착하면 보관이 해제됩니다. 알림이 꺼진 대화방 알림이 꺼진 대화방은 새로운 메시지가 도착해도 계속 보관됩니다. 고정된 대화방 - 보관한 대화방을 무제한으로 맨 위에 고정하실 수 있습니다. + 보관한 대화방들은 개수 제한 없이 맨 위에 고정하실 수 있습니다. 이 버튼을 길게 눌러 메시지를 예약하거나 메시지를 소리 없이 보내세요. 관리자로 승격 @@ -291,7 +291,7 @@ 영구 링크 초대 링크 참가자 추가 - Add Subscribers + 구독자 추가 채널 나가기 채널 나가기 설정 @@ -531,9 +531,9 @@ 새로운 설문 새로운 퀴즈 설문 - Poll question + 설문지 질문 질문을 작성하세요 - Answer options + 답변 선택지 퀴즈 답 설문 결과 익명 투표 @@ -583,12 +583,12 @@ 답변자 %1$d명 답변자 %1$d명 답변자 %1$d명 - 더 보기 (%1$d) - 더 보기 (%1$d) - 더 보기 (%1$d) - 더 보기 (%1$d) - 더 보기 (%1$d) - 더 보기 (%1$d) + 더 보기 (%1$d명) + 더 보기 (%1$d명) + 더 보기 (%1$d명) + 더 보기 (%1$d명) + 더 보기 (%1$d명) + 더 보기 (%1$d명) 선택지를 %1$d개 더 선택지를 %1$d개 더 선택지를 %1$d개 더 @@ -722,7 +722,7 @@ SD 카드 폴더 최근 파일 - Files A-Z + 파일 A-Z 검색 결과가 없습니다 현재 디렉토리에 **%1$s**와 같은 것이 없습니다. 폴더가 비었습니다. @@ -731,7 +731,7 @@ 앱 폴더 탐색 파일 시스템 탐색 외부 저장 공간 탐색 - Search music + 음악 검색 그룹 스티커 내 스티커에서 선택 @@ -801,8 +801,8 @@ 그룹에서 나오셨습니다 이 그룹 삭제 대화방 삭제 - Delete this chat - Delete chats + 이 대화방 삭제 + 대화방 삭제 밀어서 취소 다운로드 폴더에 저장 GIF에 저장 @@ -909,6 +909,7 @@ %1$s 님에게서 삭제 모든 참가자에게서 삭제 텍스트를 클립보드에 복사했습니다 + Hold to record audio. 꾹 눌러 녹음하세요. 살짝 눌러 동영상으로 바꾸세요. 꾹 눌러 녹화하세요. 살짝 눌러 음성으로 바꾸세요. 음성 메시지 삭제 @@ -966,7 +967,7 @@ 죄송합니다. 메시지를 100개 이상 예약할 수 없습니다. 이 작업은 메시지가 공개된 뒤에 시행하실 수 있습니다. 투표는 메시지가 공개된 뒤에 이용할 수 있습니다. - 설문 결과는 메시지가 게시된 뒤 열람하실 수 있습니다. + 설문 결과는 메시지가 게시된 뒤에 열람하실 수 있습니다. 📅 알림 1건의 결과 압축 설정을 바꾸기엔 동영상 품질이 너무 낮습니다. @@ -976,7 +977,18 @@ 대화방에 **:dice:**를 보내어 주사위를 굴리세요. **:darts:** 이모지를 보내어 운수를 시험해 보세요. %1$s 이모지를 보내어 운수를 시험해 보세요. - 보내기Send a dart emoji + 보내기 + 코로나19 + 공공발표 + 이 메시지는 세계적 유행 중인 코로나19 감염 질환에 관한 공공 서비스 발표를 제공드립니다. 아래 링크에서 이 계획에 대해 더 알아보세요.\nhttps://telegram.org/blog/coronavirus + 공공서비스발표 정보 테스트 + 코로나바이러스감염증-19 알림 + 이 메시지는 세계적 유행 중인 코로나19 감염 질환에 관한 공공 서비스 발표를 제공드립니다. 아래 링크에서 이 계획에 대해 더 알아보세요.\nhttps://telegram.org/blog/coronavirus + 중요 알림 + 중요한 알림입니다. + 대화방 가리기 + 정말 이 대화방을 가리시겠습니까? + 가리기 %1$s 님이 자동 삭제 타이머를 %2$s(으)로 맞췄습니다 자동 삭제 타이머를 %1$s(으)로 맞추셨습니다 @@ -1212,11 +1224,11 @@ 오류가 발생했습니다. 암호화 키 자동 삭제 타이머 - 타이머를 맞추시면, 사진이 열람된 뒤 자동으로 삭제됩니다. - 타이머를 맞추시면, 동영상이 열람된 뒤 자동으로 삭제됩니다. + 타이머를 맞추시면, 사진이 열람된 뒤에 자동으로 삭제됩니다. + 타이머를 맞추시면, 동영상이 열람된 뒤에 자동으로 삭제됩니다. 이 이미지와 문자는 **%1$s** 님과의 비밀 대화에 사용된 암호화 키에서 파생되었습니다.\n\n이 이미지와 문자가 **%2$s** 님의 기기에서 똑같이 보인다면, 단대단 암호화가 보장됩니다.\n\ntelegram.org에서 자세히 알아보세요. - https://telegram.org/faq#secret-chats + https://telegram.org/faq/ko#1498786448 알 수 없음 알 수 없음 전화번호 숨김 @@ -1297,6 +1309,7 @@ 마스크 보내고자 하는 사진에 마스크를 추가하실 수 있습니다. 사진을 보내기 전에 사진 편집기를 열어 보세요. 인기 스티커 + Trending GIFs 이모지에 맞춰 스티커 추천 모든 스티커 내 스티커 @@ -1443,7 +1456,7 @@ 메시지 글자 크기 질문하기 설명 추가 - Users will see this text after choosing the wrong answer, good for educational purposes. + 사용자가 틀린 답을 선택하면 이 설명이 나타납니다. 교육용으로 활용하기 좋습니다. 화면 전환 효과 사용 대화방 설정 디바이스 @@ -1569,7 +1582,7 @@ 해당 언어가 없습니다. 이미 이 언어 묶음(**%1$s**)을 사용하고 계십니다. 언제든 설정에서 언어를 바꾸실 수 있습니다. 안타깝게도 이 맞춤 언어 묶음(**%1$s**)에는 Android 텔레그램용 데이터가 들어 있지 않습니다. - 텔레그램 지원 사항은 자원봉사자들이 처리합니다. 신속하게 응답해 드리고자 노력하지만, 다소 시간이 걸릴 수 있습니다.\n\n 자주 묻는 질문]]>을 확인해 보세요. 잦은 질문에 대한 답과 문제 해결]]>을 위한 중요한 조언이 있습니다. + 텔레그램 지원 사항은 자원봉사자들이 처리합니다. 신속하게 응답해 드리고자 노력하지만, 다소 시간이 걸릴 수 있습니다.\n\n 자주 묻는 질문]]>을 확인해 보세요. 잦은 질문에 대한 답과 문제 해결]]>을 위한 중요한 조언이 있습니다. 봉사자에게 질문하기 자주 묻는 질문 자주 묻는 질문 @@ -1657,6 +1670,7 @@ 미디어 자동 재생 기기 들어 말하기 갤러리에 저장 + Sound muted 이름 수정 맞춤 맞춤 @@ -1819,6 +1833,7 @@ QR 코드를 받으려면 텔레그램 데스크탑을 실행하세요. 회원님의 계정을 연결하려면 QR 코드를 스캔하세요. 이 코드는 누군가가 회원님의 텔레그램 계정에 로그인할 수 있도록 하는 데 사용될 수 있습니다.\n\n텔레그램 로그인을 인증하려면, 설정 > 디바이스 > QR 코드 스캔으로 이동하여 코드를 스캔해 주세요. + Telegram needs access to your camera so that you can scan QR codes. 로컬 데이터베이스 로컬 데이터베이스 비우기 @@ -1846,7 +1861,7 @@ 제공한 정보 텔레그램 패스포트가 무엇인가요? 텔레그램 패스포트와 함께라면, 신분 인증이 필요한 여러 웹 사이트와 서비스에 손쉽게 로그인하실 수 있습니다.\n\n회원님의 정보와 개인 데이터, 서류들은 단대단 암호화로 보호됩니다. 텔레그램을 포함하여, 그 누구도 회원님의 허가 없이 이들에 접근할 수 없습니다.\n\n*자주 묻는 질문*을 방문하여 자세히 알아보실 수 있습니다. - https://telegram.org/faq#passport + https://telegram.org/faq/ko#1660002760 단대단 암호화로 개인 데이터를 보호하려면 비밀번호를 만드셔야 합니다.\n\n새로운 기기로 텔레그램에 로그인할 때 이 비밀번호가 필요할 것입니다. 비밀번호 만들기 텔레그램 패스포트 삭제 @@ -2131,6 +2146,18 @@ *설정 > 폴더*를 열어 대화방을 폴더로 정리하세요. 알림 켜짐 읽지 않음 + Add to folder + Remove from folder + Choose a folder + **%1$s** added to **%2$s** + **%1$s** added to **%2$s** + **%1$s** added to **%2$s** + **%1$s** removed from **%2$s** + **%1$s** removed from **%2$s** + **%1$s** removed from **%2$s** + Limit reached + Sorry, you can\'t add more than 100 chats to a folder. + Sorry, you can\'t exclude more than 100 chats from a folder. 암호 잠금 암호 바꾸기 @@ -2260,6 +2287,7 @@ 목록으로 보기 그리드로 보기 모든 미디어 보기 + Show stickers 모든 파일 보기 GIF 모두 보기 다운로드하려면 누르세요 @@ -2334,6 +2362,7 @@ 복제 외곽선 일반 + Framed 초기화 원본 정방형 @@ -2344,15 +2373,24 @@ 2단계 인증 2단계 인증 + Password Set! + This password will be required when you log in on a new device in addition to the code you get in the SMS. + Return to Settings + Return to Passport + Set Password 추가 비밀번호 설정 새로운 기기에 로그인할 때 SMS로 받는 코드와 별개로 입력해야 하는 비밀번호를 설정하실 수 있습니다. 비밀번호 + On + Off 비밀번호를 입력하세요 이전 작업을 완료하려면 비밀번호를 입력해 주세요. 비밀번호 입력 + Enter a new password 새 비밀번호를 입력해 주세요 비밀번호를 다시 입력해 주세요 복구 이메일 + Recovery Email 이메일 이메일 코드 %1$s 편으로 받은 코드를 입력하여 이메일 주소를 인증해 주세요. @@ -2364,7 +2402,9 @@ 2단계 인증 설정을 완료하려면 이메일을 (스팸 메일함도 잊지 않고) 확인해 주세요. 성공! 2단계 인증 비밀번호가 활성화되었습니다. + Your password for Two-Step Verification has been changed. 2단계 인증용 복구 이메일이 이제 작동합니다. + Your recovery email for Two-Step Verification is changed. 비밀번호 바꾸기 비밀번호 끄기 복구 이메일 설정하기 @@ -2376,9 +2416,11 @@ 설치 중단 경고! 텔레그램 패스포트에 저장된 데이터가 모두 사라집니다! 비밀번호 힌트 + Hint 비밀번호 힌트를 만드세요 비밀번호가 맞지 않습니다 2단계 인증 설정 그만두기 + Abort setup 복구 이메일 설정 중단 중단 사용 안 함 @@ -2406,6 +2448,8 @@ 코드 비밀번호 비활성화 코드 다시 보내기 + Verification code + Enter code 인증 코드를 이메일로 보냈습니다. 2단계 인증이 활성화되었습니다.\n회원님의 텔레그램 계정에 로그인하려면 여기서 설정하신 비밀번호가 필요합니다. @@ -2648,6 +2692,7 @@ 죄송합니다. 해당 사용자가 너무 많은 그룹과 채널에 들어가 있습니다.\n먼저 몇 곳을 나가도록 요청해 주세요. 잠깐! **참가자 서로에게서** 이 대화방의 **모든 메시지가 삭제**됩니다. + Warning! This will **delete all messages** in this chat. 모두 삭제 불러오기를 중단할까요? 텔레그램을 업데이트하세요 @@ -2692,7 +2737,7 @@ 정말 **%1$s** 그룹을 삭제하고 나가시겠습니까? 정말 이 대화방을 삭제하시겠습니까? 정말 **%1$s** 님과의 대화방을 삭제하시겠습니까? - Are you sure you want to delete the chat with **%1$s** and block them? + 정말 **%1$s** 대화방을 삭제하고 차단하시겠습니까? 정말 **저장한 메시지**를 삭제하시겠습니까? 정말 **%1$s** 님과의 비밀 대화를 삭제하시겠습니까? 정말 **%1$s** 대화방을 삭제하시겠습니까? @@ -2763,8 +2808,8 @@ 나이 인증 개인 정보 정책 및 이용 약관 귀하가 %1$s세 이상임을 인증하려면 동의를 누르세요. - 매우 유감스럽지만, 이는 곧 우리가 여기서 헤어져야 한다는 뜻입니다. 다른 서비스와 달리, 저희는 회원님의 정보를 광고 타게팅이나 다른 상업적 목적으로 이용하지 않습니다. 텔레그램은 다양한 기능을 가진 클라우드 서비스로서 작동하는 데 필요한 정보만을 저장합니다. 개인 정보 및 보안 설정에서 정보가 사용되는 방식을 조정(동기화된 연락처를 삭제하는 등)하실 수 있습니다.\n\n하지만 텔레그램의 간소한 요청이 회원님에게 만족스럽지 못하다면, 저희는 이 서비스를 제공해 드리기가 어렵습니다. 지금 계정을 비활성화하실 수 있습니다. 아니면 조금 더 살펴보고 정보 사용 방식이 끝내 마음에 들지 않을 때 비활성화하셔도 좋습니다. - 주의! 텔레그램 클라우드에 저장하신 모든 데이터와 함께 회원님의 텔레그램 계정이 삭제되며, 돌이킬 수 없습니다.\n\n중요: 지금 취소하거나 계정을 삭제하기 전에 데이터를 내보내실 수 있습니다. (최신 텔레그램 데스크탑을 열고 \'설정\' > \'텔레그램 데이터 내보내기\'로 가서 이를 진행하실 수 있습니다.) + 유감스럽게도, 텔레그램에 가입하실 수 없습니다.\n\n다른 서비스와 달리 저희는 광고 타겟팅이나 다른 상업적 목적으로 귀하의 데이터를 사용하지 않습니다. 텔레그램이 안전하고 기능이 풍부한 클라우드 서비스로서 작동하는 데 필요한 정보만을 저장합니다. 개인 정보 및 보안 설정에서 데이터 사용 방식(동기화된 연락처 삭제 따위)을 설정하실 수 있습니다.\n\n하지만 텔레그램의 간소한 요구 사항에 두루 동의하실 수 없다면 저희로서 이 서비스를 제공해 드리기가 어렵습니다. + 주의! 텔레그램 클라우드에 저장하신 모든 데이터와 함께 회원님의 텔레그램 계정이 삭제되며, 되돌릴 수 없습니다.\n\n중요: 지금 취소하여 계정을 삭제하기 전에 데이터를 내보내실 수 있습니다. (최신 텔레그램 데스크톱을 열고 설정 > 고급 설정 > 텔레그램 데이터 내보내기에서 진행하실 수 있습니다.) 회원님이 모든 기기에서 친구들과 연락하실 수 있도록, 텔레그램의 단단히 암호화된 클라우드 서비스로 연락처가 계속 동기화됩니다. 사진, 동영상, 음악과 그 밖의 미디어를 보내고 저장하려면 텔레그램에게 저장 공간 접근 권한이 필요합니다. @@ -2863,7 +2908,7 @@ %1$s (%2$s) 전화를 걸거나 받으신 적이 없습니다. **%1$s** 님의 앱은 호환되지 않는 프로토콜을 사용하고 있습니다. 상대가 앱을 업데이트한 뒤에서야 전화하실 수 있습니다. - **%1$s** 님의 텔레그램은 전화를 지원하지 않습니다. 앱을 업데이트한 뒤 전화할 수 있습니다. + **%1$s** 님의 텔레그램은 전화를 지원하지 않습니다. 이 사용자의 앱을 업데이트한 뒤에 전화할 수 있습니다. 텔레그램 전화의 품질을 평가해주세요. 전화를 걸려면 텔레그램에게 마이크 접근 권한을 부여하셔야 합니다. 코멘트를 입력하실 수 있습니다 diff --git a/TMessagesProj/src/main/res/values-nl/strings.xml b/TMessagesProj/src/main/res/values-nl/strings.xml index decfae9be..b1756fc88 100644 --- a/TMessagesProj/src/main/res/values-nl/strings.xml +++ b/TMessagesProj/src/main/res/values-nl/strings.xml @@ -291,7 +291,7 @@ Permanente link Uitnodigingslink Leden toevoegen - Add Subscribers + Abonnees toevoegen Kanaal verlaten Kanaal verlaten Instellingen @@ -531,11 +531,11 @@ Nieuwe poll Nieuwe quiz Poll - Poll question + Pollvraag Stel een vraag - Answer options + Antwoordopties Quiz antwoorden - Poll resultaten + Pollresultaten Anoniem stemmen Quiz-modus Kies eerst een optie @@ -722,7 +722,7 @@ SD-kaart Map Recente bestanden - Files A-Z + Bestanden A-Z Geen resultaten Geen resultaten voor **%1$s** in de huidige map. Deze map is leeg. @@ -731,7 +731,7 @@ Blader door de map van de App Blader door je bestandssysteem Blader door je externe opslag - Search music + Zoek muziek Groepsstickers Kies uit je stickers @@ -801,8 +801,8 @@ Je hebt deze groep verlaten Deze groep verwijderen Chat verwijderen - Delete this chat - Delete chats + Deze chat verwijderen + Chats verwijderen SLEEP OM TE ANNULEREN Opslaan in Downloads GIF opslaan @@ -909,6 +909,7 @@ Verwijder voor %1$s Verwijder voor iedereen Tekst gekopieerd naar klembord. + Hold to record audio. Hou vast voor audio-opname. Tik voor video Hou vast voor video-opname. Tik voor audio Spraakbericht weggooien @@ -935,7 +936,7 @@ APK-installatie is beperkt voor deze app. Je kunt dit inschakelen via de systeeminstellingen. Ongelezen berichten Zoek stickerbundels - Search trending stickers + Zoek populaire stickers Emoji zoeken URL Kaartvoorvertoning @@ -974,9 +975,20 @@ Kaartnummer naar klembord gekopiëerd Kopiëren Stuur een **:dice:**-emoji om een dobbelsteen te gebruiken in een chat. - Send a **:darts:** emoji to try your luck. - Send a %1$s emoji to try your luck. - SturenSend a dart emoji + Stuur een **:darts:**-emoji om je geluk te beproeven + Stuur een %1$s-emoji om je geluk te beproeven. + Sturen + COVID-19 + PSA + Dit bericht geeft je een publieke dienstaankondiging betreft de huidige COVID-19-pandemie. Lees meer over dit initiatief op https://telegram.org/blog/coronavirus + PSA info test + Melding betreft COVID-19 + Dit bericht geeft je een publieke dienstaankondiging betreft de huidige COVID-19-pandemie. Lees meer over dit initiatief op https://telegram.org/blog/coronavirus + Belangrijke melding + Dit is een belangrijke melding. + Chat verbergen + Weet je zeker dat je deze chat wilt verbergen? + Verbergen %1$s heeft de zelfvernietigingstimer ingesteld op %2$s Je hebt de zelfvernietigingstimer ingesteld op %1$s @@ -1263,7 +1275,7 @@ Recent gebruikt Favorieten Groepsstickers - More Stickers + Meer stickers Verwijder uit favorieten Verwijder uit recente Maskers toevoegen @@ -1297,6 +1309,7 @@ Maskers Je kunt maskers toevoegen aan foto\'s , gebruik de fotobewerkingsoptie en verstuur ze. Populaire stickers + Populaire GIF\'s Stickersuggesties Alle bundels Mijn bundels @@ -1442,8 +1455,8 @@ Alle meldingsinstellingen herstellen naar de standaardwaarden? Tekstgrootte berichten Een vraag stellen - Add an explanation - Users will see this text after choosing the wrong answer, good for educational purposes. + Uitleg toevoegen + Gebruikers zien deze uitleg nadat ze een verkeerd antwoord hebben gekozen, goed voor educatieve doeleinden. Animaties Chatinstellingen Apparaten @@ -1657,6 +1670,7 @@ Autom. media afspelen Houd bij oor Opslaan in galerij + Geluid gedempt Naam wijzigen Aanpassen Aangepast @@ -1670,7 +1684,7 @@ Nooit Meldingen herhalen Je kan je telefoonnummer hier wijzigen. Al je clouddata — berichten, bestanden, groepen, contacten, etc. zullen worden verplaatst naar je nieuwe nummer. - Gebruikers zien je nieuwe nummer als ze deze in hun adresboek hebben of als je privacy-instellingen dat toestaat. Je kunt dit aanpassen via Instellingen > Privacy en Veiligheid > Telefoonnummer. + Gebruikers zien je nieuwe nummer als ze deze in hun adresboek hebben of als je privacy-instellingen dat toestaat. Je kunt dit aanpassen via Instellingen > Privacy en veiligheid > Telefoonnummer. Nummer wijzigen Nummer wijzigen Nieuw nummer @@ -1819,6 +1833,7 @@ Gebruik Telegram Desktop om de QR-code te krijgen. Scan de QR-Code om met je account te verbinden. Met deze code kun je iemand toestaan om in te loggen op je Telegram-account\n\nOm de login te bevestigen ga naar, Instellingen > Apparaten > Scan QR en scan de code. + Telegram heeft toegang tot je camera nodig om QR-codes te scannen. Lokale database Lokale database wissen @@ -2131,6 +2146,18 @@ Open *Instellingen> Mappen* om je chats in mappen in te delen. Niet gedempt Ongelezen + Toevoegen aan map + Verwijderen van map + Kies een map + **%1$s** toegevoegd aan **%2$s** + **%1$s** toegevoegd aan **%2$s** + **%1$s** toegevoegd aan **%2$s** + **%1$s** verwijderd van **%2$s** + **%1$s** verwijderd van **%2$s** + **%1$s** verwijderd van **%2$s** + Limiet bereikt + Sorry, je kunt niet meer dan 100 chats aan een map toevoegen. + Sorry, je kunt niet meer dan 100 chats uitsluiten van een map Toegangscode-vergrendeling Toegangscode wijzigen @@ -2260,6 +2287,7 @@ Weergeven als lijst Weergeven als rooster Alle media weergeven + Stickers weergeven Alle bestanden Alle GIF\'s tonen Tik om te downloaden @@ -2334,6 +2362,7 @@ Klonen Omlijnd Normaal + Omlijst Resetten Origineel Vierkant @@ -2344,15 +2373,24 @@ Twee-staps-verificatie Twee-staps-verificatie + Wachtwoord ingesteld! + Dit wachtwoord heb je nodig wanneer je inlogt op Telegram vanaf een nieuw apparaat, naast de code die je ontvangt per SMS. + Terug naar instellingen + Terug naar Passport + Wachtwoord instellen Extra wachtwoord instellen Naast de code die je per SMS ontvangt kun je een extra wachtwoord instellen voor als je inlogt op een nieuw apparaat. Je wachtwoord + Aan + Uit Voer je wachtwoord in Voer je wachtwoord in om de overdracht af te ronden Wachtwoord invoeren + Nieuw wachtwoord invoeren Nieuw wachtwoord invoeren Wachtwoord opnieuw invoeren Herstel-e-mailadres + Herstel-e-mailadres Je e-mailadres Je e-mailcode Bevestig je e-mailadres door de code in te geven die je hebt ontvangen op %1$s. @@ -2364,7 +2402,9 @@ Controleer je e-mail en klik op de bevestigingslink om de twee-staps-verificatie in te schakelen. Kijk voor de zekerheid ook in de ongewenste post. Gelukt! Je wachtwoord voor twee-staps-verificatie is nu actief. + Je tweestapsverificatiewachtwoord is aangepast. Je herstel-e-mailadres voor twee-staps-verificatie is nu actief. + Your recovery email for Two-Step Verification is changed. Wachtwoord wijzigen Wachtwoord uitschakelen Herstel-e-mailadres instellen @@ -2376,9 +2416,11 @@ Installatie annuleren Let op! Alle opgeslagen gegevens in je Telegram Passport gaan verloren! Wachtwoordhint + Hint Stel een hint voor je wachtwoord in Wachtwoorden komen niet overeen Twee-staps-verificatie annuleren + Installatie annuleren Instellen annuleren Annuleren Uitschakelen @@ -2406,6 +2448,8 @@ Code Wachtwoord uitgeschakeld Code opnieuw sturen + Verificatiecode + Code invoeren De verificatiecode is naar je e-mailadres gestuurd. Je hebt twee-staps-verificatie ingeschakeld.\nAls je inlogt op je Telegram-account heb je het ingestelde wachtwoord nodig. @@ -2434,7 +2478,7 @@ Privacy en veiligheid Privacy - Laatst gezien & online + Laatst gezien en online Profielfoto Wie kan mijn profielfoto zien Je kunt nauwkeurig beperken wie je profielfoto kan zien. @@ -2648,6 +2692,7 @@ Sorry, de doelgebruiker is lid van teveel groepen en kanalen, vraag eerst of ze uit enkele willen gaan. Let op! Hiermee verwijder je **alle berichten** in deze chat voor **beide** deelnemers. + Let op! Hiermee **verwijder je alle berichten** uit deze chat. Alles verwijderen Stopped met laden? Telegram bijwerken @@ -2692,7 +2737,7 @@ Groep **%1$s** echt verwijderen en verlaten? Chat echt verwijderen? Chat met **%1$s** echt wissen? - Are you sure you want to delete the chat with **%1$s** and block them? + Echt **%1$s** blokkeren en de chat verwijderen? " **Bewaarde berichten** echt verwijderen?" Geheime chat met **%1$s** echt wissen? Chat **%1$s** echt wissen? @@ -2791,18 +2836,18 @@ Aantal keer bekeken per uur (UTC) Veeg omhoog om opnemen vast te zetten Meldingen - Device storage - %s Free - Clear Telegram Cache - Overview - Views Per Post - Shares Per Post - Enabled Notifications - Clear Local Database + Apparaatopslag + %s vrij + Telegram-cache wissen + Overzicht + Aantal keer bekeken per post + Aantal keer gedeeld per post + Meldingen ingeschakeld + Lokale database wissen %s Telegram Cache - %s Telegram Local Database - %s freed on your device! - %s Other Data + %s Telegram Lokale Database + %s vrijgemaakt op je apparaat! + %s Andere Data Telegram Snel diff --git a/TMessagesProj/src/main/res/values-pt-rBR/strings.xml b/TMessagesProj/src/main/res/values-pt-rBR/strings.xml index b2ac32856..6732aaac2 100644 --- a/TMessagesProj/src/main/res/values-pt-rBR/strings.xml +++ b/TMessagesProj/src/main/res/values-pt-rBR/strings.xml @@ -13,7 +13,7 @@ Escolha um país Código do país inválido Esta conta já está conectada a partir deste aplicativo. - Alternar + Trocar Sincronizar Contatos Contatos deste dispositivo serão adicionados à sua conta. Contatos deste dispositivo não serão adicionados à sua conta. @@ -28,7 +28,7 @@ Inserir código Estamos ligando para o seu telefone **%1$s**.\n\nNão atenda, o Telegram processará tudo automaticamente. Te ligaremos no **%1$s** para ditar o código. - Telegram irá te ligar em %1$d:%2$02d + O Telegram te ligará em %1$d:%2$02d Vamos te enviar um SMS em %1$d:%2$02d Estamos te ligando... Enviando SMS... @@ -39,9 +39,9 @@ Cancelar Exclusão da Conta Alguém com acesso ao seu número de telefone **%1$s** solicitou a exclusão de sua conta do Telegram e a redefinição de sua senha de Verificação em Duas Etapas.\n\nSe não foi você, por favor insira o código que te enviamos via SMS. Apagar conta - Uma vez que a conta **%1$s** está ativa e protegida por senha, iremos desativá-la em 1 semana por questões de segurança.\n\nVocê pode cancelar esse processo a qualquer momento. - Você poderá restaurar sua conta em: - As suas tentativas recentes de redefinir essa conta foram canceladas pelo seu utilizador ativo. Tente novamente em 7 dias. + Como a conta %1$s está ativa e protegida por uma senha, iremos apagá-la em 1 semana por questões de segurança.\n\nVocê pode cancelar esse processo a qualquer momento. + Você poderá redefinir a sua conta em: + As suas tentativas recentes de redefinir esta conta foram canceladas pelo usuário ativo. Por favor, tente novamente em 7 dias. APAGAR CONTA O link expirou ou está inválido. O processo de exclusão da sua conta %1$s foi cancelado. Você pode fechar esta janela agora. @@ -356,7 +356,7 @@ Editar permissões Somente os administradores do canal podem ver esta lista. Qualquer pessoa que tenha o Telegram instalado poderá participar do seu canal seguindo esse link. - Você pode adicionar administradores para ajudar você a gerenciar seu canal. Aperte e segure para removê-los. + Você pode adicionar administradores para ajudar você a gerenciar o seu canal. Aperte e segure para removê-los. Deseja entrar no canal \'%1$s\'? Desculpe, este chat não está mais acessível. Infelizmente você foi banido de participar de grupos públicos. @@ -364,7 +364,7 @@ Adicionar %1$s ao canal? Desculpe, se uma pessoa não faz mais parte de um canal, você precisa estar nos contatos do Telegram dela para adicioná-la de volta ao canal.\n\nNote que ela ainda poderá entrar usando um link de convite do canal, desde que não esteja na lista de Usuários Removidos. Desculpe, você não pode adicionar esse usuário em canais. - Desculpe, muitos administradores neste canal. + Desculpe, há muitos administradores neste canal. Desculpe, há bots demais neste canal. Desculpe, você só pode adicionar os primeiros 200 membros ao canal. Note que um número ilimitado de pessoas podem entrar via link do canal. Muitos grupos e canais @@ -391,7 +391,7 @@ %1$s postou um álbum %1$s postou uma mensagem de voz %1$s postou uma mensagem de vídeo - %1$s postou uma música + %1$s postou um arquivo de áudio %1$s postou um sticker %1$s postou um %2$s sticker Quem pode adicionar membros? @@ -497,7 +497,7 @@ TORNAR ADMIN %1$s será removido dos admins se você restringir. Conversa - Adicione um grupo para comentários + Vincule um grupo para comentários Canal Vinculado Escolha um grupo para conversas que será exibido em seu canal. Tudo que você postar no canal será encaminhado para este grupo. @@ -888,7 +888,7 @@ Desça para ver os bots %1$s Desculpe, o tempo para editar expirou. - Adicionar à Home + Adicionar à tela inicial Buscar membros encaminhe aqui para salvar\n Mensagens Salvas @@ -909,6 +909,7 @@ Apagar para %1$s Apagar para todos os membros O texto foi copiado. + Segure para gravar áudio. Segure para gravar áudio. Toque para vídeo. Segure para gravar vídeo. Toque para áudio. Descartar Mensagem de Voz @@ -932,11 +933,11 @@ GIFs não são permitidos neste grupo. Não é permitido enviar mensagens neste grupo. admin - A instalação de APKs está restrita nesse aplicativo. Você pode ativar nas configurações do sistema. + A instalação de APKs está restrita neste aplicativo. Você pode ativar nas configurações do sistema. Mensagens não lidas Buscar pacotes de sticker Buscar stickers populares - Pesquisar emoji + Buscar emoji URL Provedor de Prévia de Mapas Provedor da prévia de mapas @@ -976,7 +977,18 @@ Envie o emoji do **:dado:** em qualquer chat para rolar um dado. Envie o emoji do **:dardo:** e tente a sorte. Envie um emoji de %1$s e tente a sorte. - ENVIARSend a dart emoji + ENVIAR + COVID-19 + A.U.P. + Esta mensagem fornece um aviso de utilidade pública em relação à pandemia atual de COVID-19. Saiba mais sobre esta iniciativa em https://telegram.org/blog/coronavirus. + Teste A.U.P. + Notificação – COVID-19 + Esta mensagem fornece um aviso de utilidade pública em relação à pandemia atual de COVID-19. Saiba mais sobre esta iniciativa em https://telegram.org/blog/coronavirus. + Notificação Importante + Esta é uma notificação importante. + Ocultar chat + Deseja realmente ocultar esse chat? + Ocultar "%1$s alterou o timer de autodestruição para %2$s " Você alterou o timer de autodestruição para %1$s @@ -1070,7 +1082,7 @@ %1$s fixou um mapa no grupo %2$s %1$s fixou uma localização em tempo real no grupo %2$s %1$s fixou um GIF no grupo %2$s - %1$s fixou uma música no grupo %2$s + %1$s fixou um arquivo de áudio no grupo %2$s %1$s fixou um recibo no grupo %2$s %1$s fixou \"%2$s\" %1$s fixou uma mensagem @@ -1133,7 +1145,7 @@ Digite o nome do grupo Nome do grupo até %1$s - Desculpe, esse grupo já está lotado. + Desculpe, esse grupo está lotado. Desculpe, parece que esse chat não existe. Link copiado. Link copiado.\nEle só funciona para membros deste chat. @@ -1145,7 +1157,7 @@ Tem certeza de que deseja desativar o link de convite? Se fizer isso, ninguém conseguirá usá-lo. O link de convite anterior foi desativado. Um novo link foi gerado. Desativar - Desativar Link + Revogar Link Tem certeza de que deseja desativar o link **%1$s**?\n\nO grupo \"**%2$s**\" se tornará privado. Tem certeza de que deseja desativar o link **%1$s**?\n\nO canal \"**%2$s**\" se tornará privado. Copiar Link @@ -1189,7 +1201,7 @@ Usuário bloqueado Usuário desbloqueado Editar contato - Apagar Contato + Apagar contato Casa Celular Trabalho @@ -1216,7 +1228,7 @@ Se você definir um timer, o vídeo irá se autodestruir após ser visto. Desativado Essa imagem e texto foram derivados da chave criptográfica para este chat secreto com **%1$s**.\n\nSe você vê o mesmo no dispositivo de **%2$s**, a criptografia de ponta a ponta está garantida. - https://telegram.org/faq/br#chats-secretos + https://telegram.org/faq/pt-br#chats-secretos Desconhecido Desconhecido Número oculto @@ -1269,7 +1281,7 @@ Adicionar Máscaras Stickers não encontrados Stickers removidos - %1$s não está mais nos seus stickers. + %1$s removido dos seus stickers. Máscaras removidas %1$s não está mais em suas máscaras. Stickers arquivados. @@ -1297,6 +1309,7 @@ Máscaras Você pode adicionar máscaras em fotos que você envia. Para isso, abra o editor de fotos antes de enviar uma foto. Stickers Populares + GIFs Populares Sugerir stickers por emoji Todos os Pacotes Meus Pacotes @@ -1443,7 +1456,7 @@ Tamanho do texto das mensagens Fazer uma Pergunta Adicionar uma explicação - Os participantes do quiz vão ler este texto se escolherem a opção incorreta (útil para fins educacionais). + Os participantes do quiz vão ler este texto se escolherem a opção incorreta. Útil para fins educacionais. Ativar Animações no App Configurações de Chats Dispositivos @@ -1569,13 +1582,13 @@ Esse idioma não existe. Você já está usando esse pacote de idiomas (**%1$s**). Você pode alterar seu idioma a qualquer momento em Configurações. Infelizmente esse pacote de idiomas personalizado (**%1$s**) não contém dados para o Telegram no Android. - Por favor, note que o Suporte do Telegram é feito por voluntários. Tentaremos responder o mais rápido possível, mas pode levar um tempo.\n\nDê uma olhada na página de Perguntas Frequentes]]>: há dicas e soluções para a maioria dos problemas]]>. + Por favor, note que o Suporte do Telegram é feito por voluntários. Tentaremos responder o mais rápido possível, mas pode levar um tempo.\n\nDê uma olhada na página de Perguntas Frequentes]]>: há dicas e soluções para a maioria dos problemas]]>. Perguntar Perguntas Frequentes Perguntas Frequentes Adicionar Conta Selecionar Conta - https://telegram.org/faq/br + https://telegram.org/faq/pt-br Política de Privacidade Termos de Serviço Ao se cadastrar,\nvocê concorda com os *Termos de Serviço*. @@ -1657,6 +1670,7 @@ Reproduzir automaticamente Levantar para Falar Salvar na Galeria + Silenciado Editar nome Personalizar Personalizado @@ -1670,7 +1684,7 @@ Nunca Repetir Notificações Você pode alterar o seu número do Telegram aqui. Sua conta e todos os seus dados — mensagens, mídia, contatos, etc. serão movidos para o novo número. - Os usuários irão ver o seu novo número se eles tiverem salvo na agenda deles ou se as suas configurações de privacidade permitirem. Você pode mudar isso em Configurações > Privacidade e Segurança > Número de Telefone. + As pessoas poderão ver o seu novo número se tiverem ele salvo na agenda ou se as suas configurações de privacidade permitirem. Você pode alterar isso em Configurações > Privacidade e Segurança > Número de Telefone. Alterar Número Alterar número Novo Número @@ -1781,9 +1795,9 @@ Por favor note que **%1$s** são listados como exceções e não serão afetados por essa alteração. Por favor note que **%1$s** está listado como uma exceção e não será afetado por essa alteração. Ver Exceções - Notificações para grupos - Notificações para chats privados - Notificações para canais + Notificações de grupos + Notificações de chats privados + Notificações de canais Toque para alterar Opções alternativas Adicionar outra conta @@ -1819,6 +1833,7 @@ Use o Telegram Desktop para obter o código QR. Escaneie o código QR para conectar à sua conta. Esse código pode ser usado para permitir que alguém faça login em sua conta do Telegram.\n\nPara confirmar o login no Telegram, acesse Configurações > Dispositivos > Ler Código QR e escaneie o código. + O Telegram precisa de acesso à sua câmera para que você possa escanear códigos QR. Base de Dados Local Limpar base de dados local @@ -1846,7 +1861,7 @@ Informação Fornecida O que é o Telegram Passport? Com o Telegram Passport, você pode se inscrever facilmente em sites e serviços que exigem verificação de identidade.\n\nSuas informações, dados pessoais e documentos são protegidos por criptografia de ponta a ponta. Ninguém, nem mesmo o Telegram, pode acessá-los sem sua permissão.\n\nVocê pode visitar nossas *Perguntas Frequentes* para saber mais. - https://telegram.org/faq#passport + https://telegram.org/faq/pt-br#passport Por favor, crie uma senha para proteger seus dados pessoais com criptografia de ponta a ponta.\n\nEssa senha também será necessária sempre que você fizer login no Telegram em um novo dispositivo. Criar uma senha Apagar Passport @@ -2033,17 +2048,17 @@ Nenhuma outra sessão ativa Você pode entrar no Telegram em outros celulares, tablets e computadores usando o mesmo número de telefone. Todos os seus dados serão sincronizados. Sessões ativas - Controle suas sessões em outros dispositivos. - Toque em uma sessão para terminá-la. - Encerrar essa sessão? - Deseja encerrar essa sessão? + Controle as suas sessões de outros dispositivos. + Toque em uma sessão para terminar. + Terminar essa sessão? + Deseja terminar essa sessão? Sai de todos os dispositivos, exceto este. - Encerrar sessões - Encerrar sessão - Encerrar + Terminar sessões + Terminar sessão + Terminar Tem certeza de que deseja terminar todas as outras sessões? Terminar todas as outras sessões - aplicativo não oficial + app não oficial Nenhum login ativo. Em sites compatíveis, você pode fazer o login com o Telegram. Sites conectados @@ -2066,7 +2081,7 @@ Criar Nova Pasta Crie pastas para diferentes grupos de chats e alterne rapidamente entre elas. Pastas Recomendadas - Todos os Chats + Todos Todos Reordenar Editar pasta @@ -2131,6 +2146,18 @@ Abra *Configurações > Pastas* para organizar os seus chats em pastas. Importante Não lido + Adicionar à pasta + Remover da pasta + Escolha a pasta + **%1$s** adicionado a **%2$s** + **%1$s** adicionado a **%2$s** + **%1$s** adicionado a **%2$s** + **%1$s** removido de **%2$s** + **%1$s** removido de **%2$s** + **%1$s** removido de **%2$s** + Limite alcançado + Desculpe, você não pode adicionar mais que 100 chats numa pasta. + Desculpe, você não pode ignorar mais que 100 chats numa pasta. Senha de Bloqueio Alterar Senha @@ -2260,6 +2287,7 @@ Exibir em lista Exibir em grade Mostrar todas as mídias + Mostrar stickers Mostrar todos os arquivos Mostrar todos os GIFs Toque para baixar @@ -2334,6 +2362,7 @@ Duplicar Delineado Regular + Fundo Reiniciar Original Quadrado @@ -2344,15 +2373,24 @@ Verificação em Duas Etapas Verificação em Duas Etapas + Senha Definida! + Essa senha será solicitada quando você entrar em um novo dispositivo, após o código SMS. + Voltar às Configurações + Voltar ao Passport + Configurar Senha Configurar senha adicional Você pode configurar uma senha que será solicitada quando você entrar em um novo dispositivo, após o código SMS. Sua senha + Ativada + Desativada Digite a sua senha Por favor, digite sua senha para finalizar a transferência. Insira uma senha + Insira uma nova senha Digite a sua nova senha Digite a sua senha novamente Email de recuperação + Email de Recuperação Seu email Ver Código do Email Por favor, confirme o seu endereço de email digitando o código que você acabou de receber em %1$s. @@ -2364,7 +2402,9 @@ Por favor, verifique o seu email para completar a configuração da Verificação em Duas Etapas (não esqueça da pasta spam). Tudo certo! A sua senha para a verificação em duas etapas está ativada. + A sua senha de Verificação em Duas Etapas foi alterada. Seu email de recuperação para a Verificação em Duas Etapas está ativo. + Seu email de recuperação da Verificação em Duas Etapas foi alterado. Alterar senha Desativar senha Definir Email de Recuperação @@ -2376,9 +2416,11 @@ Cancelar configuração Atenção! Todos os dados salvos no seu Telegram Passport serão perdidos! Dica da senha + Dica Crie uma dica para sua senha As senhas não são iguais Cancelar a configuração + Cancelar Desistir de config. o email de recuperação Cancelar Desativar @@ -2406,6 +2448,8 @@ Código Senha desativada Reenviar código + Código de verificação + Digite o código O código de verificação foi enviado para o seu email. Você ativou a Verificação em Duas Etapas.\nVocê precisará da senha que configurou aqui para fazer o login em sua conta do Telegram. @@ -2509,7 +2553,7 @@ Desculpe, você não pode adicionar esse usuário a grupos devido às configurações de privacidade dele. Desculpe, você não pode adicionar esse usuário a canais devido às configurações de privacidade dele. Desculpe, você não pode criar um grupo com esses usuários devido às configurações de privacidade deles. - Desativar a conexão de ponta a ponta irá transmitir as chamadas através dos servidores do Telegram para evitar que seu endereço de IP seja revelado, mas poderá diminuir a qualidade do áudio. + Desativar a conexão de ponta a ponta irá transmitir as chamadas através dos servidores do Telegram para evitar que seu endereço de IP seja revelado, mas irá diminuir a qualidade do áudio. Apagar Contatos Sincronizados Sugerir Contatos Frequentes Exibe as pessoas com quem você mais conversa no topo da seção de busca para acesso rápido. @@ -2601,7 +2645,7 @@ un1 retornou ao grupo un1 entrou no grupo Você retornou ao grupo - Você permitiu que o bot te envie mensagens ao logar em %1$s. + Você permitiu que o bot te envie mensagens ao fazer o login em %1$s. %1$s recebeu os seguintes documentos: %2$s Dados pessoais Endereço @@ -2648,15 +2692,16 @@ Desculpe, o usuário escolhido é membro de muitos grupos e canais. Por favor, peça que ele saia de algum primeiro. Aviso! Esta ação **apagará todas as mensagens** neste chat para **ambos** os participantes. + Atenção! Isso **apagará todas as mensagens** nesse chat. Apagar Tudo Parar de carregar? - Atualizar Telegram + Atualize o Telegram Desculpe, seu Telegram está desatualizado e não consegue atender a este pedido. Por favor, atualize o Telegram. Número de telefone inválido. Por favor, verifique o número e tente de novo. Por favor, entre com sua conta do Telegram para usar o Telegram Passport. Este número de telefone está banido. Código expirado. Por favor, tente entrar novamente. - Muitas tentativas. Por favor, tente novamente mais tarde. + Muitas tentativas. Por favor, tente depois. Muitas tentativas. Por favor, tente novamente em %1$s. Código inválido Desculpe, você apagou e recriou a sua conta muitas vezes recentemente. Aguarde alguns dias antes de tentar novamente. @@ -2669,7 +2714,7 @@ Esse usuário ainda não tem o Telegram, deseja enviar um convite? Tem certeza? Adicionar bot - Deseja adicionar **%2$s** ao grupo **%1$s**? + Deseja adicionar **%1$s** ao grupo **%2$s**? Número de mensagens antigas para encaminhar: Adicionar %1$s ao grupo? Adicionar %1$s @@ -2759,11 +2804,11 @@ Desculpe, o envio de stickers não é permitido neste grupo. Desculpe, o envio de mídia não é permitido neste grupo. Desculpe, o envio de enquetes não é permitido neste grupo. - Sentimos muito, mas isso significa que você não pode se cadastrar no Telegram.\n\nAo contrário de outros, não utilizamos seus dados para segmentação de anúncios ou outros fins comerciais. O Telegram armazena apenas as informações necessárias para funcionar como um serviço em nuvem, rico em recursos. Você pode ajustar como usamos seus dados nas configurações de Privacidade e Segurança.\n\nSe de forma geral você não concorda com os requisitos modestos do Telegram, não será possível te fornecer nosso serviço. + Sentimos muito, mas isso significa que você não pode se cadastrar no Telegram.\n\nAo contrário de outros, não utilizamos seus dados para segmentação de anúncios ou outros fins comerciais. O Telegram armazena apenas as informações necessárias para funcionar como um serviço em nuvem rico em recursos. Você pode ajustar como usamos seus dados (ex. apagar contatos sincronizados) nas configurações de Privacidade e Segurança.\n\nSe de forma geral você não concorda com os requisitos modestos do Telegram, não poderemos oferecer nosso serviço. Confirmação de Idade Política de Privacidade e Termos de Serviço Toque em Concordo para confirmar que você tem mais de %1$s anos. - Sentimos muito, mas isso significa que devemos nos separar aqui. Ao contrário de outros, não utilizamos seus dados para segmentação de anúncios ou outros fins comerciais. O Telegram armazena apenas as informações necessárias para funcionar como um serviço em nuvem rico em recursos. Você pode ajustar como usamos seus dados nas configurações de Privacidade e Segurança.\n\nSe de forma geral você não concorda com os requisitos modestos do Telegram, não será possível te fornecer nossos serviços. Você pode apagar sua conta agora ou dar uma olhada e apaga-lá mais tarde se achar que não está satisfeito com o modo como usamos seus dados. + Sentimos muito, mas isso significa que devemos nos separar aqui. Ao contrário de outros, não utilizamos seus dados para segmentação de anúncios ou outros fins comerciais. O Telegram armazena apenas as informações necessárias para funcionar como um serviço em nuvem rico em recursos. Você pode ajustar como usamos seus dados nas configurações de Privacidade e Segurança.\n\nSe de forma geral você não concorda com os requisitos modestos do Telegram, não será possível te fornecer nossos serviços. Você pode apagar sua conta agora ou dar uma olhada e apagá-la mais tarde se achar que não está satisfeito com o modo como usamos seus dados. Atenção, isso apagará irreversivelmente sua conta do Telegram, juntamente com todos os dados armazenados na nuvem do Telegram.\n\nImportante: em vez de perder tudo, você pode Cancelar agora e exportar seus dados antes de apagar a conta. (Para fazer isso, abra o Telegram Desktop atualizado e vá em Configurações > Exportar Dados do Telegram.) Para que você se conecte aos seus amigos em todos os dispositivos, seus contatos serão sincronizados continuamente com os servidores fortemente criptografados do Telegram. @@ -2792,24 +2837,24 @@ Deslize para cima e grave automaticamente Notificações Armazenamento - %s Livres + Livre • %s Limpar o Cache do Telegram Visão Geral Visualizações por Post Compartilhamentos por Post Notificações Ativadas Limpar Base de Dados Local - %s Cache do Telegram + Cache do Telegram • %s %s Base de Dados Local %s liberados no seu dispositivo! - %s Outros Dados + Outros Dados • %s Telegram Rápido Gratuito Seguro Poderoso - Baseado em nuvem + Baseado em Nuvem O aplicativo de mensagem mais **rápido** do mundo.\nÉ **gratuito** e **seguro**. O **Telegram** envia mensagens mais rápido que qualquer outro aplicativo. O **Telegram** será grátis para sempre.\nSem anúncios. Sem tarifas. @@ -3413,7 +3458,7 @@ Cabeçalho Minha localização Qualidade do vídeo - Proporção da tela + Proporção da imagem Tirar mais uma foto Lido Não lido diff --git a/TMessagesProj/src/main/res/values/strings.xml b/TMessagesProj/src/main/res/values/strings.xml index 1be486fe9..1f0f2cc19 100644 --- a/TMessagesProj/src/main/res/values/strings.xml +++ b/TMessagesProj/src/main/res/values/strings.xml @@ -909,6 +909,7 @@ Delete for %1$s Delete for all members Text copied to clipboard + Hold to record audio. Hold to record audio. Tap to switch to video. Hold to record video. Tap to switch to audio. Discard Voice Message @@ -1308,6 +1309,7 @@ Masks You can add masks to photos you send. To do this, open the photo editor before sending a photo. Trending Stickers + Trending GIFs Suggest stickers by emoji All Sets My Sets @@ -1668,6 +1670,7 @@ Auto-play media Raise to Speak Save to Gallery + Sound muted Edit name Customize Custom @@ -1830,6 +1833,7 @@ Run Telegram Desktop to get the QR code. Scan the QR code to connect your account. This code can be used to allow someone to log in to your Telegram account.\n\nTo confirm Telegram login, please go to Settings > Devices > Scan QR and scan the code. + Telegram needs access to your camera so that you can scan QR codes. Local Database Clear local database @@ -2142,6 +2146,18 @@ Open *Settings / Folders* to organize your chats into folders. Not Muted Unread + Add to folder + Remove from folder + Choose a folder + **%1$s** added to **%2$s** + **%1$s** added to **%2$s** + **%1$s** added to **%2$s** + **%1$s** removed from **%2$s** + **%1$s** removed from **%2$s** + **%1$s** removed from **%2$s** + Limit reached + Sorry, you can\'t add more than 100 chats to a folder. + Sorry, you can\'t exlude more than 100 chats from a folder. Passcode Lock Change Passcode @@ -2271,6 +2287,7 @@ Show as list Show as grid Show all media + Show stickers Show all files Show all GIFs Tap to download @@ -2345,6 +2362,7 @@ Duplicate Outlined Regular + Framed Reset Original Square @@ -2355,15 +2373,24 @@ Two-Step Verification Two-Step Verification + Password Set! + This password will be required when you log in on a new device in addition to the code you get in the SMS. + Return to Settings + Return to Passport + Set Password Set Additional Password You can set a password that will be required when you log in on a new device in addition to the code you get in the SMS. Your Password + On + Off Enter your password Please enter your password to complete the transfer. Enter a password + Enter a new password Enter your new password Re-enter your password Recovery email + Recovery Email Your email Your Email Code Please confirm your email address by entering the code you just received on %1$s. @@ -2375,7 +2402,9 @@ Please check your email (don\'t forget the spam folder) to complete Two-Step Verification setup. Success! Your password for Two-Step Verification is now active. + Your password for Two-Step Verification has been changed. Your recovery email for Two-Step Verification is now active. + Your recovery email for Two-Step Verification is changed. Change Password Turn Password Off Set Recovery Email @@ -2387,9 +2416,11 @@ Abort setup Warning! All data saved in your Telegram Passport will be lost! Password Hint + Hint Create a hint for your password Passwords do not match Abort two-step verification setup + Abort setup Abort recovery email setup Abort Disable @@ -2417,6 +2448,8 @@ Code Password deactivated Resend code + Verification code + Enter code The verification code was sent to your email. You have enabled Two-Step verification.\nYou\'ll need the password you set up here to log in to your Telegram account. @@ -2659,6 +2692,7 @@ Sorry, the target user is a member of too many groups and channels. Please ask them to leave some first. Warning! This will **delete all messages** in this chat for **both** participants. + Warning! This will **delete all messages** in this chat. Delete All Stop loading? Update Telegram @@ -2912,164 +2946,6 @@ I couldn\'t hear the other side The other side couldn\'t hear me Call ended unexpectedly - - Wallet - Scan QR Code - QR Code - No wallet address found in the selected image. - No wallet address found - Gram Wallet - Create My Wallet - Import existing wallet - Congratulations - Your Gram wallet has just been created. Only you control it.\n\nTo be able to always have access to it, please write down secret words and set up a secure passcode. - Continue - CLOSE - 24 Secret Words - Secret Words - Write down these 24 words in the correct order and store them in a secret place.\n\nUse these secret words to restore access to your wallet if you lose your passcode or Telegram account. - Done - Sure done? - You didn’t have enough time to write these words down. - OK, SORRY - Test time! - Test Time! - Now let’s check that you wrote your secret words correctly.\n\nPlease enter the words **%d**, **%d** and **%d** below: - Incorrect words - The secret words you have entered do not match the ones in the list. - See words - Try again - Ready to go! - You are all set. Now you have a wallet that only you control — directly, without middlemen or bankers. - View My Wallet - You can restore access to your wallet by entering the 24 words you wrote down when creating the wallet. - I don’t have them - Incorrect words - Sorry, you have entered incorrect secret words. Please double check and try again. - Too Bad! - Without the secret words you can’t restore access to the wallet. - Enter 24 secret words - Create a new empty wallet instead - Perfect! - Now set up a passcode to secure your transactions. - Set a Passcode - Set a Passcode - Repeat the Passcode - Passcode options - Enter code - Choose code type - 4-Digit code - 6-Digit code - Custom numeric code - Passcodes do not match - Minimum passcode length is 4 - Done! - %1$s Grams have been sent to - Your balance - Receive - Send - Wallet Created - Your wallet address - from: - to: - Your Wallet Address - Copy wallet address - Create invoice - Share Wallet Address - updated a few seconds ago - updated %1$s ago - Swipe down to refresh - Release to refresh - updating - updating %d%% - Send Grams - Recipient wallet address - Enter wallet address - Copy the 48-letter wallet address of the recipient here or ask them to send you a ton:// link. - Amount - Comment (optional) - You can specify the amount and purpose of the payment to save the sender some time: - Share Invoice URL - Share this address with other Gram\nwallet owners to receive Grams from them. - Share this link to receive Test Grams.\nNote: this link won\'t work for real Grams. - Share this link with other Gram wallet owners to receive **%1$s Grams** from them. - Share this link to receive **%1$s Test Grams**.\nNote: this link won\'t work for real Grams. - Create Invoice - Your Invoice - Confirmation - Do you want to send **%1$s Grams** to: - Confirm - Enter passcode - Your passcode contains %1$s. - Sending Grams - Please wait a few seconds for your transaction to be processed... - Please confirm your credentials to send Grams. - Please confirm your credentials to continue. - Please confirm your credentials to export your wallet. - Export Wallet - Delete Wallet - Wallet Settings - Server Settings - Change Passcode - Delete wallet - Unfortunately, your wallet is no longer available because of a change in your device\'s lockscreen parameters. Please use your secret words to restore the wallet. - Telegram needs access to your camera so that you can scan QR codes. - Security - For better security, we recommend you to set up lockscreen biometric authentication. - For better security, we recommend you to set up a lockscreen password and biometric authentication. - For better security, we recommend you to set up a lockscreen password or pin. - Create anyway - Import anyway - Setup - Touch the fingerprint sensor - Fingerprint not recognized. Try again. - Too many attempts. Please try again later. - Warning - This address belongs to an empty wallet. Are you sure you want to transfer grams to it? - Send anyway - Balance: %1$s - Share QR - Transaction - Comment - Recipient - Sender - Send Grams to this Address - Address copied to clipboard - %1$s storage fee - %1$s transaction fee - %1$s blockchain fees - Insufficient Grams - Unfortunately, your transfer couldn\'t be completed. You don\'t have enough grams. - Sending Grams from a wallet to the same wallet doesn\'t make sense, you will simply waste a portion of the value on blockchain fees. - Proceed - This link can be used to send money on the TON Blockchain. To do this, you need to set up a Gram wallet first. - Create Wallet - Are you sure you want to log out?\n\nLogging out will cancel all your **secret chats** and **unlink your Gram wallet** from the app.\n\nYou will be able to restore your wallet using 24 secret words – or import another wallet. - Pending - Date - Blockchain fee: ~%1$s Grams - Please wait until the current transaction is completed. - Blockchain ID - Config source - Using a different configuration allows you to change Lite Server addresses. - Url - Json - Config json - Config url - Enter config json - Enter config url - Enter blockchain ID - This setting is for developers. Change it only if you are working on creating your own TON network. - Are you sure you want to change the blockchain ID? You don\'t need this unless you\'re testing your own TON network.\n\nIf you proceed, you will need to reconnect your wallet using 24 secret words. - Error - App was unable to load blockchain config from the given url. Please make sure that url is corrent and you have an active Internet connection. - Sorry, this config is invalid. - App was unable to load blockchain config. Please make sure that you have an active Internet connection. - Please wait while the wallet finishes syncing with the TON Blockchain. - The gram wallet allows you to make fast and secure blockchain-based payments without intermediaries. - This will disconnect the wallet from this app. You will be able to restore your wallet using 24 secret words – or import another wallet.\n\nWallets are located in the TON Blockchain, which is not controlled by Telegram. If you want a wallet to be deleted, simply transfer all the grams from it and leave it empty. - https://telegram.org/tos/wallet - By creating a wallet you accept the\n*Terms and Conditions*. Delete %1$d backgrounds Delete background @@ -3179,12 +3055,6 @@ %1$d items %1$d items %1$d items - %1$d digits - %1$d digit - %1$d digits - %1$d digits - %1$d digits - %1$d digits from %1$d chats from %1$d chat from %1$d chats